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.

TrackMobile Development
Lessons14
LevelBeginner to intermediate
Reading timeabout 3 hours
PrerequisitesHelpful, but not required: iOS

Lessons

  1. Setup and your first appInstall the Flutter SDK, understand what a project contains, and read the counter app that every new project starts from.
  2. Widgets and layoutStateless versus stateful widgets, how the layout constraints propagate, and the container widgets that do most of the work.
  3. State, navigation and release buildsWhere app state should live, how routes are pushed, and the commands that produce a store-ready bundle.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.