Skip to content
FamDev

Blog · Mobile apps

React Native vs native (Swift and Kotlin): how to choose for your app

When React Native is the smart choice for an iOS and Android app, when native Swift or Kotlin is better, and the questions that decide it.

If you need an app for both iPhone and Android, the first technical decision is also the one with the biggest impact on budget: one cross-platform codebase with React Native, or two native apps in Swift and Kotlin? There is no universal answer, but there is a short list of questions that settles it for almost every product.

What each option really means

Native means two separate apps: one written in Swift (usually with SwiftUI) for iOS and one in Kotlin (usually with Jetpack Compose) for Android. Each uses the platform’s own tools and gets new system features first.

React Native means one app written in TypeScript and React that renders real native components on both platforms. Since the New Architecture became the default, the old “bridge” between JavaScript and native code is gone and performance is much closer to native. With Expo you also get fast builds in the cloud and over-the-air updates for JavaScript changes.

React Native is not a web page inside an app: the buttons, lists and navigation are native views. That is why companies such as Meta, Microsoft and Shopify use it in large apps.

When React Native is the better choice

  • You need iOS and Android from day one and have one budget. One codebase usually means one team and far fewer duplicated features and bugs.
  • Your product already has a React or Next.js web app. Types, business logic and API clients can be shared between web and mobile.
  • Your app is mostly screens, lists, forms, maps, chat and payments. That is most business and consumer apps, and users will not feel a difference.
  • You want to iterate fast. Over-the-air updates let you fix a typo or a bug without waiting for store review (store rules still apply to bigger changes).

When native is the better choice

  • Heavy graphics, 3D or advanced real-time audio. Our own app AuraHz, which generates binaural beats in real time, is written in native Swift for exactly this reason.
  • Deep integration with hardware: custom Bluetooth protocols, background processing on dedicated devices, kiosks or scanners.
  • Only one platform matters. If 90% of your users are on iPhone, a native iOS app is simpler and gets new iOS features first.
  • You depend on the newest system features on launch day: widgets, Live Activities, App Intents or the latest Android APIs. React Native can reach them through native modules, but native gets there first.

Questions that decide it

  1. Do you need both platforms in the first version? If not, start native on the platform your users prefer.
  2. What is the most demanding feature? If it is graphics, audio or hardware, lean native.
  3. Do you have a web app in React, or plan to build one? Then React Native multiplies the value of that code.
  4. Who will maintain it? A small team maintains one TypeScript codebase more easily than two native ones.
  5. How often will you ship changes? Frequent small changes favour React Native with Expo updates.

A mixed approach is normal

The choice is not all or nothing. Many React Native apps include a few native modules written in Swift or Kotlin for the parts that need maximum performance, and many native apps share their backend and design system with a React web app. What matters is choosing per product, not per fashion.

Cost and timeline

With React Native you typically build one app instead of two, so the first version of an app for both stores usually costs noticeably less than two native apps, and every later feature is built once. With native, you pay for two codebases but get the best possible platform experience. Either way, the store accounts, design, backend and testing costs are similar.

Our recommendation

For most startups, brands and companies that need iOS and Android, React Native with Expo is the best value. Choose native Swift or Kotlin when the product depends on graphics, audio, hardware or one platform only. If you are not sure, tell us about your app and we will recommend one option and explain why.

Read more about our React Native app development, iOS app development and Android app development services.

Fran Amadis

About the author

Fran Amadis

Software developer and founder of FamDev OÜ. Trained in multimedia at The Art Institute of Los Angeles (Bachelor’s degree, 2001), studied Telecommunications Engineering at Universidad Alfonso X el Sabio (UAX) and full-stack web development at Le Wagon (2018). Builds iOS, React Native and Android apps, web platforms, AI agents and websites.

LinkedIn · Instagram · App Store

Related services

React Native app development

Cross-platform apps for iOS and Android from a single React Native codebase (Expo, TypeScript), with native modules when the product needs them.

iOS app development

Native iPhone and iPad apps in Swift and SwiftUI, from the first idea and design to App Store publishing, subscriptions, updates and maintenance.

Android app development

Native Android apps in Kotlin and Jetpack Compose, published on Google Play, for products that need the best performance and deep integration with the device.

Contact

Let’s talk

Tell us what you want to build, who it is for and when you need it. We reply within one or two working days, in English or Spanish.

FAMDEV OÜ · Registry code 16917226 · VAT EE102705986
Sepapaja tn 6, 15551 Tallinn, Estonia

LinkedIn · Instagram · App Store