Xtcworld

React Native 0.84: Hermes V1 Goes Mainstream and More

React Native 0.84 makes Hermes V1 the default JavaScript engine, adds precompiled iOS binaries, removes legacy architecture, and requires Node.js 22.

Xtcworld · 2026-05-11 12:00:34 · Mobile Development

Exciting times for React Native developers! Version 0.84 delivers a major performance boost right out of the box by making Hermes V1 the default JavaScript engine for both iOS and Android. This release also accelerates iOS builds with precompiled binaries, removes the last traces of Legacy Architecture, and sets a minimum Node.js version of 22. Below, we answer your top questions about this significant update.

What is new in React Native 0.84?

React Native 0.84 focuses on performance and developer experience. The headline change is that Hermes V1 becomes the default JavaScript engine for all platforms, following its experimental introduction in 0.82. It brings a revamped compiler and VM that deliver faster execution and reduced memory usage. Additionally, iOS builds now use precompiled binaries by default, slashing clean build times. The team also removed legacy architecture components that were no longer needed since the New Architecture became the only option in 0.82. Finally, Node.js 22 is now the minimum required version for development.

React Native 0.84: Hermes V1 Goes Mainstream and More

Why is Hermes V1 the default JavaScript engine?

Hermes V1 represents the next evolution of the Hermes engine, with significant improvements to both the compiler and virtual machine. By making it the default, React Native ensures that every app gains measurable performance gains without any effort from developers. The engine offers better JavaScript execution speed, lower memory overhead, and smoother startup—critical for mobile apps. Since Hermes has been the default since 0.70, this is a natural upgrade that maintains full compatibility while pushing performance forward.

How does Hermes V1 improve performance?

Hermes V1 includes a new compiler that generates more efficient bytecode and a revamped VM that optimizes garbage collection and just-in-time compilation. Real-world benchmarks show up to 30% faster script execution and a 20% reduction in memory consumption compared to the earlier Hermes version. This means your app will launch quicker, animate smoother, and consume less battery—all without changing a single line of code. The improvements are especially noticeable on lower-end devices.

Do I need to migrate to use Hermes V1?

No migration is required. If your app already uses Hermes (which has been default since React Native 0.70), you will automatically begin using Hermes V1 when you upgrade to 0.84. There are no configuration changes, no new dependencies, and no code modifications needed. The upgrade is seamless—just update your React Native version and rebuild. Your existing app will instantly benefit from the performance enhancements.

How can I opt out of Hermes V1?

While Hermes V1 is now default, you can opt out using a package manager override or platform-specific settings. In package.json, add an override to force the legacy hermes-compiler version 0.15.0. For iOS, set RCT_HERMES_V1_ENABLED=0 and RCT_USE_PREBUILT_RNCORE=0 during pod install. For Android, add hermesV1Enabled=false to android/gradle.properties and configure the build to compile from source. Note that opting out may override the precompiled binaries feature on iOS.

What are precompiled iOS binaries?

Starting with 0.84, React Native ships precompiled .xcframework binaries for iOS by default. Instead of compiling the entire React Native core from source every time you run a clean build, these binaries are automatically downloaded and used during pod install. This cuts build times dramatically—often by 50% or more—especially in CI environments. If you need to build from source (for example, to opt out of Hermes V1), disable precompiled binaries by setting RCT_USE_PREBUILT_RNCORE=0 when installing pods.

What happened to the Legacy Architecture?

React Native 0.84 continues the removal of Legacy Architecture code that began in 0.82. On iOS, the RCT_REMOVE_LEGACY_ARCH flag is now enabled by default, meaning all legacy classes are excluded from builds. This reduces both compile time and app size. No breakages are expected for apps already on the New Architecture, as the removed code was no longer executed. Android sees similar cleanup. If you somehow relied on legacy APIs, you must migrate to the New Architecture before upgrading to 0.84.

Recommended