Skip to content
FlutterLearn

Module 02 of 3

Intermediate Flutter Tutorials

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.

Lessons
10
Reading time
~128 min
Price
Free

Before you start

Developers who can build a screen already and now need the app to fetch, store, validate and persist real data.

  • You can build layouts and use StatefulWidget confidently
  • You understand Dart futures and async/await
  • You have shipped at least a small multi-screen app locally

What you will be able to do

  • Choose and apply a state management approach beyond setState
  • Consume REST APIs with typed models, error handling and cancellation
  • Build forms with validation and good keyboard behaviour
  • Persist data with shared_preferences, files and SQLite
  • Write implicit and explicit animations that stay at 60fps
  • Adapt a single codebase across screen sizes and platforms
  • Route declaratively with deep links, auth guards and nested navigation
  • Ship a secure sign-in flow with token refresh and session handling
  • Use device features behind correct permission flows
  • Localise your app and make it usable with a screen reader

Lessons in this module

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.

Lesson 3 · 11 min

Forms, Validation and Input UX

Build forms with Form and TextFormField, write reusable validators, and get keyboard, focus and submission behaviour right.

Lesson 4 · 12 min

Storing Data Locally

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

Animations That Feel Right

Implicit animations, explicit controllers, Hero transitions and staggered sequences — with the performance rules that keep them smooth.

Lesson 6 · 12 min

Responsive and Adaptive UI

Make one codebase look right on phones, tablets, desktop and web — with layout breakpoints, adaptive components and correct theming.

Lesson 7 · 13 min

Declarative Routing with go_router

Move past Navigator.push: typed routes, deep links, auth redirects and a bottom navigation bar where every tab keeps its own history.

Lesson 9 · 12 min

Device Features and Permissions

Use the camera, location, files and sharing — and handle the permission flows that decide whether any of it works.