The mobile stack debate, in 2026
The "native vs cross-platform" conversation is older than most of the engineers having it. The answers have changed. In 2026 the realistic options are: native (Swift / Kotlin), Flutter, React Native (with the new architecture), and Kotlin Multiplatform Mobile (KMP). Each has a place, and the place is determined more by the team and the product than by the tech.Native (Swift + Kotlin)
Wins on: day-1 access to platform features, performance for graphics-heavy apps, integration with platform SDKs that lag in cross-platform wrappers, ecosystem maturity.Costs: two codebases, two teams or two heads in one team, double the surface area for bugs.
Use when: platform-feature exposure is a competitive advantage, or the product is a 5+ year investment with a team that can support it.
Flutter
Wins on: excellent UI fidelity (renders own widgets, not platform widgets), great performance for typical apps, good developer ergonomics, growing ecosystem.Costs: Dart is its own language. Some platform integrations still trail native by 6-12 months. The "your app doesn't quite look native" debate is real but increasingly minor.
Use when: the team values UI consistency across platforms, designs lean on bespoke UI rather than platform-default, codebase needs to be one team, not two.
React Native (new architecture)
Wins on: JavaScript / TypeScript ecosystem, code sharing with web codebases, mature in production at scale (Meta, Shopify, Microsoft Office mobile bits), much improved performance with Fabric / TurboModules.Costs: dependency churn — keeping the JS toolchain stable across releases is real engineering work. Native module integration is workable but not effortless.
Use when: team is already JS-heavy, web + mobile share business logic meaningfully, or the product needs frequent UI iteration with hot-reload speed.
Kotlin Multiplatform Mobile (KMP)
Wins on: shared business logic with native UI per platform. Best of both worlds when the UI is the part you don't want to compromise on.Costs: still maturing as a production-grade option in 2026 (improving fast). UI is per-platform, so you don't get the "one UI codebase" benefit.
Use when: the team has Kotlin expertise, native UI quality matters, and the business logic / data layer is large enough to justify sharing.
The decision matrix
- Need maximum platform fidelity, have two teams → native
- One small team, bespoke UI design system → Flutter
- JS/TS heavy company, web + mobile parity → React Native
- Native UI quality + shared logic → KMP
- "Cross-platform but feels native" → KMP or Flutter, depending on team
One pattern that always pays off
Whichever stack you pick: invest in the build system and CI early. Mobile pipelines (signing, beta distribution, store submission, code-signing renewals) eat more time than feature work for unprepared teams. Fastlane, EAS, GitHub Actions for mobile — pick a path and automate.What's your stack? And — is anyone seeing serious KMP adoption in 2026 or is Flutter still dominating the cross-platform conversation?