Flutter Course for Beginners – 37-hour Cross Platform App Development Tutorial

Ecommerce Empire Academy

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:

✏️ Course developed by Vandad Nahavandipoor. Check out his channel:

🔗 Discord study group (for questions and answers about this course):
🔗 Setting up Firebase CLI and FlutterFire CLI on Windows:

⭐️ 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

62 thoughts on “Flutter Course for Beginners – 37-hour Cross Platform App Development Tutorial”

  1. Anjaneekumar Singh

    These courses are more useful than most of college degrees .. Thanks FreeCodeCamp ❤️

    1. @Ks Pro7 No, a lot of people are just lazy and can’t learn completely self taught because they have no motivation to put the hard work in on their own.

    2. shinichi kudo

      @Bruce Wayne college- out from college still having a hard time to get a job plus ur life getting more and more debt due to college stuff beside cant freaking guarantee u will get a job after out from college lol
      Meanwhile learning on youtube-freaking free not gonna have debt due to college stuffs…

    3. @Rishav Banerjee Mit courses are open on Internet, many other unis as well 😂
      it’s matter of will to learn in 21st century, and accessing internet

    4. @Ks Pro7 “knowledge without experience is not knowledge” lol. Knowledge is knowledge, experience is experience. Learn how to distinguish it. Combine the two is what we call as skill. College is 70-80% theoretical knowledge hence it’s not complete regardless how much you want to rationalize it , it’s a fact.

    1. Is Flutter better than React Native?
      I come from a web background, I am confused whether to choose…

    2. @Nuwa H. Weil depends. Im also beginner but i made choice to go with flutter. Because i learnt java as programming language and worked with it for few of my projects. So dart was easy for me and went with flutter. If u are in web for long time i think go with react native as u have some knowledge. (I might be wrong tho)

    3. @Nuwa H. Weil Flutter will be because widgets are already made for use…. But react you have to create every components custom…. in flutter if you want you can make custom widgets… flutter is highly optimized and is owned by Google… so no security issues although security of an app depends on your development

  2. Jeremiah Atillano

    This is the course that I’ve been waiting in all of youtube. I’ve been watching flutter tutorials for about two years. I’m gonna be hooked on this for days. Thank you so much for this!

    1. Hi, you must have seen some of the course by now can u please tell me if it’s good or bad, I am thinking about starting but since it’s so long I wanted to know if it’s worth or not

    2. What do you do that for, just watch one, so you can get grasp of the basics and start your own project + read the documentation

  3. Ofcourse seen this course on Vandad’s channel previously but again saying, this is the best flutter course one can take! Keep Up the great work, Flutter Community loves you😄

    1. Ismail Hossain

      @Rivaan Ranawat bro, I want to learn flutter from zero, is this course helpful for me? By the way in your channel you make some good project on flutter which was my list for practice session, thanks man.

  4. Thank you for being generous to upload this course for free.. Literally I have very less money( because I have incurred loss in my past two fashion business continuously) but have a passion to get into tech industry but doesn’t have any prior tech knowledge in the age of 34 I’m starting from zero now and by this time I found your channel and it is literally lifeline for me and now you gave me the hope that I can get a job and to survive in my life 🙏 Thanks a lot for this ❤️

    1. Lilyinthewater

      another Tamil woman of 34 here. It’s never too late to start. Keep up the grind sis!

  5. The reason for the app’s name being “com.yourname.yourappname” is: it creates a unique namespace for your application. There might be so many apps out there called “calculator”, so there needs to be a way to make it unique. It’s kind of like packets in Java, which are also just there to create separate namespaces to avoid name collisions. Reversing the domain name has become a widely accepted standard as it ensures uniqueness.

  6. Would you mind formatting the timestamps so that YouTube can recognize them and split the videos timeline into chapters?

    1. @Arun I know that there are timestamps in the description, but they are wrongly formatted. Therefore YouTube cannot recognize them and split the video’s timeline into chapters.

    2. @J3ns Why don’t you be a chad and do it for others who want it? I mean they already made the 37 hour video and make many others
      Maybe they’ll pin you for it 😏

  7. This is amazing, but as flutter is also comming for desktop and web, a good followup could be a Flutter web/desktop course too!

  8. To be honest this is an amazing course. I love the pace of the course and how well you explain things. A-lot of gold nuggets!

  9. I LOVE THIS GUY! Going through every problem when setting up android debugging in chapter 10 is an awesome idea. It helped me a lot. Thank you very much!))

  10. Horacio Ariel Coronel

    I just finished the Free flutter Course. I really enjoyed it and I’m looking forward to your upcoming videos. In the meantime here is a list of all the Chapters for whoever might need it:
    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

    Thanks Vandad amd freeCodeCamp!

  11. As of now, I have continuously watched for 4hrs 30m and i wish to continue too even at 2.30AM here. What a great course! , the entire content, your flow of thoughts without any clutter / confusion, the way you explain slowly is awesome. I would recommend everyone to watch the course who wants to learn OOPs, not just to learn flutter ..

  12. owala wilson

    I appreciate the effort you have put, the patience to put together such a detailed tutorial, and the clarity with which you cover each topic. One of the best there is.

  13. A lot of hard work has been put into this. Kudos! Now let’s see a 37 days course on anything, any takers? 😀

  14. I have been looking for an updated flutter course all over the internet, I was willing to pay money for it knowing that i can watch an updated version for free on YouTube is something really amazing which most people won’t take it into consideration amazing what you guys are delivering 🙂


    Just finished the course… It took me 9 days and this is my first flutter course, vandadnp was great and I felt really emotional in the last chapter (outro) of this course like i’ve known the tutor all my life…Lol.


      @Amit Giri Not really, the course was recorded between December last year till January this year (2022) so it’s still very current and can help give you a good foundation as to how flutter works basically. Then from there you can improve on yourself like I’m actually doing now….

  16. Trupti Maharana

    This is absolutely fire. Can’t thank you enough for the content you are providing

Comments are closed.