Skip to content

Flutter Deep Dive

A standalone, intermediate→advanced course on Flutter and Dart, written against Flutter 3.47 and Dart 3.13. From null safety and async Dart to the widget/element/render trees, the constraints layout algorithm, InheritedWidget and modern state management, navigation, performance, and release builds — every topic taught through annotated code and widget-tree diagrams.

Dart Foundations

The Dart language a Flutter dev must know — null safety, classes & mixins, and async with Future/Stream. Start →

Everything Is a Widget

The widget concept, stateless vs stateful, build & BuildContext, and the three trees. Compose →

Layout & Rendering

Constraints go down, sizes go up — the layout algorithm, core widgets, slivers, and the render pipeline. Lay out →

State Management

setState & lifecycle, InheritedWidget, Provider/Riverpod, BLoC, and where state should live. Manage →

Navigation & App Structure

Navigator, declarative routing & deep links, app scaffolding, and platform channels. Navigate →

Async, Performance & Rendering

FutureBuilder/StreamBuilder, minimizing rebuilds, animations, and isolates for heavy work. Optimize →

Tooling, Testing & Production

The toolchain, unit/widget/golden tests, build modes & flavors, and production concerns. Ship →

How Flutter Works

The three trees from the framework source, build scheduling and frames, layout and paint internals with custom RenderBoxes, Impeller and the GPU, and the Dart VM and isolates — every claim proven with widget tests, real builds and source permalinks at Flutter 3.47.5. Look inside →

Reading AI-generated Flutter

A 28-bug catalog of what AI-generated Flutter gets wrong (state, keys, layout, async, navigation, release config), a review checklist, the verification-tool ladder (analyze strict modes, riverpod_lint, tests, wasm builds) with DartPad embeds, and three worked reviews — every bug proven. Review →

The model first, then the code

Every topic starts from a model — the three trees, the constraints algorithm, how rebuilds propagate — so Flutter’s behavior stops feeling like magic and starts feeling inevitable.

Dart, then Flutter

Flutter is Dart. The course opens with the Dart depth a Flutter dev actually needs — null safety, async, mixins — before a single widget.

Design, not just syntax

Not “here’s a ListView” but “here’s how constraints and slivers make scrolling work, and why your list janks.” You’ll reason about layout and performance with confidence.

Diagrams that explain

The widget/element/render trees, constraint flow, the render pipeline, and state propagation as theme-aware Mermaid diagrams. Bilingual (English / ไทย) with saved quiz progress.