ScriptsApr 13, 2026·3 min read

React Native — Build Native Mobile Apps with React

React Native is the leading framework for building native iOS and Android apps using React. Write once in JavaScript/TypeScript, get truly native mobile apps — not webviews — with shared business logic and platform-specific UI when needed.

TL;DR
React Native renders native iOS and Android UI from a single JavaScript/TypeScript codebase using React components.
§01

What it is

React Native is a framework for building native mobile applications using React. Unlike hybrid frameworks that wrap web content in a webview, React Native translates React components into native iOS (UIKit) and Android platform views. You write shared business logic in JavaScript or TypeScript while retaining access to platform-specific APIs.

React Native is used by Meta (Facebook, Instagram, Messenger), Microsoft (Office, Outlook), Shopify, Discord, and Bloomberg. It is the most widely adopted cross-platform mobile framework.

§02

How it saves time or tokens

React Native eliminates the need to maintain separate iOS and Android codebases. One team writes shared logic once, reducing code duplication by 70-90% on typical projects. Hot reloading lets developers see changes instantly without recompiling. The new architecture (Fabric renderer plus TurboModules) provides direct synchronous access to native APIs, closing the performance gap with fully native apps.

§03

How to use

  1. Create a new project using Expo (recommended) or the bare React Native CLI.
  2. Run the development server and open the app on a simulator or physical device.
  3. Write React components that map to native views.
# Expo (recommended)
npx create-expo-app@latest my-app
cd my-app && npx expo start

# Bare React Native
npx @react-native-community/cli init MyApp
cd MyApp
npx react-native run-ios
§04

Example

A minimal React Native component rendering native text and a button:

import React from 'react';
import { View, Text, Button, Alert } from 'react-native';

export default function App() {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text style={{ fontSize: 24 }}>Hello, React Native</Text>
      <Button
        title='Press me'
        onPress={() => Alert.alert('Button pressed')}
      />
    </View>
  );
}

This renders a truly native UILabel on iOS and a TextView on Android, not a webview.

§05

Related on TokRepo

§06

Common pitfalls

  • Navigation libraries (React Navigation, Expo Router) each have tradeoffs. Choosing the wrong one mid-project is expensive to reverse.
  • Native modules that bridge platform code require Xcode and Android Studio knowledge. Pure JS developers may struggle with linking and debugging native crashes.
  • The old bridge architecture is being replaced by the new architecture (Fabric, TurboModules). Libraries that have not migrated may cause compatibility issues.

Frequently Asked Questions

Is React Native truly native or a webview?+

React Native is truly native. It renders platform-specific UI components (UIKit on iOS, Android Views on Android). There is no webview involved. JavaScript drives the native rendering engine through a bridge or the newer JSI (JavaScript Interface) layer.

Should I use Expo or bare React Native?+

Expo is recommended for most new projects. It handles build configuration, over-the-air updates, and provides a managed workflow. Use bare React Native only if you need custom native modules that Expo does not support, which is increasingly rare with Expo Modules.

What is the new architecture in React Native?+

The new architecture consists of Fabric (a new rendering system) and TurboModules (a new native module system). Both use JSI for direct synchronous communication between JavaScript and native code, replacing the old asynchronous bridge. This reduces latency and improves performance.

Can I share code between React Native and React web apps?+

Yes, partially. Business logic, state management, and API layers can be shared. UI components differ because React Native uses native primitives (View, Text) instead of HTML elements (div, span). Libraries like React Native Web bridge this gap for some use cases.

How does React Native performance compare to fully native apps?+

For most applications, React Native performance is indistinguishable from fully native. The new architecture closes remaining gaps for animation-heavy and computationally intensive use cases. Apps like Instagram and Discord demonstrate production-grade performance at scale.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets