29309
Mobile Development

React Native 0.84: Hermes V1 Takes the Wheel, iOS Builds Accelerate

The React Native team has announced the release of version 0.84, bringing a series of performance-focused updates and simplifications. This release marks a significant milestone: Hermes V1 becomes the default JavaScript engine across both iOS and Android, offering immediate speed and memory improvements. Additionally, precompiled iOS binaries are now standard, and the removal of legacy architecture code continues. Here’s a closer look at what’s new.

Hermes V1 Now Default

First introduced as an experimental opt-in in React Native 0.82, Hermes V1 is now the default engine for all platforms. This next-generation engine includes major enhancements to both the compiler and virtual machine, delivering measurable boosts in JavaScript execution speed and lower memory consumption. If your app was already using Hermes (the default since version 0.70), you’ll automatically upgrade to Hermes V1 without any configuration changes—no migration steps are required.

React Native 0.84: Hermes V1 Takes the Wheel, iOS Builds Accelerate

Performance Gains Out of the Box

Apps built with React Native 0.84 will see automatic performance improvements: faster startup times, smoother interactions, and reduced memory usage. These benefits come from the refined Hermes V1 architecture, which optimizes bytecode generation and runtime efficiency.

No Migration Needed for Existing Users

For developers already on Hermes, the transition is seamless. The new engine is a drop-in replacement, meaning your existing codebase will run on Hermes V1 without any modifications. This ensures a smooth upgrade path while delivering immediate value.

Faster iOS Builds with Precompiled Binaries

Another major change in 0.84 is that precompiled iOS binaries are now shipped by default. Previously an opt-in feature, this change eliminates the need to compile React Native core from source during clean builds. The .xcframework binaries are automatically downloaded and integrated during pod install, significantly cutting down build times for iOS developers.

If you need to build from source—for example, to use a custom Hermes version—you can disable precompiled binaries by setting the environment variable RCT_USE_PREBUILT_RNCORE=0 when installing pods.

Legacy Architecture Continues to Fade

Building on the work started in 0.82 (which made the New Architecture the only runtime option), version 0.84 removes more legacy architecture code from both iOS and Android. This is part of an ongoing effort to streamline the codebase and reduce maintenance burden.

iOS: Legacy Code No Longer Compiled

In 0.83, the team introduced the experimental RCT_REMOVE_LEGACY_ARCH flag to compile out legacy code. In 0.84, this behavior is now default: legacy architecture code is excluded from iOS builds, leading to smaller app sizes and faster build times. No breakages are expected for apps already on the New Architecture.

Android: Similar Cleanup Underway

Analogous changes are being made on Android, with legacy components being removed each release. While the current removal focuses on iOS, Android will follow suit in upcoming versions.

Node.js 22 Minimum Requirement

React Native 0.84 also bumps the minimum Node.js version to 22. This ensures compatibility with the latest tooling and security updates. Developers using older versions will need to upgrade to continue working with this release.

How to Opt Out of Hermes V1

While Hermes V1 is now default, there may be cases where you need to use the legacy Hermes compiler. Here are the steps to opt out:

Using Package Manager Overrides

Add an override in your package.json to force the legacy hermes-compiler package version 0.15.0:

  • npm: Add "overrides": {"hermes-compiler": "0.15.0"}
  • Yarn: Add "resolutions": {"hermes-compiler": "0.15.0"}
  • pnpm: Add "pnpm": {"overrides": {"hermes-compiler": "0.15.0"}}

iOS: Disable via Environment Variables

When running pod install, set RCT_HERMES_V1_ENABLED=0 and RCT_USE_PREBUILT_RNCORE=0 to revert to the legacy engine and build from source.

Android: Use Properties File

Add hermesV1Enabled=false to android/gradle.properties and configure your app to build React Native from source.

What This Means for Developers

React Native 0.84 is a performance-focused release that requires minimal effort to benefit from. Hermes V1 delivers faster JavaScript execution and lower memory usage, while precompiled iOS binaries shorten build cycles. The continued removal of legacy architecture reduces app size and complexity. Upgrade today to take advantage of these improvements—your users will notice the difference.

💬 Comments ↑ Share ☆ Save