Magento 2 Experten — Hyvä Theme, Tailwind CSS & SEO aus einer Hand ›

React Native: One Codebase for iOS and Android

TECHNOLOGY Cross-Platform App Development
React Native: one codebase, two native apps

React Native has for years been the most widely used framework for building iOS and Android apps from a single JavaScript or TypeScript codebase, without sacrificing native performance. This page explains how the technology works, where its strengths lie, and who it is a good fit for.

2015
Open source since
~90%
typical code shared between iOS/Android
Fabric & JSI
new architecture as the default
30-50%
shorter dev time vs. two native teams

Since its first release in 2015, React Native has grown from an internal Facebook experiment into one of the most widely adopted frameworks for mobile apps. The idea behind it is simple and, at the same time, radical: instead of writing two completely separate apps for iOS and Android in Swift and Kotlin, a single JavaScript or TypeScript codebase produces two genuinely native apps.

On this page we explain React Native on its own terms, without a specific sales pitch: what the technology is, how it works under the hood, where its strengths and limits sit, and how it compares to Flutter and fully native development. If you want to discuss an actual project, you'll find a link to our app development services at the end.

01

What is React Native, and why is it the most widely used cross-platform technology

React Native is an open-source framework for building mobile apps for iOS and Android in JavaScript or TypeScript, using the component model that React introduced for the web. The key difference from older hybrid approaches such as Cordova or PhoneGap is that React Native does not render its interface inside an embedded WebView. Instead, it translates React components into real native UI elements. A button in a React Native app is an actual native iOS or Android control, not an HTML button sitting inside a hidden browser view.

Meta's own philosophy for the framework is "learn once, write anywhere," not "write once, run anywhere": developers learn a single programming model and apply it on both platforms, while still being free to add platform-specific code where it makes sense. That combination of shared logic and native rendering, together with the sheer reach of JavaScript as the most widely used programming language in the world, has made React Native the default choice for cross-platform apps. Existing web teams with React experience can carry most of their knowledge straight into app development, which lowers the barrier to entry considerably compared with learning an entirely new language such as Dart or Swift/Kotlin.

Another, often underestimated reason for its reach is that Meta has continuously used React Native in its own extremely high-traffic products since 2015, including parts of Instagram and the Facebook Marketplace. A company that relies on a technology itself, billions of sessions a day, has a strong incentive to keep improving it and to iron out rough edges. That sets React Native apart from many other open-source projects that are primarily community-driven, and it explains why the technology has never drifted into a dead end over the past decade.

React Native: one codebase for native iOS and Android apps – mironsoft
AI generated
02

How React Native technically works

To understand why React Native performs so well today, it helps to look at its original architecture. JavaScript code has always run on its own thread, separate from the native UI thread on iOS and Android. For the two sides to talk to each other, there was the so-called "Bridge": messages were serialized as JSON, batched into packets, and sent asynchronously back and forth between threads. Picture two people who can only communicate through handwritten notes carried by a messenger. It works reliably, but it costs time, especially when many small messages need to be sent in quick succession, for example during animations tied to scrolling or swipe gestures.

That exact bottleneck is what the so-called "New Architecture" removed, and it is now the default in every new React Native project. Its core is the JavaScript Interface (JSI), a thin C++ layer that lets JavaScript and native code call each other directly and, when needed, synchronously, with no detour through serialization and messengers. In the picture from before: the two people are now sitting in the same room, talking directly to each other.

Two further building blocks sit on top of the JSI: Fabric, the new rendering system that creates and updates native UI components more directly and works cleanly with modern React concepts such as concurrent rendering, and TurboModules, which load native modules only when an app actually needs them instead of loading everything upfront at startup. Combined with the Hermes JavaScript engine, which is optimized for mobile devices and precompiles code to bytecode ahead of time, the result is startup and runtime behavior that now comes very close to a fully native app.

03

The strengths of React Native

Three properties explain why React Native has remained one of the leading cross-platform technologies for a decade.

Code sharing between iOS and Android

UI components, business logic, state management and API integration are written once and run on both platforms. In practice, most business apps share around 90 percent of their code. What remains is usually a small set of deliberately platform-specific tweaks, for example around certain permission dialogs or store requirements.

Large ecosystem and Expo

