🎯 Dart
The Dart language for Flutter developer interviews: null safety, records and pattern matching, class modifiers, mixins, Future/Stream, the event loop and isolates. A prerequisite for the Flutter branch.
Stages
Language basics
The part of Dart syntax you use every day: choosing between `var`/`final`/`const` and the compile-time versus runtime distinction, the three parameter forms and how closures capture variables, collections and `Iterable` laziness, string immutability and Unicode traps, plus Dart 3 records and pattern matching. The stage focuses on the traps interviews ask about most — `final` versus `const`, an `int` not being a `double`, a lazy chain executing twice, and exhaustiveness over a `sealed` hierarchy.
Null safety and the type system
Dart's sound null safety model and the depth of its type system: nullable `T?` versus non-nullable `T`, the null-aware operators, flow analysis and why promotion does not apply to fields, how `late` works internally and lazy initialization, generics, bounded types, the runtime price of covariance, plus the `==`/`hashCode` contract and immutable value objects. These come up in Flutter interviews as questions about type safety and model design.
🔓 Recommended after: Language basics
OOP and language features
The parts of Dart's object model that interviews actually probe: every form of constructor (factory, const, redirecting, initializer lists), Dart 3 class modifiers and exhaustive switching over sealed classes, mixins and linearization, enhanced enums, and extension methods with their compile-time resolution. Each topic is framed around how to answer it in an interview.
🔓 Recommended after: Null safety and the type system
Asynchronous Dart
Dart's asynchronous model end to end: Future and async/await, the async gap and parallelisation, stream fundamentals (single-subscription vs broadcast, the cancellation obligation), async* generators and stream transformations, the event loop and microtask queue with execution-order puzzles, and finally isolates — when they are genuinely needed and what they cost.
🔓 Recommended after: OOP and language features
Practice and interview
The closing stage of the branch: turning knowledge into working practice. Error handling in async code, writing tests with `package:test` and structuring code so it can be tested, the everyday tool chain of pub, pubspec and the analyzer, a wrong-versus-right catalogue of classic Dart pitfalls, and finally the interview itself — 20-30 second model answers to rapid-fire questions and the live-coding process: clarify, state the approach and complexity, narrate while coding, dry-run, discuss trade-offs.
🔓 Recommended after: Asynchronous Dart
📚 Sources and documentation
- Dart language documentationofficialdart.dev
Every language construct — the first place to check whenever something is unclear.
- Effective Dartofficialdart.dev
The official style and design guide; it answers the "why did you write it this way?" question.
- Dart API referenceofficialapi.dart.dev