Every founder we meet asks the same question on day one: "Should we build native or cross-platform?"
The honest answer is "it depends" — but that's useless. So here's the actual decision tree we walk clients through, with the trade-offs spelled out.
What we mean by each option
Native (Swift + Kotlin)
Two separate codebases — one for iOS, one for Android — written in Apple's and Google's official languages. Maximum performance, full access to platform features the day they ship.
React Native
One JavaScript/TypeScript codebase that compiles to actual native UI components on both platforms. Backed by Meta. Mature ecosystem, used by Discord, Shopify, Coinbase.
Flutter
One Dart codebase that paints its own UI on a custom rendering engine. Backed by Google. Pixel-perfect across platforms, used by Google Pay, BMW, eBay Motors.
PWA (Progressive Web App)
A really good responsive website that can be "installed" to the home screen. No app store. Limited access to device features.
The decision tree
Step 1: Do you actually need an app?
Most "we need an app" requests are actually "we need a better mobile experience". A PWA built well can cover 80% of use cases for 30% of the cost. Ask: does our product genuinely need camera, GPS in the background, push notifications, or offline mode? If no — start with a PWA.
Step 2: Are you launching, or scaling?
For a v1 launch where you need to validate the idea and ship fast: cross-platform wins. One codebase, two stores, half the build cost, half the time.
For an established app with millions of users where every frame and every megabyte matters: native often wins. The marginal performance difference compounds at scale.
Step 3: What does your team already know?
This is the question consultants love to skip. If your in-house team is full of React developers, React Native lets them ship without retraining. If your future hires will be cheaper in your area as Flutter devs, optimize for that.
For SMB clients without an in-house mobile team, we usually recommend React Native + Expo. Largest hiring pool, most third-party libraries, and the Expo tooling has eliminated most of the historical pain points.
What changed in 2025–2026
Three things shifted that affect this decision:
- React Native's New Architecture finally rolled out everywhere, closing most of the historical performance gap with native
- Flutter 4.x dramatically improved iOS look-and-feel — it no longer "feels Android" on Apple devices
- Apple and Google's privacy changes made several common cross-platform analytics shortcuts harder, narrowing the pure-cost gap
The result: the line between native and cross-platform is blurrier than at any point in the last decade. For 80% of app projects, the choice doesn't materially affect the user experience.
Real cost comparison
For a moderately complex MVP (login, ~10 screens, push notifications, payments, basic API integration), here's roughly what we quote:
- Native (Swift + Kotlin): $35,000–$70,000 — two codebases, two timelines
- React Native: $18,000–$35,000 — one team, faster ship
- Flutter: $18,000–$35,000 — comparable to RN
- PWA: $8,000–$18,000 — no stores, no review delays
Maintenance follows the same pattern: native costs roughly 1.6× to 2× more per year than cross-platform.
When we still recommend native
Specific cases where we still push clients toward Swift + Kotlin:
- Real-time video processing or AR/VR
- Apps where the OS-level integration is the product (widgets, watch apps, Siri/Google Assistant)
- Games (use a game engine — Unity or Unreal — not Flutter or RN)
- Highly regulated industries where audit requirements need platform-native security frameworks
Outside those, cross-platform almost always wins on time-to-market and total cost.
"Pick the option that lets you ship the next version faster. Mobile apps don't fail because of the framework — they fail because the team couldn't iterate fast enough."
Bottom line
For most SMB and mid-market clients in 2026, our default recommendation is React Native with Expo. It's the lowest-risk choice for an unknown future: one codebase, large hiring pool, mature ecosystem, and a clear path to native modules if you ever need them.
For agencies, design-led startups, and apps where pixel control matters, Flutter is an equally strong call.
For everything else — start with a PWA. You can always upgrade later.
If you're scoping a mobile project and want a free 30-minute architecture review before you commit, get in touch. We'll walk you through the trade-offs for your specific case.