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

freeCodeCamp.org

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