The npm ecosystem provides a ready-made native module for nearly every requirement. The Expo framework takes this further: EAS Build compiles iOS and Android builds in the cloud with no local Xcode or Android Studio setup required, EAS Update ships many changes as over-the-air updates without waiting for a fresh store review each time, and Expo Router brings file-based navigation familiar from the web.

Native performance

Because interfaces render as real native components rather than being emulated inside a WebView, a React Native app feels like a native app. With the new architecture and libraries such as Reanimated, even demanding animations run directly on the UI thread, independent of the JavaScript thread, keeping them smooth at 60 or 120 frames per second.

04

Who React Native is the right choice for

React Native is not a universal solution, but it is the most pragmatic option for the large majority of mobile projects. Typical scenarios where the technology pays off in particular:

  • Startups and companies with a limited budget: One team builds an app for both platforms instead of funding two separate native teams.
  • Fast MVP validation: Before committing significant capital to an idea, a single codebase gets a first version onto both stores in a short amount of time.
  • An existing React or JavaScript web team: Component thinking, hooks and most tooling experience carry over directly.
  • Apps with frequent updates: Over-the-air updates via EAS Update push many changes to users immediately, without waiting on every store review.
  • Business, content and e-commerce apps: Forms, lists, payments, push notifications and API integrations are React Native's core domain.

React Native is less suited to games or applications with extremely demanding, custom 3D and AR graphics. Specialized engines such as Unity, or fully native development, usually come out ahead here.

Who React Native is the right choice for – mironsoft
AI generated
05

Facts and figures on React Native

A decade after its first release, the reach of React Native can be measured through concrete figures and well-known real-world use cases.

Instagram & co.

Well-known apps: Instagram, Discord, Shopify, Coinbase, Walmart and Bloomberg use React Native, in some cases for the entire app and in others for specific screens alongside native code.

Top 2

Market share: Recurring developer surveys consistently rank React Native and Flutter as the two most widely used cross-platform frameworks by a clear margin, well ahead of older hybrid approaches.

30-50%

Time savings: For typical business apps without heavy 3D graphics, teams frequently report 30 to 50 percent shorter development time compared with running two parallel native teams.

For an honest reading: not every app listed above uses React Native for 100 percent of its interface. Many larger companies deliberately choose a hybrid approach, keeping select, particularly performance-critical screens native while running the bulk of the app on React Native.

06

React Native compared: React Native vs. Flutter vs. native development

Google's Flutter takes a different technical approach: rather than using native UI components, Flutter draws every interface itself with its own rendering engine (Impeller, formerly Skia). The result is a pixel-identical look across every platform, but it requires the team to learn Dart from scratch. React Native, by contrast, adapts to native platform conventions, which can be an advantage or a drawback depending on the project.

Fully native development with Swift/SwiftUI on iOS and Kotlin/Jetpack Compose on Android remains the reference point for maximum performance and the most immediate access to new operating system features, but it requires two separate teams and two parallel development cycles. The table below summarizes the key differences.

Criterion React Native Flutter Native (Swift/Kotlin)
Language JavaScript / TypeScript Dart Swift (iOS), Kotlin (Android)
Rendering Real native UI components via Fabric Own engine draws every pixel itself Native system components (UIKit, Compose)
Performance Close to native thanks to JSI/Fabric Very good, independent of the operating system Best possible, no framework overhead
Team onboarding Web/React knowledge often directly usable Dart has to be learned from scratch Two separate specialist teams required
UI consistency Adapts to platform conventions Pixel-identical across every platform Two deliberately platform-typical UIs
Code sharing with the web High, via React and React Native Web Low None
Time to market Fast, one codebase for both platforms Fast, one codebase for both platforms Slower, two parallel development tracks

Assessment based on the statements in this chapter, reflecting the state of these technologies at the time of publication.

In practice, the decision rarely comes down to technical criteria alone. Teams that already have a React web team and need to reach two stores quickly are usually best served by React Native. Teams that want a distinctive, brand-defining visual design reproduced pixel-for-pixel across many platforms often find Flutter the better answer. And teams building an app that must use every new operating system feature with zero delay from day one, for example around wearables or highly specific hardware integrations, rarely get around fully native development. All three paths lead to a working app; they mainly differ in budget, team structure and time horizon.

07

