Lesson 1 · 14 min
State Management Beyond setState
Understand InheritedWidget, then compare Provider, Riverpod and BLoC honestly so you can pick one and move on.
Module 02 of 3
Move from toy screens to shippable apps. This module covers app-wide state management, talking to REST APIs with proper error handling, validated forms, local persistence, animation, responsive layout, declarative routing with deep links, a complete authentication flow, device features and permissions, and localising and making your app accessible.
Developers who can build a screen already and now need the app to fetch, store, validate and persist real data.
Lesson 1 · 14 min
Understand InheritedWidget, then compare Provider, Riverpod and BLoC honestly so you can pick one and move on.
Lesson 2 · 15 min
Fetch data over HTTP, parse JSON into typed models, handle every failure mode, and show the result without jank.
Lesson 3 · 11 min
Build forms with Form and TextFormField, write reusable validators, and get keyboard, focus and submission behaviour right.
Lesson 4 · 12 min
Pick the right storage for the job: shared_preferences for settings, files for documents, SQLite for structured data, secure storage for secrets.
Lesson 5 · 13 min
Implicit animations, explicit controllers, Hero transitions and staggered sequences — with the performance rules that keep them smooth.
Lesson 6 · 12 min
Make one codebase look right on phones, tablets, desktop and web — with layout breakpoints, adaptive components and correct theming.
Lesson 7 · 13 min
Move past Navigator.push: typed routes, deep links, auth redirects and a bottom navigation bar where every tab keeps its own history.
Lesson 8 · 14 min
Build a complete sign-in flow: token storage, automatic refresh, an auth state that drives the UI, and secure sign-out.
Lesson 9 · 12 min
Use the camera, location, files and sharing — and handle the permission flows that decide whether any of it works.
Lesson 10 · 12 min
Translate your app properly, handle plurals, dates and right-to-left layouts, and make every screen usable with a screen reader.