Skill Roadmap

React Native

React Native lets you build native iOS and Android apps from a single JavaScript/React codebase, compiling down to real native components instead of a webview. This roadmap walks you from React prerequisites through core components, styling, navigation, networking, testing, and performance — up to publishing on the App Store and Play Store.

What is React Native, and why use it?

One codebase, two native platforms

React Native is a framework for building mobile apps using JavaScript and React, but instead of rendering to the DOM it renders to real native UI components on iOS and Android. That means one team, largely one codebase, and near-native performance and look-and-feel — instead of maintaining two separate native apps or shipping a webview wrapped as an app.

Teams reach for React Native when they already have React/JavaScript expertise and want to ship to both platforms without doubling engineering effort. It's backed by a huge ecosystem — Expo for fast setup and OTA updates, a large library of native modules, and first-class tooling for debugging, testing, and performance profiling.

To work productively in React Native you should be comfortable with JavaScript and core React concepts (components, state, props, JSX) first — the mobile-specific layer on top is mostly about components, styling, navigation, and platform APIs rather than a different language.

The React Native Roadmap

Work through these in order — each step builds on the last

STEP 1
React logo

Prerequisites

Everything below assumes you're already comfortable with JavaScript, CSS, and core React.

JavaScript Basics CSS Basics
React Basics
Components State Props JSX
STEP 2

Environment Setup

Pick a toolchain — Expo for speed, the CLI for full native control — and get an app running on a device.

Expo
create-expo-app Expo Snack Expo Tradeoffs
Bare Workflow
React Native CLI Metro Bundler Running on Device
STEP 3

Development Workflow & Debugging

Iterate fast, and know where to look when something breaks.

In-App Developer Menu Enabling Fast Refresh LogBox Sourcemaps DevTools
STEP 4

Core Components

The building blocks every screen is assembled from.

View Text TextInput Button Pressable Image ImageBackground Switch ActivityIndicator StatusBar Modal SafeAreaView KeyboardAvoidingView
STEP 5

Listings

Render and scroll through data efficiently — one of the most common mobile UI patterns.

ScrollView
List Views
FlatList SectionList RefreshControl
STEP 6

Platform-Specific Code

Handle the moments where iOS and Android genuinely need different behaviour.

Platform Module Platform-Specific File Extensions react-native-web
STEP 7

Styling

Layout mobile screens with Flexbox, and keep the UI usable for everyone.

StyleSheets Layouts & Flexbox Accessibility
STEP 8

Interactions & Navigation

Make the app feel native — touch, gestures, motion, and moving between screens.

Touchables Gesture Handling Scrolling & Swiping Screen Navigation Animations Deep Linking Permissions
STEP 9

Networking & Security

Talk to a backend, stay aware of connectivity, and keep user data safe.

Fetch WebSockets Connectivity Status Push Notifications Authentication Security
STEP 10

Storage

Persist data locally, whether that's simple key-value pairs or a full local database.

STEP 11
Jest logo

Testing

Catch regressions before they reach a device — or the app stores.

Jest Component Tests React Test Renderer React Native Testing Library
E2E Testing
STEP 12

Performance & Native Modules

Diagnose jank, speed up builds, and drop into native code when JavaScript isn't enough.

Understanding Frame Rates Common Problem Sources Speeding up Builds Optimizing FlatList Config RAM Bundles + Inline Requires Profiling
Using Native Modules
For iOS For Android
STEP 13

Publishing Apps

Get your app in front of real users on both major app stores.

GitHub Projects

Real, buildable projects to put on your own GitHub

Frequently Asked Questions

Common questions from people starting out with React Native

Do I need to know React before learning React Native?

Yes, ideally. React Native uses the same component model, state, props, and JSX as React for the web — the main differences are the components you render (View and Text instead of div and span) and the mobile-specific APIs layered on top.

Should I start with Expo or the React Native CLI?

Expo is the faster on-ramp — no native build tooling required, and it covers most common app needs through its SDK. The bare CLI workflow gives you full control over native code, which matters once you need a native module Expo doesn't support.

React Native vs Flutter — which should I learn?

React Native renders real native components and lets JavaScript/React developers reuse existing skills, while Flutter draws its own UI with Dart and a single rendering engine across platforms. React Native fits teams already in the JS ecosystem; Flutter suits teams wanting pixel-identical UI across platforms out of the box.

Is React Native still relevant in 2026?

Yes — React Native remains one of the most widely used cross-platform mobile frameworks, backed by Meta and a large community, with continued investment in its new architecture, Expo tooling, and performance improvements.

Can React Native apps really perform like native apps?

For most apps, yes — React Native renders actual native UI components rather than a webview. Performance issues usually come from JavaScript-side bottlenecks like unoptimized lists or heavy re-renders, which is why profiling and list optimization are part of the roadmap.

How do I prepare for a React Native interview?

Be solid on React fundamentals first, then be ready to discuss the Expo vs. bare workflow tradeoff, how navigation and state work across screens, how you'd debug a performance issue in a FlatList, and how you'd bridge to a native module — plus have a published or at least fully built app to walk through.

Track complete

From your first Expo project to a tested, performant app on both app stores — that's the core of what employers expect from a React Native developer. Keep building, and pair it with backend or native module skills to round out a full mobile profile.

Where next?

Keep exploring by domain or drill into a single skill