How mironsoft builds React Native apps

React Native development at mironsoft – from concept to store release
AI generated

When a project is technically a good fit for React Native, mironsoft typically builds on the Expo workflow: a faster project start, EAS Build for cloud compilation with no local Xcode or Android Studio dependency, and EAS Update for over-the-air updates between store releases.

  • Technology advice first: Before we write a single line of code, we honestly check whether React Native, Flutter or a native build fits your project.
  • Native modules where needed: For functionality no existing package covers, we write our own native modules in Swift and Kotlin.
  • Store submission included: We support your project through to approval in the App Store and the Play Store.
  • Maintenance after launch: We also handle updates, monitoring and dependency upkeep after go-live.

Details on our approach, typical project workflows and pricing can be found on our app development services page.

08

React Native as a solid foundation for your next app

React Native isn't the right answer for every application, but for the large majority of mobile projects, from business tools to e-commerce to community apps, it offers, a decade after its introduction, a technically mature, well-supported path to genuine native apps on iOS and Android from a single codebase. Read more about our concrete approach on the app development services page.

Discuss your project, no strings attached

Frequently asked questions (FAQ) about React Native

Is React Native suitable for an e-commerce app?

Yes, very much so. Product listings, cart, checkout, push notifications and integration with a shop API such as Magento are classic React Native territory. Well-known retail brands use the technology in their apps too. What matters is a clean connection to existing backend systems via REST or GraphQL interfaces.

How does React Native concretely differ from Flutter?

The most important difference lies in rendering. React Native uses real native UI components, while Flutter draws every interface itself with its own engine. That makes Flutter UIs pixel-identical across every platform, whereas React Native apps adapt more closely to native platform conventions. In terms of language, React Native uses JavaScript/TypeScript, Flutter uses Dart.

Does my team need native knowledge of Swift or Kotlin?

For most apps, no. The majority of development happens entirely in JavaScript or TypeScript. Native knowledge only becomes relevant when a custom native module has to be written because no existing library covers a particular piece of hardware or system functionality. For most business apps, that comes up rarely.

How does performance hold up with demanding animations?

With libraries such as Reanimated, animations run directly on the native UI thread and stay smooth even while the JavaScript thread is busy. For the vast majority of UI animations, gestures and transitions, this is indistinguishable from a native app. Only extremely complex, custom 3D effects push against limits better addressed by specialized graphics engines.

Is React Native suitable for large apps with many users?

Yes. Apps such as Instagram, Discord and Shopify have shown for years that React Native works reliably even at very high user counts and with complex requirements. Many of these companies combine React Native with targeted native code for individual, particularly performance-critical screens, which underlines the flexibility of the approach.

What's the difference between React Native and a classic hybrid app (Cordova/WebView)?

Classic hybrid frameworks like Cordova render the entire interface inside an embedded WebView, essentially a website wrapped as an app. React Native, by contrast, renders real native UI components. The difference is clearly noticeable in responsiveness, speed and overall feel, and it is the main reason React Native has largely replaced older hybrid approaches.

Do I still need an App Store and Play Store listing?

Yes. React Native produces two standalone native app packages, one for the Apple App Store and one for the Google Play Store. Both go through their respective platform review processes. Over-the-air update technology such as EAS Update can bypass renewed store review for many later code changes, but not for the initial release.

How safe is React Native as a technology in the long run?

React Native has been developed by Meta since 2015 and is used in its own, extremely high-traffic apps, which gives Meta a strong incentive to keep investing in it. On top of that there is a very active open-source community and regular, well-documented releases. The introduction of the New Architecture shows that the framework continues to be modernized on a technical level as well.

What is Expo, and do I have to use it?

Expo is a framework and toolchain built around React Native that provides cloud builds (EAS Build), over-the-air updates (EAS Update), file-based routing and a wide range of preconfigured native modules. It isn't strictly required, but in practice it noticeably speeds up most projects, which is why it has become the default starting point for most new apps.

When is React Native not the right choice?

For games and applications with very demanding, custom 3D or AR graphics, specialized engines such as Unity or Unreal are usually the better choice. If an app must use the very newest, platform-specific operating system features with zero delay from day one, fully native development can also make more sense. For the vast majority of business, content and e-commerce apps, however, React Native is an excellent fit.