React Native 0.84: Hermes V1 Becomes Default, iOS Build Times Accelerated, and Legacy Code Removed

From Usahobs, the free encyclopedia of technology

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.

React Native 0.84: Hermes V1 Becomes Default, iOS Build Times Accelerated, and Legacy Code Removed

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.