Technology · Framework

React Native.

React Native is Meta's open-source framework for cross-platform mobile apps in JavaScript and TypeScript. One codebase, native iOS and Android apps, with room for web and desktop. We use it to build B2B and B2C apps for clients who want to get into mobile quickly without staffing two separate teams.

TypeCross-platform framework
CreatorMeta (2015)
LanguageJavaScript / TypeScript
PlatformsiOS, Android, web
ArchitectureFabric + TurboModules
LicenceMIT (open-source)

What is React Native?

React Native is an open-source framework that Meta released in 2015 to run the same React components you would write for the web on iOS and Android. Under the hood, JavaScript or TypeScript is connected via a bridge to genuine native UI elements: Objective-C and Swift on iOS, Java and Kotlin on Android. The result is neither a webview nor a 'hybrid app' like Cordova or Ionic, but a native interface driven by React. What the user sees on screen are real UIKit or Android views; only the logic and orchestration live in JavaScript.

Over the past decade, the ecosystem has matured considerably. Apps such as Facebook, Instagram, Discord, Shopify, Microsoft Office and Walmart run parts of their experience on React Native, and a wide range of Fortune 500 companies use the framework somewhere in their product portfolio. Since version 0.76, the new architecture (Fabric as renderer, TurboModules for native modules) is the default, with Hermes as the JavaScript engine. This new architecture is the biggest performance leap since the first release: the old asynchronous bridge between JS and native has been replaced by synchronous, type-safe interop. For clients, this means less lag in interactions that used to be noticeable.

For clients, this means the following. One team, one codebase, two app stores. A developer who knows React for the web can contribute to the mobile app within a few days. The talent pool for React developers in the Netherlands is also considerably larger than for Swift or Kotlin specialists, which simplifies recruitment and long-term maintenance. We use React Native for B2B apps, customer portals, e-commerce, healthcare apps and field service tools, which we have elaborated on elsewhere in our field service app development work. For a broader view of our approach to apps, services/app-development is the place to start.

The typical users we encounter fall into four groups. Founders who want to launch an MVP without setting up two separate mobile teams. CTOs who need to choose a platform between React Native, Flutter and native, often while the web team already works in React. Established organisations with an ageing native app who are considering a phased migration to React Native. And agencies seeking white-label development for a client for whom they have no mobile capacity of their own.

2015
First public release by Meta
0.76+
New architecture (Fabric + TurboModules) as default
iOS + Android
Native targets from a single codebase
MIT
Open-source licence, no vendor lock-in

When is React Native the right choice?

01
Web team moving to mobile

Your web team is expanding into mobile

You already have a React or TypeScript team building the web. React Native lets that same team deliver a mobile app without hiring Swift and Kotlin specialists. The productive overlap with the web codebase is significant: components, hooks, types and validation can be shared directly.

02
MVP speed

You want a working MVP quickly

With Expo, we can put a testable version on stakeholders' phones fairly early. No Xcode setup, no Android Studio for reviewers. Iteration continues over the air via EAS Update, so feedback is visible to the business within a sprint or less.

03
Shopify stack

You work in a React/Shopify stack

Shopify itself builds its mobile apps on React Native and has contributed many open-source projects, including important libraries such as Restyle and React Native Skia. For e-commerce brands already running on Shopify, this is a natural extension where API tokens, data models and design tokens remain shared.

04
Two platforms, one scope

You want iOS and Android without duplicating scope

Building separate Swift and Kotlin apps effectively doubles the build time, the QA and the release coordination. With React Native we share 80 to 95 per cent of the code and build platform-specific exceptions only where needed for UX or access to a platform-specific API.

React Native, Flutter or native: which one, and when?

Option 01

React Native

The JavaScript and TypeScript ecosystem, an easy transition for web teams, the most mature cross-platform open-source framework and a strong Expo offering for a quick start. The default choice when your team already knows React or you need an MVP. Mature tooling, a large talent pool and broad production proof at multinationals such as Microsoft, Meta and Shopify.

Option 02

Flutter (Google, Dart)

Its own rendering engine via Skia and better baseline performance for animation-heavy or graphically complex screens. Requires Dart knowledge and has a smaller talent pool in the Netherlands, but it is excellent for game-like UI and heavily custom design. Especially interesting when brand uniformity across platforms is a commercial requirement, because Flutter draws every pixel itself.

Option 03

Native (Swift, Kotlin)

Maximum performance and the most native UX on each platform, essential for AR/VR, hardware-sensitive apps (Bluetooth mesh, IoT pairing, in-cab real-time vision) or wherever every millisecond counts. The costs are the highest, as you build twice and maintain two teams. For most business apps, however, the added value is not proportionate to the extra effort.

