Free Course Image Flutter course for beginners

Free online courseFlutter course for beginners

Duration of the online course: 37 hours and 8 minutes

2

StarStar

(1)

Build cross‑platform apps with Flutter fast. Take this free course to learn Dart, Firebase, testing, and app release skills for iOS & Android.

In this free course, learn about

  • Flutter’s multi-platform UI approach and why it’s compelling for building apps
  • Setting up dev accounts, project dependencies (pubspec.yaml), iOS/Android build configs
  • Core Dart: control flow, collections, OOP (classes/abstract), extensions, and required params
  • Sound null safety and using nullable types to represent absence of values
  • Flutter UI fundamentals: Stateless limits, views structure, padding, FAB, lists (ListView.builder)
  • Navigation: Navigator, named routes, route constants, and separating app initialization flows
  • Auth UX: registration/login, email verification, logout, identity checks, and dialogs
  • Git/GitHub workflow basics and why Git is essential for version control
  • Error handling patterns in auth screens (e.g., showErrorDialog) and logging vs print
  • Backend with Firebase: setup, Firestore basics, security rules, and cloud persistence
  • CRUD notes app: local storage, streams/StreamController, create/update/delete, user scoping
  • Sharing across platforms with a Flutter sharing plugin
  • State management with BLoC: events/states, routing/dialog control, auth process conversion
  • Release readiness: icons, splash screen purpose, localization, App Store/Play release steps

Course Description

Create mobile apps that feel native on both iOS and Android without maintaining two separate codebases. This beginner-friendly Flutter experience guides you from zero setup to a working app you can confidently ship. You’ll start by getting your environment ready and understanding why Flutter stands out as a multi-platform UI framework, then build solid foundations in Dart so you can read, write, and reason about real production code.

Instead of stopping at simple demos, you’ll progress into the workflow that modern app developers use every day. You’ll practice organizing a project so it scales, navigating between screens with clean routing, and building authentication flows that users expect, including registration, login, email verification, and logout. Along the way you’ll learn how to handle errors gracefully, present helpful dialogs, and keep your app’s behavior predictable even when things go wrong.

Backend integration is a major turning point for most beginners, and you’ll tackle it head-on with Firebase. You’ll connect your app to cloud services, store and retrieve data, and move from local persistence to Cloud Firestore so your notes and updates can live beyond a single device. As you develop the app, you’ll also get hands-on practice with streams, controllers, and UI patterns that keep your interface responsive while data changes in real time.

You won’t just write code; you’ll adopt professional habits. Version control with Git and GitHub helps you work safely and iterate quickly. You’ll design an authentication layer that can be tested, then add unit tests so your core logic is easier to maintain. You’ll also learn how to separate business logic from presentation using Bloc, making the app cleaner, more modular, and easier to extend as requirements grow.

Finally, you’ll take the crucial step many tutorials ignore: preparing a real release. From polishing loading states and UI details to icons, splash screens, localization, and platform-specific setup, you’ll walk through what it takes to deliver to App Store Connect and publish on Android. By the end, you’ll have a practical understanding of the complete Flutter app lifecycle and the confidence to start building your own projects with a roadmap that mirrors real-world development.

