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.

React Native 0.84: Hermes V1 Default, Faster Builds, and Legacy Removal

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:

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!

Recommended

Discover More

The Downfall of a Crypto ATM Empire: A Step-by-Step Guide to the Bitcoin Depot BankruptcyRediscovering CSS Color Palettes: A Q&A Guide10 Critical Facts About the SAP npm Credential-Stealing AttackExperts Warn: Windows 11 HDR Is Overhyped—Focus on These Monitor Settings InsteadMichael Patrick King on Why AI Could Destroy Human Storytelling