Flutter
One codebase, compiled UI for every platform.
Flutter is taught here in 14 lessons, running from Setup and your first app through to Next steps: Firebase, web and desktop targets. Each lesson takes one topic, shows the working code, and links onward to the next, so the course can be read straight through in order.
| Track | Mobile Development |
| Lessons | 14 |
| Level | Beginner to intermediate |
| Reading time | about 3 hours |
| Prerequisites | Helpful, but not required: iOS |
Lessons
- Setup and your first appInstall the Flutter SDK, understand what a project contains, and read the counter app that every new project starts from.
- Widgets and layoutStateless versus stateful widgets, how the layout constraints propagate, and the container widgets that do most of the work.
- State, navigation and release buildsWhere app state should live, how routes are pushed, and the commands that produce a store-ready bundle.
- Dart essentials for FlutterSound null safety, futures and streams, classes with mixins, collections, extension methods and async/await — the Dart you actually write inside a widget tree.
- Material 3 theming and adaptive UIBuild a colour scheme from a seed, apply typography and component themes, switch to dark mode, and lay out one codebase for phone, tablet and desktop.
- State management: setState, Provider, Riverpod and BLoCDecide what counts as state, lift it to the right place, and choose between the built-in tools and the three libraries most Flutter teams use.
- Navigation, routing and deep links with go_routerDeclare routes in one place, pass typed arguments, build nested shells with bottom navigation, handle deep links, and control the back button.
- Networking, JSON and serializationCall an API with http or Dio, add interceptors, generate models with json_serializable and freezed, and model loading, empty and error states honestly.
- Local persistence: shared_preferences, sqflite, Drift and HiveChoose between key-value and relational storage, open a database, write migrations, and keep credentials in secure storage rather than a preferences file.
- Platform integration: plugins, permissions and channelsEvaluate a pub.dev package before depending on it, request permissions at the right moment, and call native code through method and event channels.
- Testing Flutter appsWidget tests that assert on behaviour, golden tests for visuals, integration tests on a real device, mocking with mocktail, and keeping coverage meaningful.
- Performance, images and animationsFind rebuilds that matter, keep the frame budget, animate implicitly and with Hero transitions, and serve images at the size the screen actually needs.
- CI/CD, flavors and store deploymentSeparate environments with build flavors, keep signing material out of the repository, automate releases with Fastlane and Codemagic, and submit to both stores.
- Next steps: Firebase, web and desktop targetsAdd Firebase services with FlutterFire, understand the compromises of Flutter web and desktop, and structure a codebase that grows past one screen.
More in Mobile Development
Android iOS React Native Kotlin Swift
FAQ
How long does the Flutter course take?
It has 14 lessons, about 3 hours of reading. Expect roughly twice that if you type out and run every example.
Do I need prior experience for Flutter?
Not strictly. It helps to have read iOS first, because some lessons build on it, but every lesson explains its own assumptions.
What should I read after Flutter?
Continue with React Native (14 lessons), the next course in Mobile Development.