Mobile Development

Upgrading to React Native 0.84: Embrace Hermes V1 and Faster Builds

2026-05-03 08:42:15

Introduction

React Native 0.84 marks a significant milestone by making Hermes V1 the default JavaScript engine across both iOS and Android. This upgrade brings automatic performance improvements—faster execution speeds and reduced memory usage—without requiring any migration effort if you're already using Hermes (the default since 0.70). Additionally, React Native 0.84 ships precompiled iOS binaries by default, cutting down build times, and continues to remove legacy architecture code to streamline your app. This guide walks you through updating your project to version 0.84, verifying the new defaults, and optionally opting out where needed.

Upgrading to React Native 0.84: Embrace Hermes V1 and Faster Builds

What You Need

Step-by-Step Guide

Step 1: Update Your Project to React Native 0.84

Start by upgrading your React Native framework and all related dependencies. Use the React Native upgrade helper or run the following commands: (assuming you use npm)

  1. In your project root, run npm install react-native@0.84.0 or yarn add react-native@0.84.0.
  2. Update react and react-dom to compatible versions (refer to the official Upgrade Guide).
  3. Run cd ios && pod install && cd .. to update iOS dependencies.
  4. For Android, ensure your android/build.gradle and android/app/build.gradle reference the correct React Native version and have the required repositories.

Step 2: Verify That Hermes V1 Is Enabled

Starting with 0.84, Hermes V1 is the default engine. No additional configuration is needed if you were already using Hermes (default since 0.70). To confirm:

Step 3: Take Advantage of Precompiled iOS Binaries

React Native 0.84 ships precompiled .xcframework binaries for iOS by default. This eliminates the need to compile React Native core from source each time you do a clean build. No action is required—just run pod install normally. If you later need to build from source (e.g., for custom native code modifications), you can disable this by setting RCT_USE_PREBUILT_RNCORE=0 when running pod install.

Step 4: Remove Legacy Architecture Code

With 0.84, the New Architecture is the only runtime option (started in 0.82). React Native now automatically excludes legacy architecture components from both platforms. For iOS, the experimental flag RCT_REMOVE_LEGACY_ARCH is enabled by default. This reduces build time and app size. You don't need to do anything—your app will no longer include those legacy files. Ensure you have migrated all native modules to the New Architecture (see Tips).

Step 5: Test Performance and Build Times

After upgrading, run your app in both debug and release modes. Pay attention to:

If everything works as expected, you're all set! If you encounter issues, refer to the Opting Out section below.

Tips and Troubleshooting

// For Yarn (resolutions)
"resolutions": { "hermes-compiler": "0.15.0" }
// For npm (overrides)
"overrides": { "hermes-compiler": "0.15.0" }
// For pnpm
"pnpm": { "overrides": { "hermes-compiler": "0.15.0" } }

On iOS, also set environment variables RCT_HERMES_V1_ENABLED=0 and RCT_USE_PREBUILT_RNCORE=0 during pod install. On Android, set hermesV1Enabled=false in gradle.properties and build from source.

With these steps, you'll harness the full performance potential of React Native 0.84. Enjoy faster builds and a leaner app!

Explore

Kubernetes v1.36 Overhauls Memory Management: Tiered Protection and Opt-In Reservation Go Alpha Introducing Sealed Bootable Container Images for Fedora Atomic Desktops: Your Guide to Verified Boot Chains Anbernic RG Rotate: Flip-Out Handheld Console Launches at $88 – Retro Gaming’s Next Evolution GCC 17 Compiler Gains Support for Hygon C86-4G Series CPUs: A Detailed Q&A Bridging the Psychedelic Divide: A Guide to Equitable Access and Inclusion in Psychedelic Therapy