All language subtitles for 2. An Overview of the Core Flutter Widgets

af Afrikaans
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French Download
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
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.