Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,540 --> 00:00:02,010
Welcome back.
2
00:00:02,070 --> 00:00:09,060
In this lecture we're going to talk about why exactly we're learning material UI and what it really
3
00:00:09,060 --> 00:00:10,320
does for us.
4
00:00:10,410 --> 00:00:16,320
So I'm sure that you have your own reasons as to why you're interested in learning this but I just really
5
00:00:16,320 --> 00:00:22,440
wanted to dive into why I think it's so important and why I chose it over other libraries that are out
6
00:00:22,440 --> 00:00:31,040
there so I think they all react to developers run into a similar problem along their learning process.
7
00:00:31,140 --> 00:00:37,920
You know after you've learned react and you've learned redux and you understand components and stay
8
00:00:38,010 --> 00:00:45,660
and props and J.S. X and you understand how all these things fit together to build an application well
9
00:00:45,690 --> 00:00:48,510
then you want to start making your own applications.
10
00:00:48,510 --> 00:00:54,570
And I think they pretty quickly when you start doing that you realize how difficult it is to create
11
00:00:54,600 --> 00:00:58,390
consistent components the look and feel the same.
12
00:00:58,390 --> 00:01:04,400
Not only across a single application but across all of the applications that you build.
13
00:01:04,590 --> 00:01:11,430
You know you don't want to be going in and having to redo the same style over and over or having to
14
00:01:11,460 --> 00:01:18,300
go in and change variables everywhere when you want to reuse one piece of code from one project to the
15
00:01:18,300 --> 00:01:19,710
next.
16
00:01:19,710 --> 00:01:27,150
You also always want to live by that programmers rule of not reinventing the wheel and you know that
17
00:01:27,180 --> 00:01:34,350
every application out there has a lot of base features that are going to end up being the same in functionality
18
00:01:34,650 --> 00:01:43,240
relatively you know like your navigation your header your footer buttons things like that.
19
00:01:43,240 --> 00:01:50,010
The every application is going to need and that you're sure other people out there have obviously had
20
00:01:50,010 --> 00:01:51,530
to build before.
21
00:01:51,570 --> 00:01:56,800
So you know that there has to be some better solution out there than doing it on your own.
22
00:01:56,820 --> 00:01:59,340
And thankfully there is.
23
00:01:59,340 --> 00:02:07,710
So the solution to that would be to have a set of standardized components all with built in functionality
24
00:02:07,710 --> 00:02:14,550
and styles that you could call upon from the beginning of your project to get everything laid out very
25
00:02:14,550 --> 00:02:22,100
easily and then go in and customize things specific to the situation that your project calls for.
26
00:02:22,110 --> 00:02:27,280
So I'm going to walk you through some of the solutions to this problem.
27
00:02:27,540 --> 00:02:36,870
Some of the libraries that are out there and why I think material UI is the best most powerful yet least
28
00:02:36,900 --> 00:02:45,890
understood Out of all of them so the first option is probably the one that you've heard most about bootstrap
29
00:02:46,160 --> 00:02:48,070
and react bootstrap.
30
00:02:48,830 --> 00:02:53,230
So this is actually the oldest of the libraries that I'm going to show you.
31
00:02:53,330 --> 00:03:00,410
And it was one of the first to really try and solve this consistency problem by providing a suite of
32
00:03:00,410 --> 00:03:05,720
pre styled HCM UML elements that you could access via classes.
33
00:03:05,750 --> 00:03:12,530
So that really did well for a while and kind of became the standard until some of these other solutions
34
00:03:12,530 --> 00:03:16,400
came around before react was even out actually.
35
00:03:16,400 --> 00:03:20,080
So react bootstrap is a library.
36
00:03:20,090 --> 00:03:28,430
The essentially ports the original bootstrap library by taking those classes they had developed and
37
00:03:28,430 --> 00:03:31,920
turning them into react components.
38
00:03:31,970 --> 00:03:34,470
Now they did a really good job of this.
39
00:03:34,760 --> 00:03:38,620
But I think that is still misses out on some of the functionality.
40
00:03:38,720 --> 00:03:43,610
They could be gained from a reactive specific library.
41
00:03:43,860 --> 00:03:47,280
And I also think that it is a little bit restrictive.
42
00:03:47,370 --> 00:03:53,450
I think that it is not necessarily as easy to customize as some of these other solutions.
43
00:03:53,550 --> 00:04:02,510
And I think that the core set of just providing a bunch of components to you is essentially all it does.
44
00:04:02,510 --> 00:04:08,460
And I think the out of a library like what we're looking for there's a lot of other helpful things that
45
00:04:08,460 --> 00:04:15,390
they can do which material UI does provide that I'll get into that will show you why you would really
46
00:04:15,390 --> 00:04:20,880
want to look for that over something as basic as react bootstrap.
47
00:04:20,940 --> 00:04:30,100
So the second option is one you may or may not have heard of semantic UI and semantic UI react.
48
00:04:30,240 --> 00:04:38,730
This is another library attempting to solve the problem by providing a set of pre styled elements but
49
00:04:39,120 --> 00:04:46,560
it seeks to add a little bit extra functionality by also including a theming system that makes it a
50
00:04:46,560 --> 00:04:54,570
little easier to centralize some of your styles and is definitely a step up from just having all the
51
00:04:54,600 --> 00:04:57,600
components kind of isolated.
52
00:04:57,660 --> 00:05:06,120
The one thing that I don't really like about semantic UI as much is it again is ported for react.
53
00:05:06,120 --> 00:05:13,980
So you see we have the semantic UI react library that was brought over from the original.
54
00:05:14,010 --> 00:05:22,230
And again I just think the when you do this you're missing out on some of the innovation and features
55
00:05:22,230 --> 00:05:29,700
and functionality that I think could really come out of a completely react specific system.
56
00:05:29,700 --> 00:05:36,550
Another problem with that though is that that styling system actually isn't react specific.
57
00:05:36,690 --> 00:05:46,380
So they're theming that they have it doesn't include any specific react optimizations or any you know
58
00:05:46,380 --> 00:05:51,950
considerations that might have made it easier and more applicable to react projects.
59
00:05:52,200 --> 00:06:00,690
And on the semantic UI react documentation it says that you just have to rely on the system from the
60
00:06:00,690 --> 00:06:02,110
base library.
61
00:06:02,190 --> 00:06:08,340
And so that's something that I don't really like is that you are completely dependent on that main library
62
00:06:08,610 --> 00:06:10,320
for new features.
63
00:06:10,530 --> 00:06:19,530
And since it isn't a react specific library it's not as likely that you're going to see as much of a
64
00:06:19,530 --> 00:06:27,300
push for new react specific features or taking advantage of new react developments.
65
00:06:27,300 --> 00:06:29,670
And so you're kind of limited here.
66
00:06:29,670 --> 00:06:37,350
I think when you're relying on that duality between the original and the react version in the library.
67
00:06:37,350 --> 00:06:43,320
And to me that just seems to show that there has to be a better solution out there.
68
00:06:43,320 --> 00:06:53,400
And as you can probably expect there is so that brings us to the one you've all been waiting for material
69
00:06:53,400 --> 00:06:54,010
you.
70
00:06:54,000 --> 00:07:00,740
I now you can tell that this is the best library because the logo is by far the coolest.
71
00:07:01,380 --> 00:07:06,840
But in all seriousness I really have fallen in love with this library and I really think that you're
72
00:07:06,840 --> 00:07:15,180
going to as well I think first and foremost the reason for that is the material UI was built explicitly
73
00:07:15,180 --> 00:07:18,030
for and only for react.
74
00:07:18,030 --> 00:07:26,400
J Yes I think that that really allowed the developers to innovate and to think through every possible
75
00:07:26,400 --> 00:07:34,020
situation which might arise and really optimize that to create a streamlined cohesive experience that
76
00:07:34,140 --> 00:07:41,080
I really just think beats out any of the other similar libraries another great feature about material
77
00:07:41,080 --> 00:07:50,380
UI is its flexibility and how it's able to allow you to really customize everything and every sort of
78
00:07:50,380 --> 00:07:54,290
way specifically to how you want it and how you need it.
79
00:07:54,610 --> 00:08:03,010
Whereas some of the other libraries I feel like it maybe wasn't as clear or as easy to customize the
80
00:08:03,010 --> 00:08:09,610
styles that they already had and I felt maybe a little more trapped into their defaults with material
81
00:08:09,610 --> 00:08:10,180
UI.
82
00:08:10,180 --> 00:08:16,900
I never felt that once and I really feel like you have the complete power to manipulate every aspect
83
00:08:16,900 --> 00:08:18,980
of it in the ways that you need to.
84
00:08:19,120 --> 00:08:23,500
And that's really really powerful for a library like this.
85
00:08:23,620 --> 00:08:30,040
Now what I find really interesting is how they're able to provide that extreme flexibility for you while
86
00:08:30,040 --> 00:08:34,540
at the same time maintaining consistency throughout your application.
87
00:08:34,900 --> 00:08:42,160
So they provide all those default components and functionality for you but they enable you to really
88
00:08:42,220 --> 00:08:47,340
customize it without breaking the flow of everything else.
89
00:08:47,380 --> 00:08:56,590
And more than that they allow you to add to it and to redirect that flow and to really you know extend
90
00:08:56,830 --> 00:09:03,760
the consistency of your own designs through their library without being restrictive.
91
00:09:03,760 --> 00:09:09,880
And that really is amazing that they've been able to pull that off so well and was something I continuously
92
00:09:09,880 --> 00:09:17,940
appreciated as I was building these projects material UI is also very actively developed.
93
00:09:17,970 --> 00:09:23,220
I think that the latest commit to the project was actually only a few days from when I was recording
94
00:09:23,220 --> 00:09:31,920
this and they're constantly adding features and releasing updates and fixing bugs and doing all of the
95
00:09:31,920 --> 00:09:39,330
upkeep the a good library should have going on what I really like about this too is since they are so
96
00:09:39,330 --> 00:09:49,380
active they're able to respond to updates in react like say hooks and create features and functionality
97
00:09:49,380 --> 00:09:55,880
around that specifically that enabled things that definitely aren't possible in other libraries.
98
00:09:55,890 --> 00:10:02,070
If you're not react specific and that is just really impressive and shows the commitment of the authors
99
00:10:02,070 --> 00:10:09,740
who have created this so finally one of the last reasons that really pushed me to material UI over other
100
00:10:09,740 --> 00:10:13,700
libraries was its advanced features support.
101
00:10:13,700 --> 00:10:20,900
So not only is it a library giving you an extensive set of components priest style and functional for
102
00:10:20,900 --> 00:10:27,710
you to build on and not only is it a library that provides a great seeming solution allowing you to
103
00:10:27,710 --> 00:10:35,600
centralize your styles and modify individual components as necessary but it also provides a framework
104
00:10:35,780 --> 00:10:41,480
for building on even more advanced features outside the scope of normal design.
105
00:10:41,540 --> 00:10:47,840
So a great example of that is server side rendering which we are going to get into in this course and
106
00:10:48,050 --> 00:10:55,190
material UI is built specifically to work with server side rendering and they even provide boiler plates
107
00:10:55,430 --> 00:11:02,440
for common server side rendering setups for us to use and we actually are going to use that another
108
00:11:02,440 --> 00:11:10,240
great feature that I love of material UI is the responsive design system they make it so amazing we
109
00:11:10,240 --> 00:11:18,010
easy to change your layouts and adapt your styles based on the sizes of the screens that you're on without
110
00:11:18,010 --> 00:11:22,820
having to do all the tedious labor that you think might be involved with that.
111
00:11:22,960 --> 00:11:30,820
They really integrated responsive design with their entire layout and grid system and really just made
112
00:11:30,820 --> 00:11:39,760
it easy and natural for you to create applications that look perfect on every screen size without having
113
00:11:39,760 --> 00:11:43,160
to really struggle to implement that.
114
00:11:43,180 --> 00:11:49,060
So I really tip my hat off to them for being able to pull that off and I think that that is absolutely
115
00:11:49,330 --> 00:11:52,970
one of the best features of material UI.
116
00:11:52,980 --> 00:11:59,650
The you are going to fall in love with and really grow to appreciate the way that I have so I hope I've
117
00:11:59,650 --> 00:12:05,780
convinced you by now that material UI is the best library out there for what we want to do and that
118
00:12:05,840 --> 00:12:12,370
it is really going to change the way you create react applications and really going to enable you to
119
00:12:12,370 --> 00:12:21,070
make unique and amazing really professional looking designs and not even have to worry about implementing
120
00:12:21,070 --> 00:12:28,120
them and about figuring out the details because material UI just does such a great job of handling it
121
00:12:28,120 --> 00:12:28,720
for you.
14553
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.