Skip to content

Guide 10

React Native or separate native apps for a first release.

For most first releases we build one React Native app for both stores. This guide explains why, what you give up, and the cases where two native apps are the better call.

Edwin Barrera · Founder and software architect

· 2 min read

The short answer

We build first versions with React Native and Expo: one TypeScript codebase for iOS and Android. Features land on both stores together, one team works on all of it, and when a feature needs the platform directly, we write that part natively.

What one codebase gets you

  • One implementation of each screen and each test, instead of two.
  • One team, so a feature doesn't wait for the second platform to catch up.
  • Types shared with the API: an OpenAPI contract generates the app's client, so the app and the API can't drift apart.
  • Screens built from the platform's own native components, not a web page in a wrapper.

What you give up

  • A layer between your code and each platform. A new iOS or Android feature can need a native module before the app can use it.
  • The two platforms still behave differently, so we still test every flow on real screens of both.
  • Some products push hard against that layer: heavy 3D, augmented reality, real-time audio or camera processing, or features that live outside the app, like widgets and watch apps.

When two native apps are the better call

  • The product is the platform feature: augmented reality, heavy graphics, low-latency audio or video.
  • You'll only ever ship on one platform, and you have that platform's engineers.
  • You already have native apps, and a team that knows them well.

Outside those cases, a first release usually needs to learn what users do more than it needs the last bit of platform polish, and one codebase learns faster.

Native code, where a feature needs it

React Native isn't all or nothing. When a feature needs the platform directly, a native module in Swift or Kotlin bridges it (React Native, Expo modules), and the rest of the app stays shared.

What it means for the price

One codebase means one build of each screen and each test. Each store still has its own listing, review, signing and release work, which is why MVP development cost counts the platforms as one of the things that move a price.

How we build a first version

  1. 01Spec the screens and the data: the flows, the roles and what works offline, approved before the build.
  2. 02Contract first: the OpenAPI contract between the app and the API.
  3. 03Test on real screens: end-to-end flows on devices and simulators.
  4. 04Ship to the stores, under your own developer accounts, so the app, its reviews and its users stay yours.

The first milestone is always something you can install and use. The service is at mobile apps.

Read next

  • 02

    Mobile apps

    iOS and Android apps from one codebase, with the API and admin behind them.

  • Guide 07 · 1 min

    How to scope an MVP in one page.

    Before you ask anyone for a price, write one page. It doesn't need to be technical. It needs to say who the product is for, the one job it does, and what it won't do yet. Here is the template we start from, with an example.

Have something to build? Tell us about it.

A person reads every brief and replies with questions or a first plan.