Choosing Your Workflow
In 2026, there are two primary paths to start a React Native project. Expo is the recommended 'Framework' approach (similar to Flutter's standard flow), providing a managed suite of tools and easy OTA (Over-the-Air) updates. React Native CLI is the 'Bare' approach, giving you full control over the ios/ and android/ directories, which is essential if you plan to write complex native C++ or Swift modules for Revochamp.
- Prerequisites (The Core Toolchain)
Before installing React Native, you need the underlying platform tools. As a Lead Developer, you likely already have these for Flutter, but React Native adds a dependency on Node.js and a package manager like Yarn or pnpm.
- Node.js (LTS): The JavaScript runtime that executes the build scripts.
- Watchman: A tool by Meta for watching file changes (improves 'Fast Refresh' speed).
- JDK (Java Development Kit): Required for Android builds (Azul Zulu is recommended).
- Xcode & Android Studio: For platform-specific compilers and emulators.
- Setting Up with Expo (The Modern Standard)
Expo has evolved into a production-grade framework. It handles the 'Native Runner' complexity for you while allowing 'Continuous Native Generation' (CNG), which means you don't have to manually touch Xcode or Android Studio files unless necessary.
- Setting Up React Native CLI
For projects requiring custom native engines or integration with existing native libraries, the CLI is the way to go. This setup requires more manual configuration of environment variables (like ANDROID_HOME).
- Enabling the New Architecture
To leverage JSI and Fabric, you must ensure the New Architecture is enabled. In 2026, this is the default for new projects, but it's important to verify it in your project settings to ensure your AI generation logic isn't running through the legacy bridge.
| Feature | Expo Managed | React Native CLI |
|---|---|---|
| Native Folders | Hidden/Generated | Always visible |
| Setup Complexity | Very Low | Moderate |
| OTA Updates | Built-in (Expo Updates) | Requires 3rd party (CodePush) |
| Custom Native Code | Via Config Plugins | Directly in Swift/Kotlin |
| Build Times | Fast (Cloud/Local) | Standard Local Builds |