React Native

Meta's framework for building native iOS and Android apps using React — write once, ship to both mobile platforms with near-native performance.

React Native lets developers build real iOS and Android apps using React and JavaScript rather than Swift or Kotlin. Unlike web-based wrappers, React Native compiles to actual native components, giving it performance and feel much closer to fully native apps. For companies that already have React web developers, React Native is the natural path to mobile — the same component model, state management, and tooling apply. It is the dominant cross-platform mobile framework in the job market alongside Flutter.

Typical time to job-readiness: ~2 months.

Learning React Native

Beginner

If you know React, start with Expo — it removes native setup complexity and lets you ship to iOS and Android quickly. Learn the core mobile-specific components (View, Text, ScrollView, FlatList) and the StyleSheet API.

Intermediate

React Navigation for multi-screen apps, async storage for local persistence, integrating REST APIs, and handling platform differences (iOS vs Android behavior). Learn when to use Expo and when to eject to bare React Native.

Advanced

Native modules for bridging JavaScript to platform APIs, performance profiling with Flipper, optimizing FlatList for large datasets, and CI/CD for mobile with Fastlane or EAS Build. Mobile interviews typically include a coding challenge plus architecture discussion.

Key concepts

  • Bridge architecture: JavaScript code calls native modules via an async message bridge — the source of some performance limitations
  • React Native components map to native UI: <View> → UIView (iOS) / View (Android), not web divs
  • Expo: managed workflow that handles native build setup; eject when you need custom native code
  • StyleSheet API: subset of CSS properties; Flexbox is the primary layout system
  • Navigation: React Navigation is the standard library; Stack, Tab, and Drawer navigators for different patterns
  • Platform-specific code: Platform.OS, .ios.js / .android.js file extensions for platform-specific files

Common interview topics

  • How does React Native differ from React for the web
  • Explain how the bridge works in React Native and what limitations it creates
  • What state management solution do you use in React Native and why
  • How do you handle platform differences between iOS and Android in React Native
  • How do you optimize a slow FlatList in React Native

Browse React Native jobs