Eight concrete things we build in React Native.

From consumer-facing to industrial tooling: a cross-section of apps we deliver for clients, often with deep integration into existing back ends, ERP and LLM integrations.

B2B apps

Apps for business users: portals, dashboards, mobile approval and workflow flows with SSO and role-based permissions.

E-commerce

Mobile shops with Shopify, Magento or headless commerce integration, push offers and deep links from campaigns.

Healthcare apps

Patient communication and care workflows, set up to comply with NEN 7510, with end-to-end encryption and audit logging.

Field service apps

Engineers and field staff: work orders, photos, forms and signatures, offline-first with automatic sync.

Customer portals

A mobile version of the web customer portal, with biometric login and push notifications for service alerts or invoice status.

AI features in mobile

LLM integrations, document scanning, speech-to-text, in-context assistance and personalised recommendations.

ERP-integrated apps

Apps that exchange data directly with SAP, Microsoft Dynamics, Exact or AFAS via a gateway or a custom integration layer.

Logistics and warehousing

Scanning apps, stock corrections, delivery registration and route optimisation, integrated with WMS or TMS.

The React Native ecosystem in 2026.

A modern React Native stack consists of more than just the framework itself. This is roughly what a sound production setup looks like. Depending on the scope we swap out components, but these are the building blocks we start with by default.

Toolchain

Expo + EAS Build

Expo SDK 52 or newer for the developer experience, EAS Build for cloud builds of iOS and Android binaries without needing your own Mac runners, and EAS Update for over-the-air updates without app store review. This combination removes the most time-consuming operational tasks from the team and standardises the release pipeline.

Navigation and state

Expo Router, TanStack Query, Zustand

File-based routing with Expo Router (built on React Navigation v7), TanStack Query for server state and cache invalidation, and Zustand or Redux Toolkit for client state, depending on the complexity of the app. For forms we use React Hook Form and Zod for type-safe validation.

UI and observability

Reanimated, NativeWind, Sentry

Reanimated 3 plus Gesture Handler for high-performance animations that run on the UI thread, NativeWind for Tailwind-style styling that doubles productivity compared with standalone StyleSheets, Sentry for error tracking and performance monitoring, and OneSignal or Firebase Cloud Messaging for push notifications with segment targeting.

Performance, migration and the limits of React Native.

P1
Performance

New architecture, Hermes engine

Fabric replaces the old bridge with synchronous communication between JS and native, TurboModules provide lazy-loaded native modules, and Hermes has been the optimised JS engine since 0.70. For graphics-heavy work we use React Native Skia, the alternative to Flutter's rendering. Code splitting, lazy loading and memory profiling are standard steps in our QA process for production apps.

P2
Migration

Brownfield alongside an existing native app

You already have a Swift or Kotlin app and want to build a new section more quickly. We add React Native as a module, the same approach Facebook itself uses, so that old and new screens coexist. This often starts with a single standalone feature, after which more screens move across step by step.

P3
Greenfield

From scratch in 100 per cent React Native

For new products without an existing native codebase: one Expo project, an EAS pipeline and one team. For most of the clients we start with, this is the fastest route to a production app. From day one we work with TypeScript, a shared monorepo for web and mobile, and automated tests via Detox or Maestro.

P4
Limits

When we advise against React Native

AR/VR applications, real-time vision pipelines (autonomous or in-cab), low-level Bluetooth mesh or IoT pairing, and graphics-heavy gaming belong on native. We say so openly before a project begins, as choosing the wrong framework is more costly than an honest conversation.

How we work with React Native.

Way of working 01

Sprint-based

We work in two-week sprints with demos, a product owner on our side and on yours. A first working version is usually available on test devices within a few sprints, so you can quickly validate whether the direction is right before we broaden the scope.

Way of working 02

One team, full stack

The same team that builds the back end, the API and the web app delivers the React Native app. That reduces handover overhead, prevents domain knowledge from fragmenting across several agencies, and keeps data models, validation and the design system consistent between web and mobile.

Way of working 03

OTA updates and CI/CD

EAS Build for app store binaries, EAS Update for over-the-air patches within app store guidelines, and a GitHub Actions pipeline that automatically tests every pull request on iOS and Android. Releases are therefore predictable and reversible: rolling back to the previous version is a single command, not a drama.

React Native versus a PWA or mobile web app?

Not every business case justifies a native app. A progressive web app or a mobile-optimised website can suffice for simple use cases: displaying information, submitting forms, light interaction. You then avoid the app store, the release cycle and the maintenance of two platforms at once.

For business applications with returning users, that balance tips quickly, however. Push notifications, biometric authentication, background synchronisation, camera and file access, reliable offline operation and presence in an app store as a sign of trust: these are all reasons why a React Native app outperforms a PWA in practice. Moreover, for returning users the UX on iOS and Android is almost always noticeably better than a browser tab.

