Choose Flutter
Choose Flutter when shared app UI and one Dart codebase are worth the platform release work.
Use Flutter When
| Product shape | Why Flutter fits |
|---|---|
| Android plus iOS app with custom UI | Shared widgets and business logic reduce duplicate app work |
| Mobile-first app with later desktop companion | Desktop targets can reuse app logic and much of the UI |
| Branded kiosk/tool/dashboard app | Consistent rendering is a benefit, not a drawback |
| Offline/local-first app with moderate platform APIs | Shared local models and UI can be productive |
Avoid Flutter When
| Product shape | Better default |
|---|---|
| Android-only app needing deep Android APIs | Android Kotlin Compose |
| iOS-first app needing platform-perfect feel | SwiftUI/UIKit |
| Content/SEO-heavy web app | Astro, Next.js, SvelteKit, or another web stack |
| Lightweight internal form/admin workflow | Web app or PWA |
| Tiny desktop utility with OS-native menus/tray/files | Native desktop, Tauri, or platform-specific stack |
Decision Prompt
Ask this before scaffolding:
Which exact targets are first-class for v1?
Which platform APIs are mandatory?
Is consistent branded UI more important than native platform feel?
Can the project own Dart/Flutter dependency and release work?
If the answer to the first question is “Android only”, start with Android Kotlin Compose unless cross-platform is a near-term product requirement.