React Native 0.84: Everything You Need to Know About the Latest Update
Welcome to the official guide on React Native 0.84. This release marks a major milestone by making Hermes V1 the default JavaScript engine, alongside significant improvements in build times and architecture cleanup. Below, we break down the key changes in a Q&A format to help you understand what's new and how it affects your projects.
What is the most significant change in React Native 0.84?
The standout feature in React Native 0.84 is that Hermes V1 is now the default JavaScript engine on both iOS and Android. This follows its initial experimental opt-in in version 0.82. Hermes V1 is a major upgrade to the Hermes engine, with improvements to both the compiler and virtual machine. As a result, all React Native apps automatically benefit from better execution speed and reduced memory usage—no extra configuration required. If you were already using Hermes (the default since 0.70), the transition to Hermes V1 is seamless. For teams that need to stick with the older version, there are opt-out options available (see Question 3). This change alone makes upgrading to 0.84 highly recommended for performance gains.
How does Hermes V1 improve app performance?
Hermes V1 delivers measurably better JavaScript performance through a next-generation compiler and VM. The key benefits include:
- Faster execution speed: Code runs more efficiently, especially in complex operations.
- Lower memory usage: Apps consume less RAM, which is crucial for mobile devices.
- Automatic gains: No migration effort is needed—just upgrade to 0.84 and your app inherits these improvements.
These enhancements are particularly noticeable in apps with heavy JavaScript logic, such as animations, data processing, or large state management. The best part? You don't have to change a single line of code to reap these advantages.
Can I still use the older Hermes version if I need to?
Yes, you can opt out of Hermes V1 and fall back to the legacy Hermes compiler. The process depends on your package manager and platform:
- Package manager overrides: Add an override in
package.jsonto force the legacyhermes-compilerpackage (version 0.15.0). For npm use"overrides", for Yarn use"resolutions", for pnpm use"pnpm"."overrides". - iOS: When running
pod install, set environment variablesRCT_HERMES_V1_ENABLED=0andRCT_USE_PREBUILT_RNCORE=0. - Android: Add
hermesV1Enabled=falsetoandroid/gradle.propertiesand build React Native from source.
These steps ensure compatibility for projects that depend on the older engine.
What are precompiled iOS binaries and why should I care?
React Native 0.84 now ships precompiled iOS binaries by default. Previously optional, this feature provides ready-to-use .xcframework files that are automatically downloaded during pod install. The main advantage is a dramatic reduction in build times, especially for clean builds where React Native core no longer needs to be compiled from source. If you’re a developer who frequently rebuilds iOS targets, this change alone can save minutes per cycle. However, if you need to build from source (for example, to opt out of Hermes V1 or test custom modifications), you can disable this feature by setting RCT_USE_PREBUILT_RNCORE=0 when installing pods.
What legacy architecture components have been removed?
Building on work from 0.82 (which made the New Architecture the only runtime option), version 0.84 continues removing Legacy Architecture code. On iOS, the experimental RCT_REMOVE_LEGACY_ARCH flag now defaults to true, meaning Legacy Architecture code is no longer compiled into your builds. This reduces both build time and app size. For Android, similar removals are in effect. No breakages are expected for apps already using the New Architecture. If you encounter issues, check your project for any remaining dependencies on legacy classes—these should be updated to their modern equivalents.
What are the new system requirements for React Native 0.84?
React Native 0.84 raises the minimum Node.js version to 22. This ensures compatibility with the latest JavaScript tooling and security updates. If your development environment still uses an older Node.js version (e.g., 18 or 20), you'll need to upgrade before installing this release. We recommend using a Node version manager like nvm to switch easily. Other dependencies (like Xcode, Android Studio, and Ruby) remain unchanged. Upgrading Node.js is straightforward and helps your project stay secure and performant.
Related Articles
- From iOS to Android: A Step-by-Step Guide to Using Google's Migration Assistant
- 10 Exciting Details About Google Pixel's 3D Emoji Redesign for Android 17
- YouTube Overhauls Mobile App Navigation: Subscriptions Tab Moved in Sweeping Redesign Test
- Flutter Abandons CocoaPods: Swift Package Manager Becomes Default in Next Release
- The Making of a World Record: How Adidas Engineered the 97-Gram Supershoe
- What .NET MAUI's Shift to CoreCLR Means for Your Mobile Apps
- Building 20 Apps in 20 Days: A Flutter Developer's Journey into Rapid Prototyping
- Implementing Under-Display Face Authentication with Metalenz Polar ID: A Step-by-Step Guide