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

By

Table of Contents

Hermes V1 as the Default JavaScript Engine

React Native 0.84 marks a major milestone by making Hermes V1 the default JavaScript engine across both iOS and Android platforms. This move, building on the experimental opt-in introduced in version 0.82, brings significant performance enhancements to every React Native app automatically.

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

Hermes V1 represents a substantial evolution of the Hermes engine, incorporating improvements to both the compiler and virtual machine. These updates translate into measurably better JavaScript execution speed and reduced memory consumption without requiring any action from developers.

What This Means for Your App

Opting Out of Hermes V1

If you need to revert to the legacy Hermes for any reason, you can do so using package manager overrides and platform-specific settings.

Package Manager Override

Force the installation of the legacy hermes-compiler package by adding an override to your package.json:

iOS

When installing CocoaPods dependencies, set the following environment variables:

RCT_HERMES_V1_ENABLED=0 RCT_USE_PREBUILT_RNCORE=0

Android

Add the following line to android/gradle.properties and configure your app to build React Native from source:

hermesV1Enabled=false

Precompiled Binaries on iOS by Default

React Native 0.84 ships precompiled iOS binaries out of the box, eliminating the need to compile React Native core from source during each clean build. This feature, previously opt-in, is now enabled by default and significantly reduces iOS build times.

During pod install, the precompiled .xcframework binaries are automatically downloaded and used, streamlining the development workflow. If you need to build from source — for example, to opt out of Hermes V1 — you can disable precompiled binaries by setting RCT_USE_PREBUILT_RNCORE=0 when installing pods.

Legacy Architecture Components Removed

Continuing the transition initiated in React Native 0.82, which made the New Architecture the only runtime option, version 0.84 removes additional Legacy Architecture code from both iOS and Android. As outlined in the RFC, each release will strip out more legacy classes.

iOS

In 0.83, an experimental flag RCT_REMOVE_LEGACY_ARCH was introduced to compile out Legacy Architecture code. In 0.84, this behavior becomes the default: Legacy Architecture code is no longer included in iOS builds, resulting in faster compile times and smaller app sizes. No breakages are expected for apps already using the New Architecture.

Android

Similar removals are taking place on Android, aligning with the overall strategy to modernize React Native's internal architecture. The removal of legacy code paves the way for a leaner, more maintainable codebase.

For detailed upgrade instructions and a complete list of changes, refer to the official release notes.

Tags:

Related Articles

Recommended

Discover More

Google Unveils TurboQuant to Slash KV Cache Memory in Production AI SystemsAI-Assisted OT Targeting: Case Study of the Mexico Water Utility AttackAI-Powered Automation Promises to End Doctor Callback Delays, But at What Cost to Staff?The Rise of Phantom References: How AI-Generated False Citations Are Polluting Academic LiteratureElectric Fire Trucks Gain Traction but Fall Behind Buses, Garbage Trucks, and Drayage Fleets in EV Adoption Race