React Native 0.84: Hermes V1 Now Default, Faster Builds and Legacy Cleanup
Table of Contents
- Hermes V1 as the Default JavaScript Engine
- Precompiled Binaries on iOS by Default
- Legacy Architecture Components Removed
Hermes V1 as the Default JavaScript Engine
React Native 0.84 marks a major milestone by making Hermes V1 the default JavaScript engine across both iOS and Android platforms. This move, building on the experimental opt-in introduced in version 0.82, brings significant performance enhancements to every React Native app automatically.
Hermes V1 represents a substantial evolution of the Hermes engine, incorporating improvements to both the compiler and virtual machine. These updates translate into measurably better JavaScript execution speed and reduced memory consumption without requiring any action from developers.
What This Means for Your App
- Automatic performance gains: All apps now benefit from Hermes V1 by default, delivering faster execution and lower memory usage.
- No migration required: If your app already uses Hermes (the default since React Native 0.70), you'll automatically be upgraded to Hermes V1 — no configuration changes needed.
Opting Out of Hermes V1
If you need to revert to the legacy Hermes for any reason, you can do so using package manager overrides and platform-specific settings.
Package Manager Override
Force the installation of the legacy hermes-compiler package by adding an override to your package.json:
- npm:
"overrides": { "hermes-compiler": "0.15.0" } - yarn:
"resolutions": { "hermes-compiler": "0.15.0" } - pnpm:
"pnpm": { "overrides": { "hermes-compiler": "0.15.0" } }
iOS
When installing CocoaPods dependencies, set the following environment variables:
RCT_HERMES_V1_ENABLED=0 RCT_USE_PREBUILT_RNCORE=0
Android
Add the following line to android/gradle.properties and configure your app to build React Native from source:
hermesV1Enabled=false
Precompiled Binaries on iOS by Default
React Native 0.84 ships precompiled iOS binaries out of the box, eliminating the need to compile React Native core from source during each clean build. This feature, previously opt-in, is now enabled by default and significantly reduces iOS build times.
During pod install, the precompiled .xcframework binaries are automatically downloaded and used, streamlining the development workflow. If you need to build from source — for example, to opt out of Hermes V1 — you can disable precompiled binaries by setting RCT_USE_PREBUILT_RNCORE=0 when installing pods.
Legacy Architecture Components Removed
Continuing the transition initiated in React Native 0.82, which made the New Architecture the only runtime option, version 0.84 removes additional Legacy Architecture code from both iOS and Android. As outlined in the RFC, each release will strip out more legacy classes.
iOS
In 0.83, an experimental flag RCT_REMOVE_LEGACY_ARCH was introduced to compile out Legacy Architecture code. In 0.84, this behavior becomes the default: Legacy Architecture code is no longer included in iOS builds, resulting in faster compile times and smaller app sizes. No breakages are expected for apps already using the New Architecture.
Android
Similar removals are taking place on Android, aligning with the overall strategy to modernize React Native's internal architecture. The removal of legacy code paves the way for a leaner, more maintainable codebase.
For detailed upgrade instructions and a complete list of changes, refer to the official release notes.
Related Articles
- Flutter Developer Builds 20 Apps in 20 Days Using AI-Powered Antigravity Tool
- React Native Developers Warned: Environment Variables and Version Mismatches Cause Hours-Long Build Failures
- Gemini's Speckled Animation Rollout: From iOS to Android – Your Questions Answered
- Flutter Embraces Swift Package Manager: The End of CocoaPods Dependency
- The Hidden Gem of Circle to Search: A Feature Google Keeps Quiet About
- 7 Key Changes with Flutter’s Swift Package Manager Default
- Glasses-Free 3D iPhone: What the Latest Samsung Rumor Reveals
- Building Virtual Reality Apps: React Native Arrives on Meta Quest