The React Native glossary
The words you run into in a React Native or Expo codebase, defined in a few lines, then what they change in a real app. 35 entries, each with its sources.
Architecture
Bridgeless
The New Architecture runtime mode where the bridge is never instantiated: everything goes through JSI, Turbo Modules, and Fabric.
Codegen
React Native’s build-time tool that generates the native glue (C++, Java, Objective-C++) from TypeScript or Flow spec files.
Fabric
The New Architecture renderer: a C++ core shared by iOS and Android that computes layout synchronously.
JSI (JavaScript Interface)
The C++ API that lets JavaScript hold direct references to native objects with no serialization: the foundation of the New Architecture.
New Architecture
The rewrite of React Native internals (Fabric, Turbo Modules, JSI), on by default since 0.76 and the only architecture since 0.82.
Turbo Modules
Native modules in the New Architecture: a TypeScript spec, code generated by Codegen, and lazy loading through JSI.
Tooling
Config plugin
A JavaScript function declared in app.json that modifies the native projects prebuild generates (Info.plist, manifest, Gradle, Podfile).
Development build
A debug build of your own app that includes expo-dev-client: your native modules, plus a launcher to connect to Metro.
Expo
The open-source framework React Native recommends: a native module SDK, a CLI, prebuild, Expo Router, and the EAS cloud services.
Expo Go
Expo’s sandbox app, with a fixed set of native modules: for learning and prototyping, not for shipping.
Fast Refresh
React Native’s hot reloading: a component edit is applied within a second or two while local state is preserved.
Metro
React Native’s JavaScript bundler: it resolves, transforms, and serializes your code into a bundle, and runs the dev server.
Monorepo
One repository holding several packages linked by the package manager (workspaces); needs care around Metro, autolinking, and dependency hoisting.
Prebuild (Continuous Native Generation)
The Expo command that generates the android and ios folders from app.json and config plugins instead of maintaining them by hand.
React Native DevTools
React Native’s built-in debugger since 0.76, based on Chrome DevTools: console, breakpoints, network, profiling, React tree.
Native
Autolinking
The mechanism that discovers native libraries in node_modules and adds them to the Podfile and Gradle with no manual edits.
CocoaPods
React Native’s historical iOS dependency manager (Podfile, pod install, .xcworkspace), in maintenance mode and being replaced by SwiftPM.
Expo Modules API
Expo’s API for writing native modules and views in Swift and Kotlin with one shared DSL, with no Objective-C or bridge boilerplate.
Nitro Modules
Margelo’s framework for writing native modules in Swift, Kotlin, or C++ exposed to JavaScript through JSI, with bindings generated from TypeScript.
Prebuilt (precompiled React Native)
React Native core shipped as precompiled binaries (iOS XCFrameworks, Android AARs) downloaded at build time instead of rebuilt from source.
Swift Package Manager (SwiftPM)
Swift’s official package manager, built into Xcode, which React Native is adopting to replace CocoaPods (experimental in 0.87 and 0.88).
XCFramework
Apple’s format for shipping a multi-platform binary framework (device, simulator, macOS) in one bundle; React Native ships its precompiled core in it.
Build & release
EAS Build
Expo’s hosted build service: profiles in eas.json, credentials management, and macOS and Linux runners for iOS and Android.
OTA update (EAS Update)
Shipping a new JavaScript bundle and its assets to installed apps without going through the stores; EAS Update is Expo’s service for it.
Runtime version
The identifier that guarantees an OTA update is only applied to builds whose native code is compatible with it.
Performance
Cold start (startup time)
Launching the app from scratch, process included: native init, bundle load, first React render, up to a usable screen (TTI).
FlashList
Shopify’s list, a FlatList replacement: it recycles cells instead of unmounting them, and v2 no longer asks for a size estimate.
Hermes
Meta’s JavaScript engine for React Native, the default since 0.70, which precompiles the bundle to bytecode at build time.
Worklet
A small JavaScript function the Reanimated Babel plugin extracts to run on the UI thread, in a separate runtime.
UI
Deep linking
Opening a specific screen of the app from a URL: a custom scheme (myapp://) or a verified https link (universal links, App Links).
Expo Router
Expo’s file-based router: every file in the app directory becomes a screen, with deep links and typed routes out of the box.
Gesture Handler
Software Mansion’s library that recognizes gestures (pan, tap, pinch, and more) natively and composes them, with callbacks on the UI thread.
React Navigation
The standard navigation library for React Native: stack, tabs, drawer, with native screens through react-native-screens.
Reanimated
Software Mansion’s animation library that runs animations on the UI thread through worklets, without waiting on the JavaScript thread.
Universal links and App Links
Ordinary https links that open the app when installed, proven by a file hosted on your domain (AASA, assetlinks.json).
One of these is blocking your app?
30 minutes with a senior to look at the problem in your code. Free.