Overview
- 1React Native 0.75 (Aug 2024) makes the New Architecture the default — enabled by default in new projects.
- 2New Architecture: Fabric (renderer) + TurboModules (native modules) + JSI (JavaScript Interface).
- 3Bridgeless mode removes the legacy async bridge entirely — synchronous native calls via JSI.
- 4React 18 concurrent features (Suspense, transitions) work natively in React Native 0.75.
- 5Expo SDK 51/52 integrates seamlessly — most teams use Expo as the default toolchain.
Key Features in 0.75
Use Cases
- →Cross-platform mobile apps sharing logic with a React web app
- →Internal enterprise mobile tools with rapid iteration
- →Consumer mobile apps on iOS and Android from one codebase
- →React web developers building their first mobile app
New Architecture in 0.75
- Fabric: C++ renderer renders the UI tree synchronously — no async bridge round-trips
- TurboModules: lazy-loaded native modules with TypeScript type safety via Codegen
- JSI (JavaScript Interface): direct synchronous bindings between JS engine and native C++
- Bridgeless mode: `bridgeless: true` in react-native.config.js — legacy bridge removed
- Concurrent React: Suspense boundaries and concurrent rendering work on both iOS and Android
- Static Hermes: TypeScript-to-Hermes bytecode compilation happens at build time
Core Components & APIs
- View, Text, Image, ScrollView, FlatList, SectionList — fundamental layout primitives
- StyleSheet.create(): typed styles with Flexbox layout (default display model is flex)
- Pressable: unified touch handler with pressed/hovered/focused state callbacks
- Modal, ActivityIndicator, Alert, ActionSheetIOS, ToastAndroid
- Platform.OS: "ios" | "android" — branch per platform; Platform.select() for objects
- Linking API: open URLs, phone numbers, and deep links; handle incoming deep links
- Animated API (legacy) vs Reanimated 3 (recommended) for smooth 60/120fps animations
Navigation & State
- React Navigation 7: Stack, Tab, Drawer navigators; type-safe params with TypeScript
- Expo Router 3: file-based routing with (tabs), (drawer), and +not-found conventions
- Zustand: lightweight state management — same API as web; persist with AsyncStorage
- TanStack Query: server state, caching, offline support, and background sync
- MMKV: fast synchronous key-value storage (replaces AsyncStorage for performance)
- Expo SecureStore: encrypted key-value storage for tokens and sensitive data
Expo SDK & Tooling
- Expo Go: instant preview on device without native build; limited to Expo SDK APIs
- Development Build: custom native binary with your own native modules + Expo Go UX
- EAS Build: cloud compilation for iOS (.ipa) and Android (.apk/.aab) — no Mac required for iOS
- EAS Update (OTA): push JS-only updates to production apps without App Store review
- expo-router: file-based routing, universal links, and web/native code sharing
- Bare workflow: full Xcode/Android Studio control with Expo packages available
Frequently Asked Questions
What is the New Architecture in React Native?
The New Architecture replaces the legacy async bridge with three components: JSI (JavaScript Interface) for synchronous native calls, Fabric (C++ renderer) for synchronous UI updates, and TurboModules for lazy-loaded, type-safe native module access. It removes serialisation overhead, enables concurrent React features, and makes native interactions synchronous.
Should I use Expo or bare React Native in 2026?
Use Expo for almost everything. Expo SDK 51+ supports nearly every native API via expo-* packages. EAS Build handles cloud compilation for both platforms. Bare React Native is only necessary when you need a very specific native module not supported by Expo, or when integrating React Native into a large existing native app.
React Native vs Flutter — which to choose?
React Native shares code between React web and mobile — ideal if your team knows React. Flutter uses Dart and renders with its own engine — delivers pixel-perfect cross-platform UI with excellent performance. React Native has a larger ecosystem and is better for teams sharing logic with a web app. Flutter is better for pixel-precise design and performance-critical UI.