React Native 0.84: Hermes V1 Default, Faster Builds, and Legacy Removal
Overview of React Native 0.84
The React Native team is thrilled to announce the release of version 0.84, a major update that brings substantial performance and developer experience improvements. This release makes Hermes V1 the default JavaScript engine on both iOS and Android, ships precompiled iOS binaries out of the box, continues the removal of Legacy Architecture components, and raises the minimum Node.js version to 22. These changes are designed to boost app performance, reduce build times, and streamline the development workflow. Let's dive into the key highlights.
Hermes V1 Becomes the Default JavaScript Engine
After being available as an experimental opt-in in React Native 0.82, Hermes V1 is now the default JavaScript engine for all apps. This next evolution of the Hermes engine brings significant improvements to both the compiler and the virtual machine, resulting in measurably better JavaScript performance.
Automatic Performance Gains
With Hermes V1 enabled by default, your app automatically benefits from faster execution speeds and reduced memory usage. No additional configuration is needed—if you were already using Hermes (which has been the default since version 0.70), the upgrade to Hermes V1 happens seamlessly.
No Migration Needed
Existing projects using Hermes will automatically switch to Hermes V1 when upgrading to React Native 0.84. No changes to your configuration files are required.
How to Opt Out of Hermes V1
If you need to temporarily revert to the legacy Hermes compiler, you have several options:
- Package manager overrides: Force the installation of the legacy
hermes-compilerpackage by adding an override in yourpackage.json. For npm, use"overrides": { "hermes-compiler": "0.15.0" }. For Yarn, use"resolutions"and for pnpm use"pnpm": { "overrides" }. - iOS: When installing CocoaPods, set the environment variables
RCT_HERMES_V1_ENABLED=0andRCT_USE_PREBUILT_RNCORE=0. - Android: Add
hermesV1Enabled=falseto yourandroid/gradle.propertiesfile and configure the app to build React Native from source.
Precompiled iOS Binaries by Default
Starting with React Native 0.84, precompiled binaries are shipped by default on iOS. This feature, previously opt-in, is now enabled out of the box, significantly reducing build times for iOS applications. Instead of compiling React Native core from source on every clean build, the precompiled .xcframework is automatically downloaded and used during pod install.
If you need to build React Native core from source (for example, when opting out of Hermes V1), you can disable precompiled binaries by setting RCT_USE_PREBUILT_RNCORE=0 when installing pods.
Legacy Architecture Components Removed
React Native 0.84 continues the deprecation of the Legacy Architecture, building on the work started in version 0.82, which made the New Architecture the only runtime option. This release removes several Legacy Architecture classes from both iOS and Android, as outlined in the related RFC.
iOS Changes
In version 0.83, the team introduced the experimental RCT_REMOVE_LEGACY_ARCH flag to compile out Legacy Architecture code. In 0.84, this behavior is now the default. Legacy Architecture code is no longer included in iOS builds, leading to reduced build times and smaller app sizes. No breaking changes are expected for apps already running on the New Architecture.
Android Changes
Similar removal of Legacy Architecture components is happening on Android, further streamlining the codebase and improving performance. Developers should ensure their apps are fully migrated to the New Architecture to avoid any issues.
Minimum Node.js Version Raised to 22
React Native 0.84 now requires Node.js 22 as the minimum version. This aligns with the latest LTS release and enables the team to leverage modern JavaScript features and improved performance in the build toolchain. Make sure to update your Node.js installation before upgrading.
What This Means for Your Development Workflow
React Native 0.84 delivers a more performant and developer-friendly experience. The default adoption of Hermes V1 and precompiled iOS binaries significantly cuts down on build times and runtime overhead. Removing Legacy Architecture components reduces complexity and app size, while the updated Node.js requirement ensures compatibility with the latest tools. For most projects, upgrading is straightforward—just update your dependencies and enjoy the improvements. If you need to customize any defaults, clear opt-out instructions are provided. Happy coding!
Related Articles
- Building VR Apps with React Native on Meta Quest: Key Questions Answered
- Unlocked iPhones Fetch $800 Premium for Snatch-and-Grab Thieves, Experts Warn
- Snapseed 4.0 Arrives on Android: A Major Overhaul After Years of Silence
- Data Normalization Discrepancies Threaten AI Reliability: Experts Warn of Governance Crisis
- Your Complete Guide to Tuning Into Apple’s Q2 2026 Earnings Call Live
- How to Manage Financial Strategy in a Hypergrowth AI Company: Lessons from Anthropic's CFO
- React Native 0.84 Launches with Hermes V1 as Default Engine, Promises Major Performance Boost
- Meta Quest Embraces React Native: VR Development Gets a Mass Adoption Boost