Google's UI toolkit for building beautiful, natively compiled apps for mobile, web, and desktop from a single codebase.

Flutter uses the Dart language and its own rendering engine — no native bridge needed.

Dart fundamentals:
- Null safety (late, ?, !)
- Async/await, Future, Stream
- Named constructors, factory, extension methods
- Classes, mixins, generics

Flutter core concepts:
- Everything is a Widget — StatelessWidget, StatefulWidget
- Widget tree → Element tree → Render tree
- BuildContext — accessing ancestors and theme
- setState() — triggers rebuild of subtree
- const constructors — performance optimisation

Layout:
- Column, Row, Stack, Flexible, Expanded
- SizedBox, Padding, Container, ConstrainedBox
- ListView, GridView, CustomScrollView + Slivers

Navigation:
- Navigator 1.0 (push/pop)
- Navigator 2.0 / Router API — declarative, deep link support
- GoRouter package — recommended for most apps

State management:
- setState — simple widgets
- Provider — dependency injection + ChangeNotifier
- Riverpod — improved Provider, compile-safe
- BLoC (Business Logic Component) — event/state streams
- GetX — simple but opinionated

Platform integration:
- MethodChannel — call native iOS/Swift or Android/Kotlin code
- Platform views — embed native views in Flutter
- Plugins: camera, image_picker, geolocator, firebase_core

Flutter performance:
- Use const where possible
- RepaintBoundary for expensive subtrees
- Profile mode + Flutter DevTools (CPU profiler, memory, frame rendering)