Mobaxterm
ArticlesCategories
Mobile Development

React Native 0.84: Hermes V1 Becomes the Default Engine

Published 2026-05-14 01:20:51 · Mobile Development

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?

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.

React Native 0.84: Hermes V1 Becomes the Default Engine

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 legacy hermes-compiler version (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=0 and RCT_USE_PREBUILT_RNCORE=0.
  • Android: Add hermesV1Enabled=false to the android/gradle.properties file 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.