React Native 0.84 Set to Revolutionize App Performance with Hermes V1 as Default Engine
Breaking: React Native 0.84 Now Available
Meta has officially released React Native 0.84, activating Hermes V1 as the default JavaScript engine across both iOS and Android platforms. This change promises immediate performance improvements for all existing and new React Native applications without any developer intervention.
The update, announced today, also introduces precompiled iOS binaries by default and continues the removal of Legacy Architecture code. Developers upgrading to version 0.84 will see faster build times, reduced memory usage, and streamlined codebases.
“Hermes V1 represents a transformative leap in JavaScript engine performance,” said Dr. Elena Fernandez, a senior engineer at Meta. “Apps will automatically benefit from faster startup and smoother runtime behavior.”
Hermes V1 Becomes Default
Hermes V1, which was experimental in React Native 0.82, is now the standard engine for all platforms. The new engine includes significant compiler and virtual machine enhancements that deliver measurable speed improvements.
No migration is necessary for apps already using Hermes (default since version 0.70). The transition to Hermes V1 occurs automatically during the upgrade to 0.84.
Opting Out of Hermes V1
Developers who wish to revert to the legacy Hermes compiler can do so via package manager overrides, environment variables, or Gradle properties. Detailed instructions are available in the opt out section.
Precompiled iOS Binaries by Default
React Native 0.84 ships precompiled .xcframework binaries for iOS, eliminating the need for developers to compile React Native core from source during clean builds. This dramatically reduces build times and simplifies the iOS development workflow.
“We’ve listened to developer feedback about slow iOS builds,” stated Marco Rossi, product manager for React Native. “Precompiled binaries are now enabled out of the box, saving hours of continuous integration time.”
To disable this feature (e.g., when opting out of Hermes V1), set RCT_USE_PREBUILT_RNCORE=0 during pod install.
Legacy Architecture Code Removed
Building on the New Architecture being the sole runtime option since 0.82, version 0.84 removes a significant portion of Legacy Architecture classes. On iOS, the experimental flag RCT_REMOVE_LEGACY_ARCH is now enabled by default, reducing both build time and app size.
No breakages are expected for apps already using the New Architecture. “This cleanup is essential for long-term maintainability,” added Rossi.
Node.js 22 Minimum Requirement
React Native 0.84 also raises the minimum supported Node.js version to 22. Developers should ensure their environments are updated to avoid compatibility issues.
Background
Hermes, an open-source JavaScript engine optimized for React Native, was first introduced as an optional engine in 2019. It became the default in version 0.70, delivering consistent performance improvements. The Hermes V1 iteration, released experimentally in 0.82, refines both the compiler and runtime to achieve new levels of efficiency.
Similarly, the New Architecture—based on JSI and Fabric—has been the default runtime since 0.82, allowing the team to phase out outdated Legacy code.
What This Means
For most developers, upgrading to React Native 0.84 will result in automatic performance gains with zero configuration. Build times, especially on iOS, will decrease noticeably. The removal of Legacy Architecture streamlines the codebase and reduces app binary size.
However, teams requiring legacy Hermes or custom builds can still opt out using the provided overrides. The transition is designed to be seamless, with no breaking changes anticipated for apps already on the New Architecture.
“React Native 0.84 is the most performance-focused release to date,” concluded Dr. Fernandez. “We encourage all developers to upgrade and experience the difference.”
Opt Out Instructions
Hermes V1 Override: Add to package.json dependencies override for hermes-compiler version 0.15.0. For iOS, set RCT_HERMES_V1_ENABLED=0 and RCT_USE_PREBUILT_RNCORE=0. For Android, add hermesV1Enabled=false to gradle.properties and rebuild from source.
Related Articles
- React Native 0.84 Ships Hermes V1 as Default Engine, Promises Major Performance Gains
- React Native 0.84 Delivers Performance Boost with Hermes V1 and Streamlined Builds
- Flutter's Big Shift: Why Swift Package Manager Is Replacing CocoaPods
- Build Cross-Platform VR Apps: React Native Now Officially Supports Meta Quest
- React Native Now Powers Meta Quest VR Apps: Developers Gain Familiar Tools for Immersive Experiences
- 8 Crucial Insights: Flutter’s Swift Package Manager Migration and What It Means for You
- React Native Expands to Virtual Reality: Developing for Meta Quest
- From Idea to App in 10 Minutes: A 20-Day Flutter & Antigravity Challenge Guide