We recommend a PWA if the use case is occasional and users are unlikely to return weekly. For customer portals, field service, e-commerce loyalty and B2B workflows, React Native is almost always the better answer. We help you weigh this up before the project begins: an honest conversation beats an expensive change of direction halfway through.

What we have delivered with React Native for clients.

Examples of the type of apps in our portfolio, described generically because many projects fall under NDA. The full experience and approach for app projects is set out at services/app-development and for enterprise software projects.

B2B · Multi-platform

Customer portal for business users

A mobile app for viewing orders, contracts and service tickets, integrated with an existing ERP via a dedicated API layer. One codebase for iOS and Android, single sign-on with your existing identity provider and biometric authentication as a second factor.

E-commerce · Customer portal

Headless commerce app with portal

An app for returning customers with a loyalty programme, quick reorder and push notifications for parcel status and offers. Product data comes from a headless CMS, payments run through a Dutch payment provider, and deep links open seamlessly from e-mail campaigns.

AI-augmented · LLM

Mobile app with AI assistant

An app with LLM integration for customer support and document questions: context-aware answers based on your own knowledge base, with a fallback to human handling. Streaming responses for a good user experience, cost control per user session, and logging to improve the prompt pipeline.

Frequently asked questions about React Native.

React Native or Flutter: which should we choose?
Default: React Native, unless you have a strong argument for Flutter. React Native has the largest ecosystem, the most Dutch developers and the easiest transition for web teams. We choose Flutter when heavy graphics, complex animations or a strong preference for Dart are involved, for example with game-like UI or teams already working in Flutter. A third consideration is brand uniformity: Flutter draws every pixel itself, whereas React Native uses native controls that differ slightly per platform.
React Native or native (Swift / Kotlin)?
Native remains the right choice for AR/VR, real-time vision, hardware-sensitive IoT, Bluetooth mesh, or where the best platform-specific UX is a commercial requirement. For everything else (portals, dashboards, e-commerce, healthcare, field service), React Native is faster and cheaper because you don't build twice, maintain two teams or organise two QA pipelines. We often use a hybrid model where 95 per cent is React Native and the few performance-critical parts exist as native modules.
Is React Native fast enough for our app?
For 95 per cent of business and consumer apps, yes. With the new architecture (Fabric and TurboModules) and the Hermes engine, baseline performance is close to native. For specific heavy-graphics screens we can use React Native Skia or build those screens locally as native modules, without affecting the rest of the app. If in doubt, we build a short performance probe on the most demanding screen beforehand to give you certainty before you commit to a project.
Use Expo or "bare" React Native?
In practice we start with Expo by default. The developer experience is by far the best, EAS Build and EAS Update are production-grade, and you can run "prebuild" at any point to add native code. We only choose bare RN when native modules are needed that don't work through Expo Modules, which is rare nowadays because Expo now supports most popular native modules first-class.
Is React Native faster or more expensive than native?
In most cases it is faster and cheaper, because you share one codebase across two platforms instead of running two separate teams. The final cost depends on scope, the number of integrations, the complexity of the UI and whether existing systems need to be connected. We work with a fixed sprint budget and provide a concrete estimate after a planning phase, so there are no open-ended surprises.
How do OTA updates work via EAS Update?
EAS Update lets you roll out JavaScript and asset changes over the air without a new app store build. Bug fixes and small features can reach users within minutes, and you can target updates by release channel (beta, staging, production). Native changes, such as new permissions, new native modules or new iOS or Android target versions, still require a new binary in the App Store or Play Store, as Apple and Google always review those.
Can we migrate our existing native app in phases?
Yes. We add React Native as a brownfield module to an existing Swift or Kotlin app, start with one screen or feature, and expand where it makes sense. This is the model Meta itself uses, and it considerably reduces migration risk compared with a full rewrite. You maintain production stability while the modernisation proceeds at its own pace, without a big-bang release.
Does React Native work for AI features in a mobile app?
Good. We integrate React Native apps with LLM APIs (OpenAI, Anthropic, Azure OpenAI), run on-device inference where it makes sense, and build contextual assistants within app flows, such as support, document questions or in-context recommendations. The full approach to LLM work is on our page about custom LLM integrations. For mobile specifically, we focus on streaming responses, offline fallbacks and cost control per user session.

Talk to us about your React Native app.

A half-hour introductory call in which we go through what you want to build, which platforms are involved, how it fits into your existing stack and whether React Native is actually the right choice, or whether we would be better off referring you to Flutter or native.

Response within 1 working day
No-obligation conversation
Westerdoksdijk 599, Amsterdam

Edit content