Module 01
Beginner
Install Flutter, learn Dart, and build your first real screens.
10 lessons · ~107 min
View moduleFree Flutter curriculum
FlutterLearn is a free, structured Flutter course organised into three modules. No sign-up, no video paywall — just clear explanations, complete code samples, and exercises that make the ideas stick.
Free forever · No sign-up · Reviewed August 2026
Pick the module that matches where you are. If you are unsure, start at the beginning — the later modules assume the earlier ones.
Module 01
Install Flutter, learn Dart, and build your first real screens.
10 lessons · ~107 min
View moduleModule 02
Real apps: state management, networking, forms, storage and animation.
10 lessons · ~128 min
View moduleModule 03
Architecture, performance, custom rendering, native code and release engineering.
6 lessons · ~83 min
View moduleEach module builds on the last, so you are never told to use something that has not been explained. Start at lesson one and finish with a production-ready skill set.
Every example is complete, current with modern Flutter and Material 3, and written the way it would be written in a real codebase — not simplified to the point of being wrong.
Knowing that constraints flow down and sizes flow up is what stops you fighting layout errors. We explain the model, then show the code.
A sample of lessons from across the curriculum.
Beginner · 9 min
Understand what Flutter actually does under the hood, then install the SDK and run your first app on a simulator or real device.
Beginner · 10 min
Push and pop screens, pass data both ways, and set up named routes — plus when you should graduate to a router package.
Intermediate · 14 min
Understand InheritedWidget, then compare Provider, Riverpod and BLoC honestly so you can pick one and move on.
Intermediate · 12 min
Make one codebase look right on phones, tablets, desktop and web — with layout breakpoints, adaptive components and correct theming.
Advanced · 14 min
Layer a Flutter codebase so features can be added by several people at once without the whole thing turning into spaghetti.
Advanced · 13 min
Call Android and iOS APIs from Dart with method channels, stream native events back, and use FFI for direct C interop.