React Native 0.84: Hermes V1 Becomes the Default Engine
React Native 0.84 introduces several exciting improvements that streamline development and boost app performance. The standout change is that Hermes V1 is now the default JavaScript engine across iOS and Android, delivering faster execution and reduced memory usage automatically. Additionally, the release makes precompiled iOS binaries the norm, cutting build times, and continues to phase out the Legacy Architecture. These updates require Node.js 22 or later. Below, we break down the key changes and answer common questions.
Explore each topic:
- What’s the headline change in React Native 0.84?
- How does Hermes V1 improve my app’s performance?
- Do I need to migrate manually to Hermes V1?
- Can I opt out of Hermes V1, and if so, how?
- What are precompiled iOS binaries and why are they important?
- What’s happening with the Legacy Architecture?
- What system requirements does React Native 0.84 introduce?
What’s the headline change in React Native 0.84?
The most significant update in React Native 0.84 is that Hermes V1 is now the default JavaScript engine for both iOS and Android. This follows its experimental introduction in version 0.82 and marks a full transition to a more advanced runtime. Hermes V1 combines improvements in the compiler and virtual machine to offer noticeably better JavaScript performance, including faster startup, quicker execution, and lower memory consumption. Additionally, the release makes precompiled iOS binaries the default—eliminating the need to compile React Native core from source during clean builds, which significantly shortens build times. The team has also continued removing Legacy Architecture components, and now requires Node.js 22 as the minimum version.
How does Hermes V1 improve my app’s performance?
Hermes V1 represents the next evolution of the Hermes engine, with substantial upgrades to both its compiler and virtual machine. Compared to the previous Hermes version (which had already become the default in React Native 0.70), Hermes V1 delivers measurably better JavaScript performance. Apps experience improved execution speed and reduced memory usage, especially noticeable during initial load and complex operations. Because it has been the default since version 0.70, most apps are already using Hermes; upgrading to 0.84 automatically brings the V1 version without requiring any manual configuration. The gains are automatic, meaning developers can leverage better performance simply by updating their React Native version.
Do I need to migrate manually to Hermes V1?
No migration effort is required. If your app is already using Hermes (which has been the default since React Native 0.70), upgrading to version 0.84 will automatically switch to Hermes V1. There are no configuration changes needed in your project. The transition happens behind the scenes, so you get the performance improvements of the new engine without any extra work. Simply update the React Native dependency in your package.json and rebuild your app. Existing Hermes settings remain intact, and the engine’s API is fully backward compatible, ensuring a smooth upgrade.
Can I opt out of Hermes V1, and if so, how?
Yes, you can opt out of Hermes V1 if you need to use the legacy Hermes compiler for compatibility or testing. The method depends on your platform and package manager.
- Package manager override: In
package.json, add an override or resolution to force the installation of the legacyhermes-compilerversion (e.g.,0.15.0). For npm:"overrides": { "hermes-compiler": "0.15.0" }; for Yarn:"resolutions": { "hermes-compiler": "0.15.0" }; for pnpm:"pnpm": { "overrides": { "hermes-compiler": "0.15.0" } }. - iOS: When installing CocoaPods dependencies, set environment variables
RCT_HERMES_V1_ENABLED=0andRCT_USE_PREBUILT_RNCORE=0. - Android: Add
hermesV1Enabled=falseto theandroid/gradle.propertiesfile and configure the app to build React Native from source.
Note that opting out may affect build times and memory performance.
What are precompiled iOS binaries and why are they important?
In React Native 0.84, precompiled .xcframework binaries are now enabled by default on iOS. Previously an optional feature, this change means you no longer have to compile React Native core from source during every clean build. Instead, the precompiled binaries are automatically downloaded and used when you run pod install. The result is a significant reduction in iOS build times, making development cycles faster and less resource-intensive. If you ever need to build from source (for example, when opting out of Hermes V1), you can disable precompiled binaries by passing RCT_USE_PREBUILT_RNCORE=0 when installing CocoaPods.
What’s happening with the Legacy Architecture?
Building on the work started in version 0.82, which made the New Architecture the only runtime option, React Native 0.84 continues to remove Legacy Architecture code from both iOS and Android. In 0.83, the experimental flag RCT_REMOVE_LEGACY_ARCH was introduced to compile out legacy components. In 0.84, this behavior is now default — meaning Legacy Architecture code is no longer included in iOS builds by default. This reduces app size and build time. The removal is gradual across releases, as described in the RFC. Apps already migrated to the New Architecture should see no breakages.
What system requirements does React Native 0.84 introduce?
React Native 0.84 raises the minimum Node.js version to 22. This is a new requirement compared to previous versions. Developers must ensure their Node.js runtime is updated to at least version 22 to work with this release. All other platform requirements (like Xcode for iOS, Android Studio for Android) remain similar to earlier versions, though you should always check the official documentation for the most up-to-date toolchain guidance.
Related Articles
- The Hidden Gem of Circle to Search: A Feature Google Keeps Quiet About
- 10 Game-Changing Facts About iOS 26.5's End-to-End Encryption for RCS
- 10 Essential Insights About iOS 27's New Safari Tab Management Feature
- React Native 0.79 Delivers Major Performance Gains and Tooling Overhaul
- Flutter Embraces Swift Package Manager: The End of CocoaPods Dependency
- Navigating the Google Family Link Call Blocking Bug: Step-by-Step Fixes
- React Native 0.84: Hermes V1 Default and Performance Upgrades
- Unlocking HEIC Photos in Ubuntu 26.04: Your Complete Q&A Guide