React Native or native apps: what building seven apps in React Native taught us

For a business app that has to run on iPhone and Android, such as a marketplace, a booking app or a delivery app, React Native gives you one codebase and one team, with native code only where a platform demands it. Go native in Swift and Kotlin when the app lives in platform features such as widgets or watch apps, or when you ship one platform with a native team. This page is not neutral: all seven phone apps we have built are React Native, and we have shipped no native-only app.

Updated 20 October 2026 · facts about other services come from their own pages, dated below

How do the options compare?

What mattersReact NativeNative (Swift and Kotlin)
Codebases to maintainOne JavaScript or TypeScript codebase for both platforms, with native modules where a platform API has no library.Two codebases, two sets of skills, and every feature built twice.
Access to platform featuresThrough libraries, or through a Turbo Native Module you write in Kotlin or Objective-C++. Some features are native-only: Apple's documentation says you build iPhone widgets using SwiftUI.Everything the platform offers, on the day it ships.
TeamOne team, and React web engineers can read and work on the code.An iOS engineer and an Android engineer at least.
UpgradesOS updates plus React Native's own releases. Our apps run React Native 0.79 to 0.85; the current documentation is for 0.87.OS and SDK updates only.
Store rules and permissionsThe same as native. One codebase still needs Android's photo-picker rules and Apple's privacy strings handled per platform.The same rules, handled in each codebase.

Which should you pick, and when?

React Native: pick it when

You need iPhone and Android, the app is screens, forms, maps, chat and payments, your team is small, or you already have React engineers.

Native (Swift and Kotlin): pick it when

The product's core is a platform feature (home-screen widgets, Apple Watch, CarPlay, heavy camera or audio processing, 3D), you ship only one platform, or you already employ native engineers.

Which apps have we built in React Native, and where are they now?

Seven: Trainr (a UAE fitness marketplace), LetSlic (a social app), Pakka's customer app and driver app, LeafRanger (plant care with AI scans), Temphera (a life planner) and MedTrakr's driver app. Trainr and LetSlic are live on Google Play. Pakka's two apps finished a pre-submission QA pass in October 2026, and LeafRanger has a signed production Android build but is not in any store yet.

None is on the Apple App Store yet. Trainr's iOS build 22 and LetSlic's iOS app are on TestFlight, Temphera is built but not released, and Pakka has no iPhone app. We say this plainly because a React Native page that implied App Store experience we do not have would be the wrong place to start.

When did React Native need native code?

When a platform API had no library we trusted. For LeafRanger's subscriptions we wrote our own Kotlin Turbo Native Module over Google Play Billing Library 9.1.0, behind the same purchases wrapper the screens already called, so not one screen file changed.

Some features are native by definition. Temphera has a home-screen widget written in SwiftUI, because Apple's documentation says widgets are built with SwiftUI; it is not yet wired into the iOS build. If widgets or watch apps are central to your product, budget for Swift whichever framework you choose.

Does one codebase mean half the cost?

We cannot give you a percentage: we have never built the same app twice, once in each approach, so any number would be invented. What we can say is where the saving does not apply. Both platforms still need testing on real devices, both stores review the app separately, and each platform has its own rules.

Two examples from our builds: Pakka's Android apps had to switch to the system photo picker because Google Play's photo policy rejects apps that ask for all photos for one-off picks, and Trainr's iOS build needed six privacy purpose strings Apple requires before TestFlight accepted it. Neither had anything to do with React Native, and both had to be done.

When would we tell you to go native?

When the app's value is a platform feature: widgets, watch faces, Live Activities, CarPlay, AR, or audio and video processing on the device. When you only ever ship one platform and already employ engineers in its language. When the product is a game.

In those cases React Native would add a layer between you and the platform without saving much, and you should hire a native team rather than us.

When are we the wrong choice?

  • You need a native-only Swift or Kotlin app. We have not shipped one, and a native team will serve you better.
  • Your product is a game or 3D-first app. We have no game-engine or 3D work to show.
  • You need proof of an app we built live on the Apple App Store. None is yet: Trainr's and LetSlic's iOS builds reached TestFlight.

Questions people ask

Can a React Native app call a platform API that has no library?

Yes, through a native module. React Native's documentation calls it a Turbo Native Module. We wrote one in Kotlin over Google Play Billing for LeafRanger, and the screens that sell subscriptions did not change.

Can a React Native app have an iPhone home-screen widget?

Yes, but the widget itself is written in Swift. Apple's WidgetKit documentation says you build widgets using SwiftUI, so a React Native app adds a SwiftUI widget extension and shares data with it.

Have you published a React Native app on the Apple App Store?

Not yet. Two of our React Native apps, Trainr and LetSlic, are live on Google Play, and their iOS builds are on TestFlight. We do not claim App Store releases we have not made.

Which React Native versions do your apps run?

Trainr runs 0.79.1, LetSlic 0.80, Temphera 0.83.1 and Pakka 0.85.3. React Native's documentation is now at 0.87, so part of maintaining any of them is keeping the framework itself current.

Is React Native a good fit for a delivery or marketplace app?

In our experience, yes. Pakka's customer and driver apps and Trainr's two-sided marketplace are React Native, with live tracking over sockets, chat, payments and wallets, and Pakka's route logic is one function shared by both apps.

Sources