Mobile
Flutter or native Android? How we decide for each product
Short answer: choose Flutter when you need Android and iOS from one team with consistent UI — which is most business apps. Choose native Kotlin when the app lives on device hardware, long-running background work or Android-only devices.
Where this view comes from
I built native Android apps in Java and Kotlin for years — CRM apps, field-operations apps for a power utility, community apps — and published open-source Android libraries that developers still use. Since then we have shipped Flutter apps for ticketing, healthcare and commerce. Both are good tools; the mistake is choosing by fashion.
Six questions that actually decide it
1. Do you need iOS too?
If yes, Flutter's single codebase is the strongest argument in its favour. Two native apps means two teams, two release trains and two sets of bugs.
2. How much does the app depend on the device?
Camera, maps, QR scanning and push notifications work well in Flutter through mature plugins. Continuous location tracking, Bluetooth peripherals, custom background services or kiosk-style device control lean towards native.
3. Does it run work in the background?
Sync jobs, uploads and scheduled work are well served on Android by WorkManager and foreground services. Flutter can trigger these, but heavy background logic is simpler to own natively.
4. How custom is the UI?
Flutter draws its own UI, which makes branded, pixel-consistent interfaces across platforms easy. Native Jetpack Compose is excellent too, but only for Android.
5. What does your team already know?
A strong existing Kotlin codebase and team is a real asset; rewriting it for fashion rarely pays off. A web team comfortable with typed, component-based UI often picks up Flutter quickly.
6. Who maintains it in three years?
Count the people and skills you will need to keep the app current with OS and store requirements. One codebase is usually cheaper to keep healthy.
Our default
- Flutter for customer apps, operator apps and MVPs that need both stores
- Native Kotlin for hardware-heavy, background-heavy or Android-only apps
- Hybrid of both when a Flutter app needs one or two deep native features
Still unsure? Our mobile app development team will recommend a platform with the reasoning written down, or you can explore Flutter and native Android in more detail.