Course content

  • Video class: Intro - Free Flutter Course 31m
  • Exercise: What is a key benefit of Flutter that makes it appealing to Vandad Nahavandipoor?
  • Video class: Chapter 1 - Developer Accounts - Free Flutter Course 36m
  • Exercise: Why is having a developer account essential for releasing mobile apps?
  • Video class: Chapter 2 - Setup - Free Flutter Course 35m
  • Exercise: Why is Flutter considered a multi-platform UI framework?
  • Video class: Chapter 3 - Introduction to Dart - Free Flutter Course 46m
  • Exercise: What is the primary focus of the third chapter in the Flutter course?
  • Video class: Chapter 4 - Dart Control Statements and Collections - Free Flutter Course 45m
  • Exercise: Which property of lists in Dart automatically calculates the total count of items present?
  • Video class: Chapter 5 - Sound Null Safety in Dart - Free Flutter Course 40m
  • Exercise: What concept allows a variable to represent the absence of a value in Dart?
  • Video class: Chapter 6 - Dart Enumerations, Classes and Objects - Free Flutter Course 51m
  • Exercise: What is an abstract class in Dart and what is its purpose?
  • Video class: Chapter 7 - Advanced Dart - Free Flutter Course 42m
  • Exercise: What is the primary purpose of using extensions in Dart?
  • Video class: Chapter 8 - Project Setup - Free Flutter Course 47m
  • Exercise: In Flutter, which file specifies the version of Flutter SDK required, project dependencies, and other project related configurations?
  • Video class: Chapter 9 - iOS App Setup - Free Flutter Course 1h11m
  • Exercise: What is essential for releasing iOS apps on the App Store?
  • Video class: Chapter 10 - Android App Setup - Free Flutter Course 31m
  • Exercise: What is the main difference between an Android emulator and an iOS simulator when it comes to their functionality in mobile application development?
  • Video class: Chapter 11 - Firebase Backend Setup - Free Flutter Course 29m
  • Exercise: Why was Firebase chosen over a custom backend for this project?
  • Video class: Chapter 12 - Basic Registration Screen - Free Flutter Course 1h03m
  • Exercise: What is one of the limitations of using a Stateless widget in Flutter?
  • Video class: Chapter 13 - Login View - Free Flutter Course 48m
  • Exercise: What is the primary focus of Chapter 13 in the described Flutter course?
  • Video class: Chapter 14 - Separating App Initialization from Login and Register Screens - Free Flutter Course 26m
  • Exercise: In a Flutter project, where is the recommended location to store code for custom views, such as a 'register view' component?
  • Video class: Chapter 15 - Setting up Git and GitHub - Free Flutter Course 50m
  • Exercise: What is the primary function of Git in software development?
  • Video class: Chapter 16 - Email Verification View - Free Flutter Course 34m
  • Exercise: In Flutter, what is the purpose of using the 'Navigator' class?
  • Video class: Chapter 17 - Link Between Login and Register Views - Free Flutter Course 33m
  • Exercise: What is the main purpose of a 'named route' in Flutter?
  • Video class: Chapter 18 - Logout View - Free Flutter Course 55m
  • Exercise: What is the purpose of using the 'showDialog' function in a Flutter application?
  • Video class: Chapter 19 - Go From Login to Notes View - Free Flutter Course 22m
  • Exercise: Why use 'log' instead of 'print' in Flutter development?
  • Video class: Chapter 20 - Cleaning Up Our Routes - Free Flutter Course 14m
  • Exercise: In the Flutter course, what is recommended to avoid hard coding route names in the source code?
  • Video class: Chapter 21 - Error Handling in Login View - Free Flutter Course 25m
  • Video class: Chapter 22 - Error Handling in Register View, Next Screen After Registration - Free Flutter Course 28m
  • Exercise: In the context of error handling for user registration in Flutter, which of the following statements correctly describes the use of the `showErrorDialog` function?
  • Video class: Chapter 23 - Confirming Identity Before Going to Main UI - Free Flutter Course 07m
  • Video class: Chapter 24 - Auth Service - Free Flutter Course 1h03m
  • Exercise: What is the purpose of creating an abstract auth provider class in the Flutter course?
  • Video class: Chapter 25 - Migrating to Auth Service - Free Flutter Course 38m
  • Video class: Chapter 26 - Unit Testing our AuthService - Free Flutter Course 1h10m
  • Exercise: Which Dart feature allows you to ensure that a parameter passed to a function or constructor must be provided?
  • Video class: Chapter 27 - CRUD Local Storage - Free Flutter Course 1h47m
  • Video class: Chapter 28 - Working with Streams in Notes Service - Free Flutter Course 33m
  • Exercise: In Dart and Flutter development, what is a Stream Controller used for?
  • Video class: Chapter 29 - Preparing Notes View to Read All Notes - Free Flutter Course 34m
  • Video class: Chapter 30 - Preparing to Create New Notes - Free Flutter Course 20m
  • Exercise: What is the purpose of the FloatingActionButton in Flutter applications?
  • Video class: Chapter 31 - Creating New Notes - Free Flutter Course 35m
  • Video class: Chapter 32 - Displaying Notes in Notes View - Free Flutter Course 20m
  • Exercise: Which Flutter widget is suitable for creating scrollable lists where items are only built when they're visible on-screen?
  • Video class: Chapter 33 - Deleting Existing Notes in Notes View - Free Flutter Course 44m
  • Video class: Chapter 34 - Updating Existing Notes - Free Flutter Course 33m
  • Exercise: What is the purpose of creating or updating the `CreateUpdateNoteView` in the Flutter application?
  • Video class: Chapter 35 - Protecting NotesService with Current User - Free Flutter Course 26m
  • Video class: Chapter 36 - Writing Notes to Cloud Firestore - Free Flutter Course 1h17m
  • Exercise: In the context of Flutter and cloud databases, which of the following statements is most accurate regarding Firestore?
  • Video class: Chapter 37 - Migrating to our Firestore Service - Free Flutter Course 24m
  • Video class: Chapter 38 - Sharing Notes - Free Flutter Course 15m
  • Exercise: Which plugin is used in Flutter to enable sharing content across different platforms?
  • Video class: Chapter 39 - Introduction to Bloc - Free Flutter Course 46m
  • Video class: Chapter 40 - Converting our Auth Process to Bloc - Free Flutter Course 1h06m
  • Exercise: Which Flutter component separates business logic from presentation logic and communicates via events and states?
  • Video class: Chapter 41 - Handling Auth Bloc Exceptions During Login - Free Flutter Course 21m
  • Video class: Chapter 42 - Moving to Bloc for Routing and Dialogs - Free Flutter Course 1h05m
  • Exercise: What technique should be used in Flutter to handle state and execute functions such as login, logout, and sending email verification, instead of directly interacting with the AuthService and Navigator.of?
  • Video class: Chapter 43 - Loading Screens - Free Flutter Course 50m
  • Video class: Chapter 44 - Final Touches Before App Release - Free Flutter Course 54m
  • Exercise: In Flutter, which widget is commonly used to provide padding around another widget?
  • Video class: Chapter 45 - App Icons and App Name - Free Flutter Course 23m
  • Video class: Chapter 46 - Splash Screen - Free Flutter Course 50m
  • Exercise: What is the purpose of a splash screen in mobile applications?
  • Video class: Chapter 47 - Sending our iOS app to App Store Connect - Free Flutter Course 58m
  • Video class: Chapter 48 - Releasing our iOS App - Free Flutter Course 24m
  • Exercise: Which of the following is NOT a purpose for which the 'other user content' collected from the app is used?
  • Video class: Chapter 49 - Fixing Firebase Security Rules and Resubmitting the iOS App - Free Flutter Course 29m
  • Video class: Chapter 50 - Releasing Our Android App - Free Flutter Course 1h05m
  • Exercise: What is the main purpose of creating an app bundle before releasing an Android application?
  • Video class: Chapter 51 - Localization in Flutter - Free Flutter Course 1h38m
  • Video class: Outro - Free Flutter Course 05m
  • Exercise: What does the instructor emphasize about the nature of the course material?

This free course includes:

37 hours and 8 minutes of online video course

Digital certificate of course completion (Free)

Exercises to train your knowledge

100% free, from content to certificate

Ready to get started?Download the app and get started today.

Install the app now

to access the course
Icon representing technology and business courses

Over 5,000 free courses

Programming, English, Digital Marketing and much more! Learn whatever you want, for free.

Calendar icon with target representing study planning

Study plan with AI

Our app's Artificial Intelligence can create a study schedule for the course you choose.

Professional icon representing career and business

From zero to professional success

Improve your resume with our free Certificate and then use our Artificial Intelligence to find your dream job.

You can also use the QR Code or the links below.

QR Code - Download Cursa - Online Courses

More free courses at App Development

Free Ebook + Audiobooks! Learn by listening or reading!

Download the App now to have access to + 5000 free courses, exercises, certificates and lots of content without paying anything!

  • 100% free online courses from start to finish

    Thousands of online courses in video, ebooks and audiobooks.

  • More than 60 thousand free exercises

    To test your knowledge during online courses

  • Valid free Digital Certificate with QR Code

    Generated directly from your cell phone's photo gallery and sent to your email

Cursa app on the ebook screen, the video course screen and the course exercises screen, plus the course completion certificate