Flutter Course for Beginners β 37-hour Cross Platform App Development Tutorial
August 13, 2024 2024-08-13 15:53Flutter Course for Beginners β 37-hour Cross Platform App Development Tutorial
Learn how to use Flutter in this complete course for beginners. Flutter is an open-source UI software development kit used to create cross-platform applications for iOS, Android, Windows, Mac, and more.
π» GitHub repo: https://github.com/vandadnp/mynotes-course
βοΈ Course developed by Vandad Nahavandipoor. Check out his channel: https://www.youtube.com/channel/UC8NpGP0AOQ0kX9ZRcohiPeQ
π Discord study group (for questions and answers about this course): https://discord.gg/C8UpxJyU4n
π Setting up Firebase CLI and FlutterFire CLI on Windows: https://www.youtube.com/watch?v=nQ3AhFo2rKc
βοΈ Course Contents βοΈ
β¨οΈ (00:00:00) Introduction
β¨οΈ (00:02:57) Developer Accounts
β¨οΈ (00:39:12) Setup
β¨οΈ (01:14:42) Introduction to Dart
β¨οΈ (02:01:26) Dart Control Statements and Collections
β¨οΈ (02:46:44) Sound Null safety in Dart
β¨οΈ (03:27:12) Dart Enumerations, Classes and Objects
β¨οΈ (04:18:36) Advanced Dart
β¨οΈ (05:00:41) Project Setup
β¨οΈ (05:48:30) iOS App Setup
β¨οΈ (06:59:32) Android App Setup
β¨οΈ (07:31:31) Firebase Backend Setup
β¨οΈ (08:01:20) Basic Registration Screen
β¨οΈ (09:04:54) Login View
β¨οΈ (09:53:10) Separating App Initialization from Login and Register Screens
β¨οΈ (10:19:47) Setting up Git and GitHub
β¨οΈ (11:10:34) Email Verification View
β¨οΈ (11:44:45) Link Between Login and Register Views
β¨οΈ (12:18:01) Logout View
β¨οΈ (13:13:46) Go From Login to Notes View
β¨οΈ (13:36:43) Cleaning Up our Routes
β¨οΈ (13:51:17) Error Handling in Login View
β¨οΈ (14:16:21) Error Handling in Register View, Next Screen After Registration
β¨οΈ (14:44:45) Confirming Identity Before Going to Main UI
β¨οΈ (14:52:21) Auth Service
β¨οΈ (15:55:22) Migrating to Auth Service
β¨οΈ (16:33:41) Unit Testing our AuthService
β¨οΈ (17:43:42) CRUD Local Storage
β¨οΈ (19:30:57) Working with Streams in Notes Service
β¨οΈ (20:04:32) Preparing Notes View to Read All Notes
β¨οΈ (20:39:21) Preparing to Create New Notes
β¨οΈ (21:00:16) Creating New Notes
β¨οΈ (21:35:42) Displaying Notes in Notes View
β¨οΈ (21:56:04) Deleting Existing Notes in Notes View
β¨οΈ (22:40:46) Updating Existing Notes
β¨οΈ (23:14:12) Protecting NotesService with Current User
β¨οΈ (23:40:44) Writing Notes to Cloud Firestore
β¨οΈ (24:58:08) Migrating to our Firestore Service
β¨οΈ (25:22:35) Sharing Notes
β¨οΈ (25:37:43) Introduction to Bloc
β¨οΈ (26:24:31) Converting our Auth Process to Bloc
β¨οΈ (27:31:17) Handling Auth Bloc Exceptions During Login
β¨οΈ (28:52:45) Moving to Bloc for Routing and Dialogs
β¨οΈ (28:58:23) Loading Screens
β¨οΈ (29:48:31) Final Touches Before App Release
β¨οΈ (30:43:03) App Icons and App Name
β¨οΈ (31:06:34) Splash Screen
β¨οΈ (31:56:58) Sending our iOS app to App Store Connect
β¨οΈ (32:55:44) Releasing our iOS App
β¨οΈ (33:20:31) Fixing Firebase Security Rules and Resubmitting the iOS App
β¨οΈ (33:50:07) Releasing our Android App
β¨οΈ (34:55:19) Localization in Flutter
β¨οΈ (36:33:57) Outro
source
Comments (29)
@freecodecamp
If you enjoy this course, please make sure to give Vandad a follow on his YouTube ( https://www.youtube.com/c/vandadnp ), Twitter ( https://twitter.com/vandadnp ) and LinkedIn ( https://www.linkedin.com/in/vandadnp/ )
@RahulNaskar-np4ws
β Course Contents β
β¨ (00:00:00) Introduction
β¨ (00:02:57) Developer Accounts
β¨ (00:39:12) Setup
β¨ (01:14:42) Introduction to Dart
β¨ (02:01:26) Dart Control Statements and Collections
β¨ (02:46:44) Sound Null safety in Dart
β¨ (03:27:12) Dart Enumerations, Classes and Objects
β¨ (04:18:36) Advanced Dart
β¨ (05:00:41) Project Setup
β¨ (05:48:30) iOS App Setup
β¨ (06:59:32) Android App Setup
β¨ (07:31:31) Firebase Backend Setup
β¨ (08:01:20) Basic Registration Screen
β¨ (09:04:54) Login View
β¨ (09:53:10) Separating App Initialization from Login and Register Screens
β¨ (10:19:47) Setting up Git and GitHub
β¨ (11:10:34) Email Verification View
β¨ (11:44:45) Link Between Login and Register Views
β¨ (12:18:01) Logout View
β¨ (13:13:46) Go From Login to Notes View
β¨ (13:36:43) Cleaning Up our Routes
β¨ (13:51:17) Error Handling in Login View
β¨ (14:16:21) Error Handling in Register View, Next Screen After Registration
β¨ (14:44:45) Confirming Identity Before Going to Main UI
β¨ (14:52:21) Auth Service
β¨ (15:55:22) Migrating to Auth Service
β¨ (16:33:41) Unit Testing our AuthService
β¨ (17:43:42) CRUD Local Storage
β¨ (19:30:57) Working with Streams in Notes Service
β¨ (20:04:32) Preparing Notes View to Read All Notes
β¨ (20:39:21) Preparing to Create New Notes
β¨ (21:00:16) Creating New Notes
β¨ (21:35:42) Displaying Notes in Notes View
β¨ (21:56:04) Deleting Existing Notes in Notes View
β¨ (22:40:46) Updating Existing Notes
β¨ (23:14:12) Protecting NotesService with Current User
β¨ (23:40:44) Writing Notes to Cloud Firestore
β¨ (24:58:08) Migrating to our Firestore Service
β¨ (25:22:35) Sharing Notes
β¨ (25:37:43) Introduction to Bloc
β¨ (26:24:31) Converting our Auth Process to Bloc
β¨ (27:31:17) Handling Auth Bloc Exceptions During Login
β¨ (28:52:45) Moving to Bloc for Routing and Dialogs
β¨ (28:58:23) Loading Screens
β¨ (29:48:31) Final Touches Before App Release
β¨ (30:43:03) App Icons and App Name
β¨ (31:06:34) Splash Screen
β¨ (31:56:58) Sending our iOS app to App Store Connect
β¨ (32:55:44) Releasing our iOS App
β¨ (33:20:31) Fixing Firebase Security Rules and Resubmitting the iOS App
β¨ (33:50:07) Releasing our Android App
β¨ (34:55:19) Localization in Flutter
β¨ (36:33:57) Outro
@keithbertschin1213
what is that terminal he is using please? so much cleaner than default terminal
@befantastic3544
18:21:00
@amenkalai8442
hey beau did someone once told you that you are the BEST !!
@richardagor3938
Wow, such a great course. You're a Legend. I'm grateful
@pusscat-
after going through this course i certainly know that bro is cat lover ππ
@angelustychicus6192
Where's the Introductory video though? I can't find the link.
@KM-zd6dq
I truly appreciate the tremendous amount of effort that was put into this course, especially considering it is a free course, and I fully understand that Vandad is trying to make this learning experience as smooth as possible for all levels of view.
However, it is too hard for beginners; most of the dart concepts are too briefly explained, making it difficult for beginners to understand, and experienced coders who just want to learn dart syntax stuck with easy concepts like data structures.
The video often shifts from the main topic; it starts with Vandad trying to explain a concept, then goes to why he is explaining this concept, and then goes to explain why he explained this concept in this way. It is very easy, at least for me, to lose focus while listening to Vandad explaining his own explanation. Additionally, Vandad would always stuck on explaining simple things like VS code shortcuts, code generating, and the same cycle described above would happen.
The structure of this course is poorly designed. You start to learn to flutter after 7.5 hours of setup. And you will often find Vandad doing something first and explaining what he did later.
Overall, I really appreciate this course, but I would not recommend it if you are tight on time.
@pusscat-
2:45:26 day 1
4:39:39 day 2
@newbe379
Legend course β€
@KM-zd6dq
8:57:53 Remove your WHAT???
@moazriad6582
does the course explain all dart or only few things thats needed for flutter?
@utkudolen
It took a month for me to finish the installing process, I literally got every single error that I could possibly get, I tried nearly every single solution I that I have seen on the net, finally got to the 3rd hour, it's been going great so far thank you for this amazing tutorial.
@metebenu05
.
@itznuzry
2:21:38 my progress
@dionpirate
Starting this course
Date :- 23/08/2024
Time :- 11:08 pm
let's see when i finish this course
(Like so that remind me to complete and motivate for course)
@TranTien-kx2mj
Why not teaching Dart by the true console Dart application?
You use the Fullter folder structure to teach Dart, I think that is greater to continue with fullter structure in future but I believe Dart console application can can express more about how Dart is attacturlly works
@MuhammadIbrahim-qz1nu
00:00:11 Chapter 0 – Presentation
00:02:58 Chapter 1 – Developer Accounts
00:39:12 Chapter 2 – Setup
01:14:43 Chapter 3 – Introduction to Dart
02:01:26 Chapter 4 – Dart control statements and collections
02:46:45 Chapter 5 – Sound Null-safety in Dart
03:27:12 Chapter 6 – Dart enumerations, classes and objects
04:18:37 Chapter 7 – Advanced Dart
05:00:40 Chapter 8 – Project setup
05:48:30 Chapter 9 – iOS App Setup (App Identifier, Certificates and Profiles)
06:59:33 Chapter 10 – Android app Setup
07:31:32 Chapter 11 – Firebase Backend Setup
08:01:21 Chapter 12 – Basic register-user screen
09:04:54 Chapter 13 – Login view
09:53:10 Chapter 14 – Separating app initialization from login/register
10:19:48 Chapter 15 – Git and Github
11:10:34 Chapter 16 – Email Verification View
11:44:45 Chapter 17 – Link Between login and register views
12:18:01 Chapter 18 – Logout view
13:13:47 Chapter 19 – Go From Login to Notes View
13:36:44 Chapter 20 – Cleaning Up our Routes
13:51:17 Chapter 21 – Error Handling in Login View
14:16:21 Chapter 22 – Error Handling in Register View and Going to Next Screen After Registration
14:44:45 Chapter 23 – Confirming Identity Before Going to Main UI
14:52:22 Chapter 24 – Auth Service
15:55:22 Chapter 25 – Migrating to Auth Service
16:33:41 Chapter 26 – Unit Testing our Auth Service
17:43:43 Chapter 27 – CRUD Local Storage
19:30:57 Chapter 28 – Working with Streams in Notes Service
20:04:32 Chapter 29 – Preparing Notes View to Read All Notes
20:39:22 Chapter 30 – Preparing to Create New Notes
21:00:16 Chapter 31 – Creating New Notes
21:35:43 Chapter 32 – Displaying Notes in Notes View
21:56:04 Chapter 33 – Deleting Existing Notes in Notes View
22:40:46 Chapter 34 – Updating Existing Notes
23:14:12 Chapter 35 – Protecting NotesService with Current User
23:40:44 Chapter 36 – Writing Notes to Cloud Firestore
24:58:08 Chapter 37 – Migrating to our Firestore Service
25:22:36 Chapter 38 – Sharing Notes
25:37:44 Chapter 39 – Introduction to Bloc
26:24:31 Chapter 40 – Converting our Auth Process to Bloc
27:31:17 Chapter 41 – Handling Auth Bloc Exceptions During Login
27:52:45 Chapter 42 – Moving to Bloc for Routing and Dialogs
29:58:23 Chapter 43 – Loading Screens
29:48:31 Chapter 44 – Final Touches Before App Release
30:43:03 Chapter 45 – App Icons and app Name
31:06:34 Chapter 46 – Splash Screen
31:56:59 Chapter 47 – Sending our iOS app to App Store Connect
32:55:44 Chapter 48 – Releasing our iOS App
33:20:32 Chapter 49 – Fixing Firebase Security Rules and Resubmitting the iOS App
34:50:07 Chapter 50 – Releasing our Android App
34:55:19 Chapter 51 – Localization in Flutter
36:33:57 Outro – Final thoughts
Having completed a course on Flutter, I can confidently say it's an exceptional framework for mobile app development. Flutter's ability to create natively compiled applications for mobile, web, and desktop from a single codebase is impressive. The course covered everything from the basics of Dart programming to advanced UI design and state management
@user-gf9mw5in7l
Vandad is truly an expert, thanks a lot for the course. One of the best instructors out there!
@ZainabBibi-tm4fm
A little stuck . Google also has 25 dollar fee ? for the developer account ? @5 dollar means 10000 for my currency so what should i do
@Codewithbee-q2p
If you finish this ,it mean you can acquire displine and patience , consistence in programming world. Most developers lack dispine
@Xanix8002
I don't have a developer account what should I do about that, will it make me unable to perform many tasks from this video? if so is their any solution?
@RishikeshRajeev-i7n
is this still a good video to go through in 2024
@pavloslaskaratos
Hello everybody. I am persistently getting connection errors as I try to enroll as a developer on apple developer, right after sumbitting my driving licence. Does anybody know what to do?
@pavloslaskaratos
@freecodecamp
Do you have any statistics on this video? How many people have actually seen this to the end??? I am 5 hours in!
@kolcha
do you know why the chapters for this video is now showing up? because you have them (00:00:00) Introduction with a parenthesis. Just remove the parenthesis like this 00:00:00 Introduction and you will see beautiful chapters on the timeline of player. Thank me after correcting this .
@salim_bukeer
why this video has no subtitles
@AUTU8M
3:00:40