Start a project
Home
Services
Web Application DevelopmentMobile App DevelopmentCloud & DevOpsCRM & Business SystemsData, Analytics & BISupport & MaintenanceAll services
IndustriesWorkAboutInsightsCareersContactStart a project
Architecture

Native or cross-platform? A decision framework that actually decides

The short answer

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 NativeFlutter
LanguageJavaScript / TypeScriptDart
UI renderingNative platform componentsOwn rendering engine
Look and feelNaturally platform-nativeConsistent across platforms; native look needs effort
Hiring in the UKEasier — large JS/React poolSmaller pool, growing
Code sharing with webStrong (React, shared logic)Weaker in practice
Animation-heavy UIGoodExcellent
Backed byMetaGoogle
Best whenYou have React skills, or want a web+mobile shared stackYou 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.

  1. Is the app the product, or a channel to it? Product → lean native. Channel → lean cross-platform.
  2. Does it need device features beyond camera, location and notifications? Yes → native, or accept native modules in a cross-platform app.
  3. Is there a performance-critical path? Real-time media, heavy graphics, enormous datasets → native.
  4. What is the budget for both platforms? Under about £60,000 for both → cross-platform, or one platform natively.
  5. Who maintains it in three years? A small in-house team → one codebase. A growing dedicated mobile team → native is sustainable.
  6. 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.

Answers

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.

Want 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.