Tooling

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

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.

On this page