Mobile apps

React Native or a native app? How to choose the technology

Choosing the technology is one of the first decisions for a mobile app – and one of those that most affects the cost and later maintenance. We explain the differences without jargon and suggest when each one pays off.

Two approaches in one sentence

A native app means two separate apps: one for iOS written in Swift, one for Android in Kotlin. A cross-platform app (e.g. React Native or Flutter) means one shared codebase from which the apps for both platforms are built.

Both routes lead to a full-fledged app in the App Store and Google Play. Users usually won't notice the difference – but your budget and schedule will.

Comparison at a glance

CriterionReact Native / FlutterNative (Swift + Kotlin)
Build costlower – one codebase for two platformshigher – two separate apps
Time to launchshorterlonger
Performancesufficient for the vast majority of appsthe highest
Access to new system featuressometimes delayed or via a native modulefrom day one
Maintenanceone codebase, one teamtwo codebases

When to choose React Native

React Native is a mature technology today – large consumer apps use it, and the framework's new architecture has significantly improved the performance of communication with the native layer. It's a good choice when:

  • you're building a business app, a shop, an app for bookings, a loyalty programme or customer communication,
  • you want to launch on iOS and Android at the same time on a reasonable budget,
  • you have or are planning a web app in React – some of the logic and the team's skills can be shared,
  • you value quick fixes and one team responsible for everything.

When to choose a native app

The native approach has the edge when the app makes heavy use of the hardware or the system:

  • advanced camera handling, real-time image or sound processing,
  • rich graphics, AR, games,
  • deep system integration: widgets, watches, Bluetooth with unusual devices, background work,
  • the app runs on only one platform (e.g. an internal app for company Android phones).

You don't have to choose "all or nothing". A React Native app can have individual modules written natively – exactly where performance or access to a specific system feature matters.

What about Flutter?

Flutter is the other popular cross-platform framework. It draws the interface with its own engine, so the app looks identical on every device. React Native uses the system's native components and TypeScript, which most web developers know.

In practice both technologies let you build a great app. The differences have more to do with the team and the ecosystem than with what the framework itself can do. We work in React Native every day because it fits well with our web stack (TypeScript, React, NestJS).

Myths worth setting aside

"Cross-platform is slow." For a typical app – lists, forms, maps, payments, notifications – the performance difference is unnoticeable to the user. Slowdowns usually come from badly written code, not from the framework.

"A native app is always better." It's better where its strengths are needed. In other cases it simply means twice as much code to write and maintain.

"It's hard to move from React Native to native later." Migration is possible screen by screen, and the backend, visual design and business logic stay unchanged.

How we make this decision with a client

We start with the feature list and the answers to a few questions: whether the app needs specific hardware features, which devices it will be used on, how quickly it needs to reach the stores and what the budget is for development in the coming years. After a conversation like that the choice is usually obvious.

We describe how the technology affects the budget in more detail in the article how much does a mobile app cost. If you'd like to talk about a specific project, take a look at the mobile apps page.

Related services: mobile apps.

FAQ

Frequently asked questions

Will a React Native app pass App Store review?

Yes. React Native apps are published in the App Store and Google Play as usual and are subject to the same rules as native apps.

Do push notifications, payments and the camera work in React Native?

Yes. Notifications, payments, camera, geolocation, biometrics and maps all have mature libraries, and missing features can be added as a native module.

How much can you save by choosing cross-platform?

It depends on the project, but a shared codebase for two platforms usually clearly shortens the time and cost of building and maintaining the app compared with two separate native apps.

Related articles

All articles

Contact

Got a question? Get in touch

A few sentences about your idea, a rough deadline and budget are enough to start. The first conversation and the initial quote are free and non-binding.

secure_channel ONLINE
> contact --topic "react native or a native app"
send an email, we'll reply with questions and a proposed next step [OK]
biuro@app4mobile.pl