Walsh Costigan Let's chat

Building a new app

Native vs. Cross-Platform App Development: React Native, Flutter or Swift/Kotlin?

Short answer: For most startups, businesses and creator apps, cross-platform (React Native or Flutter) is the right choice. One codebase ships to iOS and Android, so it typically costs 10–20% more than a single platform rather than double, and the result feels native to users. Go fully native (Swift for iOS, Kotlin for Android) when the app depends on heavy graphics, advanced hardware access, or platform-specific polish that is the product. My default is React Native with Expo.

What's the difference?

  • Native: Separate apps written in each platform's own language: Swift/SwiftUI for iOS and Kotlin/Jetpack Compose for Android. Two codebases, often two developers.
  • Cross-platform: One codebase that runs on both. React Native (JavaScript/TypeScript, renders native UI components) and Flutter (Dart, draws its own UI) are the two main options.

Side-by-side comparison

Native (Swift + Kotlin) React Native (+ Expo) Flutter
Codebases 2 1 1
Cost for iOS + Android Highest (~2×) Lower Lower
Performance Best Excellent for most apps Excellent for most apps
Native look and feel Perfect Uses real native components Close, via its own rendering
Access to new OS features Day one Usually quick, via native modules Usually quick, via plugins
Over-the-air updates No Yes (Expo EAS Update) Limited
Hiring pool Two specialised pools Very large (JS/TS developers) Smaller (Dart)
Shares code with web No Yes, with React Limited

When should I choose cross-platform?

  • You need iOS and Android and want to control budget
  • The app is mostly screens, forms, lists, media, payments and data, which describes most apps
  • You want to iterate fast, with one feature built once
  • You may want over-the-air fixes without waiting for store review
  • You want easy handover to another developer later

When should I choose native?

  • Heavy real-time graphics or 3D: games, AR, advanced camera processing
  • Deep hardware integration: Bluetooth medical devices, complex background processing
  • Platform-first products, like Apple Watch–centric apps or apps that depend on the newest OS features on day one
  • Very large teams with dedicated platform specialists

Even then, a hybrid is common: a cross-platform app with a few native modules for the hard parts. I use native modules where needed, for example for iOS home-screen widgets.

Why is React Native with Expo my default?

  • One TypeScript codebase for iOS and Android (and code sharing with React web apps)
  • Expo handles builds, signing, push notifications and over-the-air updates, which cuts a lot of setup and maintenance work
  • Native modules when you need platform-specific features
  • The largest talent pool, so you're never locked to one developer
  • I've shipped multiple apps this way: Escape the Vape, Dry Quest and Drip are all React Native

Does cross-platform cost more to maintain?

It's usually cheaper, because there's one codebase to update. The main maintenance task is keeping the framework (React Native/Expo or Flutter) and dependencies current, typically a few upgrades a year. Skip them for too long and upgrades become painful. (Updating an outdated app)

What about web apps and PWAs?

A progressive web app (PWA) can be enough for some business tools, but it lacks App Store discovery, has weaker push notifications on some devices, and can't use in-app purchases. If your users expect an app from the store, build a real app. If they mostly use desktop, start with web.

FAQ

Is React Native as good as native?

For the vast majority of apps, users can't tell the difference. Native wins for graphics-heavy apps, advanced hardware access and some cutting-edge OS features.

React Native or Flutter: which is better?

Both are capable. I prefer React Native for the TypeScript ecosystem, code sharing with React web apps, Expo's tooling and over-the-air updates, and the larger hiring pool.

Can a cross-platform app be converted to native later?

Yes, though it's effectively a rebuild. More often, apps stay cross-platform and add native modules where needed.

Does Apple approve React Native apps?

Yes. Many popular App Store apps are built with React Native. Review is the same as for any other app.