5 Key Updates in React Native 0.84: Faster Performance and Streamlined Builds
React Native 0.84 has arrived, and it brings a host of improvements that make app development smoother and more efficient. The headline feature is the default adoption of Hermes V1 as the JavaScript engine, but there’s much more to explore—from precompiled iOS binaries to the continued removal of legacy architecture. Whether you’re maintaining an existing app or starting a new project, these changes are worth understanding. Below, we break down the five most important updates you need to know about.
1. Hermes V1 Becomes the Default JavaScript Engine
After being available as an experimental opt-in since React Native 0.82, Hermes V1 is now the default JavaScript engine on both iOS and Android. This new version of the Hermes engine brings major improvements to the compiler and virtual machine, resulting in measurably better JavaScript execution speeds and lower memory consumption. For developers, this means automatic performance gains without any migration effort. If you’re already using Hermes (which has been default since 0.70), your app will seamlessly switch to Hermes V1. No configuration changes are needed. However, if you must opt out—perhaps for compatibility reasons—you can override the Hermes compiler version in your package.json or set environment variables during pod install. For iOS, use RCT_HERMES_V1_ENABLED=0, and for Android, add hermesV1Enabled=false in gradle.properties. These steps ensure you can revert to the legacy Hermes compiler if needed.
2. Precompiled iOS Binaries Enabled by Default
Building React Native apps on iOS just got faster. Starting with version 0.84, precompiled binaries for iOS are shipped automatically. Previously, this was an optional feature; now it’s the default behavior. Instead of compiling the React Native core from source every time you run a clean build, the necessary .xcframework binaries are downloaded and used during pod install. This drastically reduces build times, especially for larger projects. If you need to compile from source (for example, to disable Hermes V1), you can still do so by setting RCT_USE_PREBUILT_RNCORE=0 when installing pods. This flexibility ensures that developers who require custom configurations aren’t locked out.
3. Continued Removal of Legacy Architecture Components
React Native’s New Architecture has been the only runtime option since 0.82, and 0.84 further cleans up legacy code. Building on the experimental RCT_REMOVE_LEGACY_ARCH flag introduced in 0.83, this release now makes legacy architecture removal the default on iOS. Legacy classes are no longer included in iOS builds, resulting in smaller app sizes and faster compile times. On Android, similar cleanup continues. The team has been systematically removing legacy components according to the RFC, and no breakages are expected for apps already running on the New Architecture. This gradual removal process ensures a smooth transition while reducing technical debt.
4. Node.js 22 Now Required
React Native 0.84 raises the minimum Node.js version to 22. This aligns the framework with the latest LTS release and ensures compatibility with modern JavaScript features and tooling. Developers working on older Node versions will need to upgrade before using this version. This change reflects the React Native team’s commitment to staying current with the ecosystem. Node 22 brings improvements like faster startup times and enhanced security, which benefit both development and build processes. While this might require a quick update for some teams, the long-term gains in stability and performance are well worth it.
5. What These Changes Mean for Your Development Workflow
Together, these updates streamline the development experience from start to finish. With Hermes V1 and precompiled binaries, you’ll notice faster execution and reduced build times right away. The removal of legacy architecture lightens your app’s footprint and simplifies the codebase. Upgrading to Node 22 keeps you aligned with modern JavaScript standards. For new projects, starting with 0.84 means you benefit from all these optimizations from day one. Existing apps should upgrade carefully, testing for any edge cases—especially if you were relying on legacy architecture features or older Hermes compiler versions. The opt-out mechanisms provided ensure you can adapt at your own pace, but the default settings are optimized for the best performance.
React Native 0.84 is a significant step forward in making cross-platform development faster and more efficient. By adopting these defaults, you’re setting your apps up for success. Check the official changelog for a full list of fixes and minor improvements, and start planning your upgrade today.