React Native 0.84: Hermes V1 Becomes Default, iOS Build Times Accelerated, and Legacy Code Removed
Key Enhancements in React Native 0.84
React Native 0.84 introduces several performance and developer experience improvements. The most notable change is the automatic adoption of Hermes V1 as the default JavaScript engine, which brings faster execution and lower memory usage. Additionally, iOS developers will benefit from precompiled binaries being enabled by default, reducing build times. The ongoing removal of legacy architecture components further streamlines the framework. This version also raises the minimum Node.js version to 22.
Hermes V1 Becomes the Default JavaScript Engine
Starting with React Native 0.84, Hermes V1 is now the default JavaScript engine on both iOS and Android. This marks the full transition from the earlier Hermes engine that has been the default since version 0.70. Hermes V1 includes significant improvements to both the compiler and the virtual machine, resulting in better overall JavaScript performance.
Automatic Performance Gains
All apps will immediately benefit from Hermes V1 without any code changes. The engine delivers faster execution speeds and reduces memory footprint, leading to smoother user experiences. Developers already using Hermes will seamlessly upgrade to Hermes V1 as part of their standard dependency update.
Opting Out of Hermes V1
If your project requires the previous version of the Hermes compiler, you can override the package manager settings. Use the overrides field in package.json for npm, resolutions for Yarn, or the equivalent in pnpm to force version 0.15.0. For iOS, set the environment variables RCT_HERMES_V1_ENABLED=0 and RCT_USE_PREBUILT_RNCORE=0 when installing CocoaPods dependencies. On Android, add hermesV1Enabled=false to android/gradle.properties and build React Native from source.
Precompiled iOS Binaries Now Default
React Native 0.84 ships precompiled .xcframework binaries for iOS by default. This feature, previously opt-in, now eliminates the need to compile React Native core from source during every clean build. As a result, iOS app build times are significantly reduced, particularly for large projects or CI environments.
Disabling Precompiled Binaries
If you need to build React Native from source—for example, when opting out of Hermes V1—you can disable precompiled binaries by setting RCT_USE_PREBUILT_RNCORE=0 during pod installation. This returns to the traditional source-based build process.
Legacy Architecture Components Removed
React Native 0.84 continues the deprecation of the Legacy Architecture, building on the foundation laid in version 0.82 where the New Architecture became the only runtime option. Each release removes additional Legacy Architecture classes from both iOS and Android, as outlined in the related RFC.
iOS Changes
In version 0.83, an experimental flag RCT_REMOVE_LEGACY_ARCH allowed developers to compile out legacy code. In 0.84, this behavior is now the default. Legacy Architecture code is no longer included in iOS builds, reducing both compilation time and final app size. No disruptions are expected for apps already migrated to the New Architecture.
Android Changes
Similarly, Android removes legacy architecture components that have been superseded by the New Architecture. Developers should ensure their native modules and custom components are compatible with the New Architecture to avoid issues.
Node.js 22 Minimum Requirement
React Native 0.84 requires Node.js version 22 or higher. This ensures access to the latest JavaScript features and better tooling compatibility. Developers using older Node.js versions should upgrade before integrating this release.
What This Means for Your Apps
With Hermes V1 as the default engine, precompiled iOS binaries, and the removal of legacy architecture code, React Native 0.84 provides immediate performance and build-time improvements. Most projects will benefit without any configuration changes. However, if you rely on legacy engine or build behaviors, the opt-out mechanisms are straightforward. The team continues to streamline the framework, making React Native development faster and more efficient.
Related Articles
- iPhone 18 Pro Leak Reveals Refined but Familiar Design: Smaller Dynamic Island, Faster Chip, Critics Cry 'Iteration Over Innovation'
- React Native Now Powers Meta Quest VR Apps: Developers Gain Familiar Tools for Immersive Experiences
- Snapseed 4.0 Finally Arrives on Android: A Fresh Chapter for Google's Photo Editor
- Trump T1 Phone Preorder Terms Update Fuels Vaporware Fears
- Apple Discontinues Top-Tier Mac Studio Memory Configurations Amid Supply Shortages and AI Demand Surge
- Building VR Apps with React Native on Meta Quest: A Step-by-Step Guide
- React Native Developers Warned: Environment Variables and Version Mismatches Cause Hours-Long Build Failures
- Migrating Flutter iOS/macOS Projects from CocoaPods to Swift Package Manager