Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranรฎ)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
So we've got quite a lot of folders and files here. Now
a lot of the files you see here are only there for configuration and a lot of the folders here also
don't need to be touched by you
but let me explain what each folder and file does.
Let's go from top to bottom,
the idea folder here holds some configuration for Android Studio.
It doesn't really matter for us here because we're not working with Android Studio and you don't need
to change anything in here.
Vscode is a folder you might not have,
I have it here because I added some extra configuration for this project,
I set the zoom level so that you can see my code and anything you do configure for your vscode,
your Visual Studio Code project here would end up in such a config file and you don't need that if
you don't have any special development options here.
The Android folder is super important,
it holds a complete Android project as you could also create it without Flutter.
This is is in the end
the project which the Flutter SDK will use to kind of merge with your Flutter code you could say, so
when your Flutter code gets compiled to native code, it will basically get injected into this Android
project you could say
and that is the Android project which later will be built into a real Android app or later actually
is the wrong word, which already got built into this Android app we're seeing here.
So this is in the end of normal Android project with your compiled Flutter code and you don't need to change
anything in here or very rarely and I will mention when you do need to change anything here. For the
most part, for the most time,
this is a passive folder which will be used by Flutter and therefore it's super important but not a
folder you work on. The build folder is also very important, in the end,
this holds the output of your Flutter application,
in this case here also some Android or Java files and this folder is generated and managed by the Flutter
SDK.
You shouldn't change anything in there, that will all be done automatically by the Flutter SDK when you
are developing or when you are building your app for deployment, which we will do at the end of the course
and therefore this is also a passive folder. So thus far, no folder in which we would work.
It's the same for the iOS folder,
we had the Android folder with a full Android project, which is important for building an Android project,
both for development and for production and the iOS folder is simply the same for
iOS projects. Now on Windows, you won't have that folder because on Windows unfortunately, you can't
build iOS applications,
that's not allowed by Apple. On MacOS, you will have it and this holds a normal Xcode project, Xcode
is the development environment of MacOS, for iOS apps and just as with the Android folder,
this is a folder where you really won't work in too much.
There are some occasions where we will do some work in here but I will mention when this is the case,
for the most part this is a passive folder which gets kind of merged with your Flutter code in the end
and which will all be managed by the Flutter SDK to get iOS applications, both for development and
testing as well as for the real application in the end which you deploy. The lib folder is now the important
folder for us, lib stands for library and that is the folder where we will do 99% of our work.
It is the folder where we will add all our Dart files, Dart is the programming language Flutter uses
to write the code for our Flutter application.
So this is the folder where we will add files and where we will write code in,
this is a super important folder for us. The test folder is a folder which won't be too important for
us here,
it allows us to write tests for our application, automated tests,
so basically code that runs our code and tests it for certain things,
certainly important once you're a bit of a more advanced Dart and Flutter developer but not important
for us right now and therefore, we can safely ignore this. gitignore is a folder that helps you when you're
using git which is a source code management tool,
it allows you to create snapshots of your code, save them and you can go back to them at a later point
of time
if you messed up something or if you wanna change something. It is not a tool you have to use but often
during development, git can be really useful
and after this lecture, you find a short text lecture on git. Using it is totally optional but if you
want to use it, if that sounds interesting to you, that lecture will help you get started with it and then
you can use it if you want to use it.
The metadata file is not really a file we will work on, it will be managed automatically by Flutter
and in the end, the Flutter tool simply saves some information in here which it needs to build
our application correctly
and so on.
The same is true for the .packages file,
it's not a file we'll do any work in,
this is generated automatically by the Flutter SDK and in the end,
this also just manages some internal dependencies,
some packages
this project needs and it is fully managed automatically,
you should not delete it but you also shouldn't work in it. This file here,
this .iml
file which has your project name as a name is also file where we will not work in,
it's also managed automatically by the Flutter SDK to again manage some internal dependencies and some
settings for this project
you could say and it's not a file which we'll change. Now the pubspec.lock file is also not a file
we'll work in and it becomes clearer once we understand the pubspec.yaml file which is a file in
which we will work.
This is a file that allows you to mostly manage these dependencies of your project.
Now what does this mean?
This means that here, you can configure which other third-party packages
your project might be using.
You can also configure some other things in here, like for example fonts you want to use or images you
want to use in your application and we'll use all these features, we'll work with third-party packages
and we'll use fonts and images and therefore I will show you how to work with this file and how to change
it to include new fonts or new images,
I will show you all of that step-by-step.
Basically what you have here is code written in yaml which is a certain format for structuring text
files, where you use indentation to express how code works together
and here for example, we're right now specifying with which Dart version this works, which version
or application it should have, also which third-party packages we might be using, like here the Cupertino
icons which allows us to use certain iOS styled icons in the application and
we'll add other third-party packages throughout this course here.
So this is basically a config file that allows us to configure how our application works or which external
dependencies it has, for the moment we don't need to change anything here.
The pubspec.lock file in the end is a file that is generated automatically based on your
.yaml file here
and this simply holds more details then about all the dependencies you have and it is required by Flutter
but it's not a file you will work, in the end
as I said, it will be generated automatically,
we will only work in the yaml file.
Well and the README file is an automatically generated README file which we can ignore, it holds some
information about our project and you could change this here
if you were sharing your project with other developers and you want to give them some information. So
that was a thorough walkthrough through all the folders and files, the core takeaway is that we will work in
the lib folder and sometimes with that pubspec.yaml file and we can basically ignore all other files
and folders.
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.