We have shipped more than 80 production mobile apps across Flutter, React Native, native iOS and native Android. In 2026 the “which one” conversation is quieter than it used to be — but it still matters. Here is our current default, with the cases where we reach for something else.
Our default: Flutter
For most new consumer apps with standard patterns, Flutter is our default in 2026. Three reasons.
- Rendering predictability. Flutter draws every pixel through Skia/Impeller. You know exactly what a widget will look like on every device; no vendor theming surprise eats your polish.
- Tooling maturity. Dart DevTools, hot reload, stack traces and profiling are all first-class in 2026. The authoring experience has caught up with what native used to promise.
- Codebase longevity. The Flutter breaking-change cadence has been gentle for three years running. Maintenance cost after launch is lower than React Native in our measurements.
When we reach for React Native instead
- Your team is already deep in the JavaScript / TypeScript ecosystem and you want to share business logic with the web.
- You need a library that is only first-class on RN (certain AR, VoIP or specific SDKs).
- You are extending an existing RN app; mixing stacks in one codebase is not worth the pain.
When cross-platform is the wrong answer
- Heavy native integrations. Bluetooth LE, advanced camera, ARKit/ARCore, custom Metal/Vulkan shaders — native earns its keep here.
- AAA UX polish. Some apps live or die by native feel (think banking, health). The extra build cost is worth it.
- Platform-specific APIs. Apple Vision features, Dynamic Island, complex Live Activities — write those natively and bridge in.
What about Kotlin Multiplatform?
We have shipped two production KMP apps. It is promising but tooling is still catching up, and the mobile UI story (Compose Multiplatform) is not yet a full Flutter/RN replacement. Watch this space.
Decision tree we use on calls
- App is native-feel-critical (banking, health, luxury retail) → Native.
- Heavy native API dependence (AR, BLE, advanced camera) → Native.
- Team is JS/TS heavy and shares logic with a React web app → React Native.
- Everything else → Flutter.
Where we land
There are no religious wars in 2026. There are fit decisions. Pick the stack that matches your team, your constraints and your five-year maintenance plan — not the stack that looks cool this quarter.
