Mobile — Flutter
Google's Dart-based cross-platform UI toolkit for iOS, Android, web, and desktop.
Flutter is the dominant cross-platform mobile framework outside the React Native ecosystem. Dart language, single rendering pipeline (Impeller / Skia), one widget tree across iOS, Android, web, macOS, Windows, Linux. For React-flavored cross-platform see Mobile (Native) — RN/Expo and React Native (Deep). For Kotlin-shared see Kotlin Multiplatform. For wrap-the-web see Mobile Packaging.
Flutter SDK and Dart are free under BSD-3. The Apple Developer Program ($99/yr) and Play Console ($25 one-time) still apply for store submission.
Core SDK
- ★ Flutter — open-source UI toolkit; stable, ships ~quarterly. Impeller is now the default renderer on iOS and Android in 2026.
- ★ Dart 3.x — sound null safety, records, patterns, sealed classes; mature.
- Flutter Engine — the Skia/Impeller-based renderer; rarely touched directly.
Routing / navigation
- ★ go_router — Google-published declarative router; the default in 2026.
- auto_route — code-gen alternative; deeper type safety, more setup.
- Beamer — older declarative router; less momentum.
- Navigator 2.0 raw API — power-user only.
State management
- ★ Riverpod — by the author of Provider; compile-safe DI + state. The recommended choice for new apps.
- Provider — older, still fine for simple apps.
- BLoC / flutter_bloc — opinionated event-driven pattern; popular in larger teams.
- GetX — controversial all-in-one (state + nav + DI); polarizing.
- signals / solidart — newer fine-grained reactive state.
UI / widgets
- ★ Material widgets — built-in Material 3.
- ★ Cupertino widgets — built-in iOS-styled widgets.
- GetWidget, VelocityX — third-party widget libraries.
- forui — newer shadcn-flavored Flutter components.
- flutter_animate — fluent animation API.
No-code / low-code on top of Flutter
- FlutterFlow — visual builder that exports Flutter code; free tier + paid plans.
Persistence
- Drift (formerly Moor) — typed SQLite; reactive queries; the recommended default.
- Isar — fast NoSQL; check current maintenance status.
- Hive / hive_ce — lightweight key-value; community-maintained fork (
hive_ce) is the active path. - sembast — pure-Dart NoSQL; no native code.
- shared_preferences — small typed prefs; built-in.
- See Mobile — Databases & Storage.
Networking
- ★ dio — full-featured HTTP client with interceptors. The default.
- http package — official, simple.
- chopper — Retrofit-style codegen client.
- graphql_flutter / ferry — GraphQL.
Testing
- flutter_test — built-in unit + widget testing.
- integration_test — official end-to-end testing.
- patrol — better real-device E2E for Flutter; native interactions.
- golden_toolkit / alchemist — golden (snapshot) testing.
- See Mobile — Testing Frameworks.
DevTools / profiling
- ★ Flutter DevTools — official; timeline, inspector, memory, network, performance overlay.
- Sentry Flutter SDK — link to observability.
Build / CI
- ★ Codemagic — Flutter-first CI; generous free tier. Link to CI/CD.
- Bitrise, GitHub Actions with Flutter setup actions.
- See Mobile — CI/CD & Build Tools.
Localization
- intl package + ARB files — official.
- easy_localization — simpler runtime API.
- slang — type-safe code-gen.
- See Mobile — Localization.
Pick this if…
- Want one codebase, native-feeling animations, no JS bridge: Flutter.
- Already in the React/JS ecosystem: React Native + Expo.
- Already in Kotlin / want native iOS look: Kotlin Multiplatform + Compose Multiplatform.
- Visual builder: FlutterFlow.
- You're shipping desktop too: Flutter (or Tauri). Flutter's desktop targets are stable.