Native or cross-platform? A decision framework that actually decides
Choose native (Swift and Kotlin) when the app is a core revenue product, needs heavy device-feature access, has performance-critical paths, or must adopt new OS features immediately. Choose cross-platform (React Native or Flutter) when you need both platforms on a constrained budget and the app is primarily business logic, forms, content and notifications — which covers the majority of business applications. Cross-platform typically costs 30-40% less than two native apps.
The honest summary
This debate generates far more heat than it deserves. Both approaches produce good apps. The question is not which technology is better in the abstract — it is which set of trade-offs suits your product, your budget and your team.
The compressed version: if your app is your product, build native. If your app supports your product, build cross-platform. Everything below is the detail behind that.
Where native genuinely wins
- Performance-critical paths. Real-time video or audio processing, complex graphics, AR, large-scale on-device computation, 120Hz scrolling through enormous lists.
- Deep platform integration. Widgets, Live Activities, App Clips, Siri Shortcuts, Apple Watch, Wear OS, CarPlay, advanced Bluetooth or NFC, background processing.
- Immediate adoption of new OS features. Cross-platform frameworks lag WWDC and Google I/O by months. If shipping the new thing in week one matters commercially, that lag is disqualifying.
- Long-lived consumer products. If the app will be actively developed for five or more years by a growing team, the cost of two native codebases amortises and you avoid dependency on a framework's roadmap.
- Best-in-class feel. Native gets you platform conventions, gestures and animation for free. Cross-platform gets you close; the last 5% is expensive.
Where cross-platform genuinely wins
- Constrained budget, both platforms required. The most common real-world situation, and the strongest argument.
- Business applications. Forms, lists, dashboards, bookings, approvals, documents, notifications. Nothing here strains a cross-platform framework.
- Internal and field tools. Nobody is judging your engineer-facing app on animation polish.
- Small teams. One codebase, one skill set, one release process. If you have two developers, two native codebases will hurt.
- Speed to market. One build, both stores, meaningfully faster.
- Existing React expertise. If your team already writes React, React Native is a short step rather than a new discipline.
React Native or Flutter?
| React Native | Flutter | |
|---|---|---|
| Language | JavaScript / TypeScript | Dart |
| UI rendering | Native platform components | Own rendering engine |
| Look and feel | Naturally platform-native | Consistent across platforms; native look needs effort |
| Hiring in the UK | Easier — large JS/React pool | Smaller pool, growing |
| Code sharing with web | Strong (React, shared logic) | Weaker in practice |
| Animation-heavy UI | Good | Excellent |
| Backed by | Meta | |
| Best when | You have React skills, or want a web+mobile shared stack | You want pixel-identical custom UI across platforms |
Both are production-ready and both are used at very large scale. In the UK, hiring pool is often the deciding factor and it favours React Native. If your app is visually distinctive and animation-led, Flutter is the better tool.
The criteria that should decide it
Work through these in order. The first one that gives a clear answer usually is the answer.
- Is the app the product, or a channel to it? Product → lean native. Channel → lean cross-platform.
- Does it need device features beyond camera, location and notifications? Yes → native, or accept native modules in a cross-platform app.
- Is there a performance-critical path? Real-time media, heavy graphics, enormous datasets → native.
- What is the budget for both platforms? Under about £60,000 for both → cross-platform, or one platform natively.
- Who maintains it in three years? A small in-house team → one codebase. A growing dedicated mobile team → native is sustainable.
- How long must it live? Under three years → cross-platform. Five-plus years as a core product → native reduces framework risk.
Common mistakes
- Choosing native for prestige. "Proper apps are native" has cost a lot of companies a lot of money on internal tools.
- Choosing cross-platform then demanding native behaviour. If you want every iOS convention pixel-perfect, you are paying native prices inside a cross-platform codebase.
- Ignoring the backend. Teams agonise over the client framework and give no thought to the API, which is usually where the real complexity lives.
- Assuming cross-platform means no platform knowledge. You still need people who understand both stores, both permission models and both release processes.
- Treating it as irreversible. A well-architected app keeps business logic out of the UI layer. Migrating a clean React Native app to native later is unpleasant but survivable; migrating a spaghetti one is a rewrite.
We make this call with clients during discovery rather than in a proposal. If you want a second opinion on a decision you have already made, that is a conversation we are happy to have — see mobile app development.
Frequently asked
Is React Native still a good choice in 2026?
Yes. The New Architecture has addressed most of the historical performance criticisms, it is used at very large scale by major consumer apps, and in the UK the hiring pool is significantly larger than for Flutter. It remains a sound default for business applications needing both platforms.
Is Flutter better than React Native?
Neither is universally better. Flutter is stronger for visually distinctive, animation-heavy interfaces because it controls rendering. React Native is stronger for platform-native feel, code sharing with a React web app, and UK hiring. Choose on those criteria, not benchmarks.
Can you mix native and cross-platform code?
Yes, and it is common. Both React Native and Flutter allow native modules for specific features, so you can build 90% cross-platform and drop to Swift or Kotlin for the parts that need it. This is often the pragmatic answer to 'but we need one native feature'.
Will Apple reject a cross-platform app?
No. Apple's guidelines concern functionality, content and privacy, not the framework used. Apps built with React Native and Flutter pass review routinely. Rejections come from incomplete privacy declarations, thin functionality or account-deletion requirements.
How much cheaper is cross-platform than native?
Typically 30-40% less than building two separate native apps. Roughly 60-70% of the code is shared; platform-specific work, testing on both platforms and dual store release remain.
Related insights
How much does it cost to build a mobile app in the UK?
Real ranges for MVPs, production apps and enterprise builds — plus the five factors that move the number most, and the four costs quotes routinely omit.
11 min read ProcurementHow to choose a software development partner: 12 questions that matter
Twelve questions that separate a supplier who will deliver from one who will not — and how to compare quotes that are not actually comparable.
9 min readWant this applied to your situation?
Send us the specifics and you will get a straight, technical answer from someone who does this work — not a sales response.