Upgrading to React Native 0.84: Embracing Hermes V1, Faster Builds, and a Cleaner Architecture

By

Overview

React Native 0.84 marks a significant milestone in the framework's evolution, bringing Hermes V1 as the default JavaScript engine on both iOS and Android. This release also makes precompiled iOS binaries the standard, dramatically accelerating build times, and continues the systematic removal of Legacy Architecture components. Additionally, Node.js 22 is now the minimum supported version. This guide will walk you through everything you need to know to upgrade smoothly, including step-by-step instructions, code examples, and common pitfalls to avoid.

Upgrading to React Native 0.84: Embracing Hermes V1, Faster Builds, and a Cleaner Architecture

Prerequisites

Step-by-Step Instructions

1. Upgrade Your Project to React Native 0.84

Use the React Native CLI upgrade tool to bump your project version. The recommended approach is using npx react-native upgrade or the @react-native-community/cli upgrade command:

npx react-native upgrade 0.84.0

Alternatively, you can manually update the react-native dependency in your package.json and reinstall pods on iOS:

npm install react-native@0.84.0
cd ios && pod install

2. Verify Hermes V1 Is Active

Hermes V1 is the default JavaScript engine from version 0.84 onward. To confirm it's running, check your build logs for the Hermes version string (e.g., Hermes version 0.13.0). On Android, you can also inspect the APK's libhermes.so file. If you were already using Hermes (the default since 0.70), no migration steps are needed – you automatically get V1.

3. Benefit from Precompiled Binaries on iOS (Enabled by Default)

React Native 0.84 ships precompiled .xcframework binaries for iOS. This means during pod install, the framework downloads and uses these binaries instead of compiling React Native core from source. Build times are significantly reduced, especially for clean builds. No action is required on your part – it works out of the box.

4. Handle Legacy Architecture Removal

Starting with 0.84, the Legacy Architecture code is compiled out by default on iOS (previously controlled by RCT_REMOVE_LEGACY_ARCH flag). The New Architecture is now the sole runtime. If your app already runs on the New Architecture (recommended since 0.76), you should see no breakages. However, if you have custom native modules or third-party libraries still relying on Legacy components, you may need to update them.

5. Update Node.js to Version 22

Node.js 22 is the minimum requirement for React Native 0.84. Check your current version with node --version. If it's lower, download and install Node.js 22 from the official website or use a version manager like nvm:

nvm install 22
nvm use 22

Opting Out of Hermes V1 (If Needed)

Important: Though not recommended, you can revert to the legacy Hermes compiler if you encounter compatibility issues. Use these steps only as a temporary workaround.

Package Manager Override

Force the installation of the legacy hermes-compiler package by adding an override in your package.json:

iOS: Disable Hermes V1 and Prebuilt Binaries

When installing CocoaPods dependencies, run:

RCT_HERMES_V1_ENABLED=0 RCT_USE_PREBUILT_RNCORE=0 pod install

Android: Disable Hermes V1 and Build from Source

Add the following to android/gradle.properties:

hermesV1Enabled=false

Additionally, you must configure the application to build React Native from source. This usually involves editing android/app/build.gradle and ensuring reactNativeArchitectures is set correctly. See the official documentation for details.

Common Mistakes

Summary

React Native 0.84 delivers a hassle-free upgrade path with major performance and build-time improvements. By making Hermes V1 the default and shipping precompiled iOS binaries, developers gain free speed and efficiency. The removal of Legacy Architecture simplifies the native layer, while the raised Node.js requirement ensures modern tooling compatibility. Follow the steps above to migrate safely, and use the opt-out instructions only if absolutely necessary. Your apps will run faster and build faster – a win-win for all React Native projects.

Tags:

Related Articles

Recommended

Discover More

React Native 0.83: Enhanced Developer Experience with React 19.2 and New DevTools CapabilitiesWhy Bundling Python Apps into Standalone Executables Is So DifficultStack Overflow for Teams: Your Private Q&A Knowledge BaseBuilding a Homemade Wire EDM Machine: From CNC Router to Precision Gear CuttingNVIDIA Unveils Nemotron 3 Nano Omni: One Model to Rule Them All for Multimodal AI Agents