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
- AI Inbox Hits Gmail Mobile: Bottom Bar Redesign and Personalized Writing Boost
- iOS 26 Hidden Gems: How Apple's Latest Update Revolutionizes Your iPhone Experience
- Decoding the Surprise: How Greg Mottola Could Reinvent Deathstroke and Bane for the DCU
- Flutter 3.44 Ditches CocoaPods: Swift Package Manager Takes Over
- Pixel 11 Series Facing RAM Cutback as Global Shortage Bites — Leaked Specs Show 8GB Base
- Building Immersive VR Experiences with React Native on Meta Quest
- Apple and Android Chats Now End-to-End Encrypted: Major Privacy Milestone Achieved
- Apple Eyes Return to Titanium for Future iPhones Amid Material Shift Leak