Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:02,250 --> 00:00:07,770
Before we get started with the application, let me point at that Flutter which had catalog again for
2
00:00:07,770 --> 00:00:11,560
which you can also simply google to find it in the official docs.
3
00:00:11,790 --> 00:00:19,470
There, you have basically all the widgets that ship with Flutter or all the core widgets nicely grouped
4
00:00:19,530 --> 00:00:26,460
into categories and it's always worth having a look at these categories to find out which widgets are
5
00:00:26,460 --> 00:00:32,520
there because of course I can't show every single widget in this course because you don't need every
6
00:00:32,520 --> 00:00:34,760
single widget in every app you're building
7
00:00:34,770 --> 00:00:39,300
and even though we're building quite a lot of apps in this course, we still don't need every widget.
8
00:00:39,330 --> 00:00:42,800
So this is nice to learn about new widgets but it's also nice
9
00:00:42,810 --> 00:00:47,510
and that's really something I want to bring into your mind or which is important to understand,
10
00:00:47,610 --> 00:00:55,320
this is also a nice resource to not only learn which widgets exist but also what they do and how you
11
00:00:55,320 --> 00:00:56,420
can configure them.
12
00:00:56,700 --> 00:01:03,840
So it's always worth having a look at the documentation of a widget you're using to learn what its intention
13
00:01:03,840 --> 00:01:11,020
is, how you may configure it, which related widgets exist, how you can construct it so that is
14
00:01:11,020 --> 00:01:15,330
the configured part I guess, which properties it has and so on,
15
00:01:15,330 --> 00:01:22,080
this is really something I would recommend diving into because it's a really amazing complementary resource
16
00:01:22,290 --> 00:01:27,990
for learning Flutter and for building the app you want to build. Or if you don't know in which category
17
00:01:27,990 --> 00:01:35,040
a certain widget is, what you want to learn about, go to api.flutter.dev and there, you can always
18
00:01:35,040 --> 00:01:41,400
search these API docs for a specific widget like ListTile which we'll for example use later down in
19
00:01:41,400 --> 00:01:46,980
the course and then on these pages, you always can learn more about how to use them, configure them, which
20
00:01:47,010 --> 00:01:48,080
options you have there,
21
00:01:48,090 --> 00:01:51,450
what the idea behind them is and so on.
22
00:01:51,450 --> 00:01:57,810
There are however a couple of very important widgets through which I want to walk together with you
23
00:01:57,810 --> 00:02:03,840
right now because these are the widgets we'll see throughout the course and a lot of them already throughout
24
00:02:03,840 --> 00:02:10,920
this module. There are for example widgets that help you with general application and Page Setup and
25
00:02:10,920 --> 00:02:16,020
that would be the MaterialApp widget which we already saw, which we already used in the previous course
26
00:02:16,020 --> 00:02:22,420
app but it would also be for example the CupertinoApp widget which you would use to build an iOS
27
00:02:22,470 --> 00:02:26,000
styled application and more on that later in this module
28
00:02:26,010 --> 00:02:32,940
when I dive into the different styles and how you may adjust your application to look good on iOS. Now
29
00:02:33,060 --> 00:02:39,960
this sets up the overarching application, does a lot of behind the scenes wire up work which will for
30
00:02:39,960 --> 00:02:47,430
example also help us later once we add navigation and once we can switch between pages. What you can
31
00:02:47,430 --> 00:02:54,840
see on the screen however is also heavily influenced and controlled by the scaffold or for iOS styles,
32
00:02:55,020 --> 00:03:01,110
CupertinoPageScaffold widget. That is the widget that gives you a white background,
33
00:03:01,110 --> 00:03:05,670
of course you can change the color but that gives you a background that allows you to add an app bar
34
00:03:05,790 --> 00:03:06,630
and so on.
35
00:03:06,660 --> 00:03:12,450
So that is the frame for what you see on the page you could say and it's a crucial widget for setting
36
00:03:12,450 --> 00:03:15,900
up the rest of your page and of your application.
37
00:03:15,900 --> 00:03:22,050
Now once we have to frame set, of course we want to position our own widgets and therefore the built-in
38
00:03:22,080 --> 00:03:25,640
layout in widgets are also super important.
39
00:03:25,660 --> 00:03:32,160
There, we for example have the container, a nice widget that gives us a lot of different styling and alignment
40
00:03:32,190 --> 00:03:37,740
options so that we can for example align a child inside of it but the container is a very versatile
41
00:03:37,740 --> 00:03:40,950
widget where we can also give it a background color and so on,
42
00:03:40,950 --> 00:03:48,140
you will often use it as a wrapper around other widgets to get a certain styling or a certain alignment.
43
00:03:48,360 --> 00:03:55,710
Now extremely crucial widgets are also the row and column widget. We already used the column widget
44
00:03:55,770 --> 00:03:57,410
in the first course app
45
00:03:57,570 --> 00:04:01,800
and there, we used it to have a column of items which you position beneath each other.
46
00:04:01,830 --> 00:04:07,720
In this example here, the row widget of course is used to position items horizontally instead of vertically.
47
00:04:07,770 --> 00:04:13,350
So these are a crucial widgets because unlike the container, they don't just take one child, they take
48
00:04:13,350 --> 00:04:14,640
multiple children,
49
00:04:14,700 --> 00:04:20,430
so you basically always need a column or a row when you want to have more than one widget sit next to
50
00:04:20,430 --> 00:04:22,700
each other at or below each other.
51
00:04:22,800 --> 00:04:28,950
Now besides these layout widgets, we also have specific widgets that work together with row and column
52
00:04:29,550 --> 00:04:35,940
because in there, you can have different child widgets but when it comes to how much space each widget
53
00:04:36,030 --> 00:04:41,220
should consume, there are widgets that can help you there, flexible and expanded.
54
00:04:41,220 --> 00:04:44,440
Now I'll not dive too deep into these widgets right now,
55
00:04:44,460 --> 00:04:48,480
we'll see how they work and how you configure them throughout this course.
56
00:04:48,480 --> 00:04:54,060
Basically these are widgets which you would wrap around a child, like a text widget for example, to configure
57
00:04:54,060 --> 00:04:59,060
how much space this child widget should consume in the wrapping row or column
58
00:04:59,280 --> 00:05:01,210
and don't be confused here,
59
00:05:01,240 --> 00:05:05,050
flexible and expanded can both go into columns and rows,
60
00:05:05,100 --> 00:05:11,520
so this slide is not meant to show that flexible belongs to row and expanded belongs to a column, both
61
00:05:11,580 --> 00:05:19,180
flexible and expanded can be used in both row and column widgets. Other important widgets we have are
62
00:05:19,180 --> 00:05:25,900
for example related to holding content. There, we have the stack widget, the stack widget is always great
63
00:05:26,050 --> 00:05:31,160
if you want to have items, other widgets to be precise, positioned on top of each other,
64
00:05:31,240 --> 00:05:36,840
let's say an image with a text in the foreground. The card widget is also useful,
65
00:05:36,850 --> 00:05:42,670
this is basically a pre-styled container which as you could say, it gives you a nice drop shadow, some
66
00:05:42,670 --> 00:05:48,890
background color, a little bit of padding, remember padding is that inner spacing inside of a container.
67
00:05:48,940 --> 00:05:54,100
So it's basically a container with some default styles and that card look is a look
68
00:05:54,100 --> 00:06:00,760
you actually see a lot in modern apps and also websites where you have that visual container around
69
00:06:00,760 --> 00:06:04,350
some content. Besides these content containers,
70
00:06:04,390 --> 00:06:08,640
we also have elements or widgets that help us with repeating content.
71
00:06:08,800 --> 00:06:15,760
There, we have the ListView which is pretty much like a column but a column that is scrollable because
72
00:06:15,760 --> 00:06:21,580
a default column is not scrollable as you will also see. Sometimes you also don't just want to have
73
00:06:21,610 --> 00:06:28,120
items set next or beneath each other but have them ordered in columns as a grid and for that you
74
00:06:28,120 --> 00:06:33,100
have a grid view which is basically a combination of column and rows which is also scrollable,
75
00:06:33,220 --> 00:06:36,970
so like a ListView but with multiple items sitting next to each other
76
00:06:36,970 --> 00:06:43,900
if you want to. And inside of a ListView for example, you could use a ListTile widget, another core
77
00:06:43,900 --> 00:06:45,860
widget baked into Flutter,
78
00:06:45,880 --> 00:06:49,590
this is simply a widget which you could also build entirely on your own,
79
00:06:49,600 --> 00:06:55,690
you don't need that, it's just a widget that comes with some default styling and some default positioning
80
00:06:55,870 --> 00:07:03,280
or a layout setup to be precise and we'll also use that throughout the course. We also have widgets that help you
81
00:07:03,280 --> 00:07:05,180
with different content types.
82
00:07:05,230 --> 00:07:11,020
We already work with text widgets but there for example also are widgets that help you with presenting
83
00:07:11,050 --> 00:07:16,990
images, where you can also control how big it should be, how it should be positioned in a wrapping container
84
00:07:17,020 --> 00:07:22,030
and so on and you have also a widget that helps you with using icons
85
00:07:22,030 --> 00:07:25,000
and as it turns out, you will also have buttons with icons,
86
00:07:25,000 --> 00:07:30,030
there is a specific icon button widget even. Speaking of buttons,
87
00:07:30,030 --> 00:07:36,510
we have widgets that help us with user input, like text fields where a user can enter something or buttons -
88
00:07:36,540 --> 00:07:38,540
RaisedButton, FlatButton,
89
00:07:38,640 --> 00:07:44,460
as I just mentioned there also is an icon button widget which is a button with the icon on top of it
90
00:07:44,790 --> 00:07:51,420
and you can also build your own custom user input widgets, your own buttons with invisible widgets like
91
00:07:51,420 --> 00:07:57,900
gesture detector or partly invisible widgets like InkWell which gives you that ripple effect when you
92
00:07:57,900 --> 00:08:04,200
tap somewhere, which basically allow you to wrap anything into a widget that can't be seen or can only
93
00:08:04,200 --> 00:08:06,560
be seen upon a tap in the case of the InkWell
94
00:08:06,690 --> 00:08:14,280
but that allows you to register a broad variety of event listeners on a tap, on a double tap, on a long
95
00:08:14,290 --> 00:08:16,410
tap and so on.
96
00:08:16,410 --> 00:08:21,580
So these are some of the most important widgets and obviously this was just a quick summary here.
97
00:08:21,660 --> 00:08:24,220
We'll see these widgets throughout the course
98
00:08:24,240 --> 00:08:26,580
so there's no need to learn it by heart
99
00:08:26,580 --> 00:08:33,690
right now. The core takeaway is that Flutter has a broad variety of built-in widgets and gives you all
100
00:08:33,690 --> 00:08:36,840
the tools you need to build your own widgets as well.
101
00:08:36,840 --> 00:08:41,550
It takes some experience to find out what you have to build on your own and what's built-in
102
00:08:41,550 --> 00:08:44,360
and sometimes, it also depends on tiny details,
103
00:08:44,410 --> 00:08:49,330
maybe the thing you want to build is almost built into Flutter but there is one thing which you can't
104
00:08:49,330 --> 00:08:54,870
configure which you absolutely need and therefore it's great to have both the built-in widgets but also
105
00:08:54,870 --> 00:09:00,930
the flexibility to create your own widgets. The widget catalog is a great starting point to learn which
106
00:09:00,930 --> 00:09:02,090
widgets are built-in
107
00:09:02,160 --> 00:09:07,210
but please don't feel overwhelmed by the broad variety of widgets you find in there,
108
00:09:07,260 --> 00:09:10,400
you don't need all the widgets in every app you build
109
00:09:10,500 --> 00:09:16,170
and also there are some widgets which do almost the same as other widgets and maybe exist because of
110
00:09:16,170 --> 00:09:22,140
historical reasons, they exist at first before a better version was released as a separate versions or
111
00:09:22,170 --> 00:09:26,210
they do one tiny thing differently than the other widget does it.
112
00:09:26,220 --> 00:09:32,060
So that is how you should think about these widgets but with that I'd say we had enough of the theory,
113
00:09:32,190 --> 00:09:38,370
let's actually now dive into our next course application and simply start building it to see how we
114
00:09:38,370 --> 00:09:40,110
can use built-in and custom widgets.
13692
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.