Where this stands
39 of 39 lessons written. Every bar below is
counted from the lesson files that exist. A planned lesson says so on its own page.
- 110 Dart panels, every one executed by Dart 3.13.1 and analysed with
--fatal-infos
- 483 assertions, all passing, or this build would have refused to write
- 26 widget panels, run as real widget tests by
flutter test
- 19 panels that deliberately do not compile, each proven to fail with the exact rule named
- 22 shown but not run, each stating why on the panel
- No network at read time. No npm dependencies.
Null safety, records, patterns, sealed classes and generics. The parts that change how you design.
7 of 7 written
- 1. Null safety, and what the ? and ! really promise
- 2. Collections, and the equality trap
- 3. Classes, constructors and const
- 4. Sealed classes and pattern matching
- 5. Records, and when not to use one
- 6. Generics, variance and bounded types
- 7. Extensions and extension types
Futures, streams, cancellation, backpressure and real concurrency. Where most production bugs live.
6 of 6 written
- 8. Futures, and the event loop underneath
- 9. Async errors, and the ones you never see
- 10. Streams, single versus broadcast
- 11. Debounce, throttle and backpressure
- 12. Isolates: real parallelism, and its cost
- 13. Retry, timeout, cancellation
The three trees, constraints, keys and the rendering pipeline. The most common senior interview topic.
5 of 5 written
- 14. Widget, Element and RenderObject
- 15. Constraints go down, sizes go up
- 16. Keys, and the bug they exist to fix
- 17. What causes a rebuild, and what it costs
- 18. State lifecycle, and didUpdateWidget
From setState to Bloc and Riverpod, and the question underneath all of them: who owns this state?
5 of 5 written
- 19. Who owns this state?
- 20. InheritedWidget, which is what the libraries use
- 21. Bloc and Cubit, built from scratch first
- 22. Riverpod, and how it differs
- 23. Choosing one, and defending the choice
Layers, dependency injection, error modelling and offline. What "architectural thinking" means in an advert.
6 of 6 written
- 24. Layers that survive a feature request
- 25. Dependency injection without magic
- 26. Modelling failure in the type system
- 27. Repositories, caching and a single source of truth
- 28. Offline first, and conflict resolution
- 29. Code generation, and its real cost
Unit, widget and golden tests; then finding and fixing jank with evidence rather than guesses.
6 of 6 written
- 30. Unit tests, and what a fake should not do
- 31. Widget tests: pump, settle and the traps
- 32. Golden tests, and why they break
- 33. Finding jank, and proving you fixed it
- 34. Leaks: controllers, listeners and images
- 35. Accessibility, tested rather than hoped for
The three things you are actually judged on, and how to answer a mobile system design question.
4 of 4 written
- 36. What seniors are really assessed on
- 37. A mobile system design answer, worked through
- 38. Defending a tradeoff out loud
- 39. Platform channels and native interop