Flutter Development Concepts and Methods
Problem What are the core concepts and methods you should know in Flutter development?
Be ready to discuss
- The widget tree: StatelessWidget versus StatefulWidget, widgets as immutable configuration, and the distinction between the widget tree, element tree, and render tree.
- Build and rebuild: what
build()is responsible for, howsetState()marks an element dirty and triggers a rebuild, and why keepingbuild()cheap and side-effect free matters. - State lifecycle:
initState,didChangeDependencies,didUpdateWidget,dispose— and what belongs in each (subscriptions in initState, teardown in dispose). - State management options: setState for local state versus Provider, Riverpod, or Bloc for shared/app state, and the reasoning for choosing one.
- Layout algorithm: constraints flow down, sizes flow up, parent sets position — and the common layout widgets (Row, Column, Stack, Expanded, ListView) plus debugging unbounded-constraint errors.
- Compilation and tooling: Dart JIT in development enabling hot reload versus AOT compilation to native ARM for release, and hot reload versus hot restart (preserved state versus reset state).
- Performance: keys and why they matter for list identity, const constructors, ListView.builder for lazy rendering, and avoiding rebuilds of expensive subtrees.
asked …