React Native 0.82 Ushers in a New Era: New Architecture Becomes Mandatory, Experimental Hermes V1 Arrives, and React 19 Enhancements Debut

React Native 0.82 marks a significant milestone in the evolution of the popular cross-platform development framework, officially transitioning to an "architecture-only" model with the New Architecture becoming the sole operational mode. This pivotal release signifies a strategic shift by the React Native team, aiming to streamline the codebase, reduce application sizes, and unlock enhanced performance for developers. Alongside this fundamental change, the update introduces an experimental opt-in for Hermes V1, a more performant JavaScript engine, and integrates critical updates from React 19.1.1, including improved support for owner stacks and enhanced Suspense capabilities.
The mandatory adoption of the New Architecture, first announced as the default in version 0.76, represents the culmination of years of development and refinement. The React Native core team has expressed confidence in its stability and performance, asserting that any attempts to revert to the Legacy Architecture via configuration flags will be disregarded in this and future versions. This decisive move is expected to pave the way for the eventual removal of legacy code, further optimizing the framework’s footprint and maintainability.
A New Foundation: The New Architecture Takes Center Stage
The transition to the New Architecture has been a gradual but deliberate process. Previously, developers could opt out of the New Architecture, allowing for a smoother migration path for existing projects. However, with React Native 0.82, this option is no longer available. The framework will now exclusively operate using the New Architecture, which leverages technologies like TurboModules and Fabric to provide more efficient communication between JavaScript and native code, and a more performant rendering system, respectively.
For developers who have yet to migrate their projects, the React Native team strongly recommends a phased approach. The preceding versions, React Native 0.81 and Expo SDK 54, served as critical stepping stones, offering warnings and performance enhancements specifically designed to facilitate this transition. The recommended pathway involves first migrating to one of these versions, enabling the New Architecture, and thoroughly testing application functionality. Once stability is confirmed, developers can then confidently upgrade to React Native 0.82.
Addressing potential roadblocks, the team acknowledges that third-party library compatibility can be a concern. They encourage developers to proactively engage with library maintainers if specific dependencies are hindering their migration to the New Architecture. For issues stemming from React Native core itself, the project’s issue tracker remains the primary channel for reporting and resolution.
The interop layers, crucial for maintaining backward compatibility during the transition, will remain in the codebase for the foreseeable future. The React Native team has assured the community that essential classes and functions supporting these layers will not be removed imminently. Specific timelines for their eventual removal will be communicated in future updates. This commitment ensures that the migration process, while mandatory, remains manageable for a wide range of projects.
Embracing Performance: Experimental Hermes V1
A significant highlight of React Native 0.82 is the introduction of an experimental opt-in for Hermes V1. Hermes, the custom JavaScript engine optimized for React Native, has undergone substantial improvements, and V1 represents its next evolutionary leap. Internally tested by the React Native team in their own complex applications, Hermes V1 promises enhanced performance through advancements in its compiler and virtual machine.
Initial benchmarks and real-world testing, such as that conducted on the Expensify app, have demonstrated notable performance gains. On Android, Hermes V1 has shown improvements of up to 3.2% in Bundle Load Time and 7.6% in Total Time to Interactive (TTI). iOS users can expect even more substantial gains, with Bundle Load Time seeing a 9% improvement and Content TTI an impressive 7.5% increase. Total TTI, defined as the duration from bundle loading to the first interactive screen, also sees improvements of 2.5% on iOS. Content TTI measures the time it takes for a specific component to become interactive after its initial render.
It’s important to note that Hermes V1, in its current experimental phase, does not yet incorporate JS-to-native compilation (previously known as "Static Hermes") or the Just-In-Time (JIT) compilation discussed at React Native EU 2023. These advanced features are still under active development and testing.
Enabling Hermes V1 in the current release requires building React Native from source, a process that will be simplified once Hermes V1 is integrated as the default engine in a future stable release. The process involves specific configurations in the project’s package.json to specify the Hermes compiler version, followed by modifications to Android’s gradle.properties and android/settings.gradle to ensure the project builds from source and substitutes the correct Hermes engine. For iOS, pod install commands need to be executed with specific flags to prevent using precompiled React Native core components. Developers can then verify the Hermes V1 version through a simple JavaScript snippet accessing HermesInternal.getRuntimeProperties().

React 19.1.1 Integration: Enhanced Capabilities and Reliability
React Native 0.82 seamlessly integrates with the latest stable release of React, version 19.1.1. This integration brings several key improvements to the React Native ecosystem. Notably, React 19.1.1 fully supports owner stacks for React Native applications. Owner stacks provide crucial debugging information by tracing the component hierarchy that led to a particular render or error. This functionality was previously restricted when using the @babel/plugin-transform-function-name Babel plugin, a limitation now lifted with this React update.
Furthermore, the reliability of useDeferredValue and startTransition within Suspense boundaries has been significantly enhanced. These React features are instrumental in improving app responsiveness by allowing developers to defer non-critical updates and mark certain UI updates as non-urgent. Previously, these features could lead to incorrect fallback component rendering in React Native when used with Suspense. With React 19.1.1, their behavior now aligns consistently with their web counterparts, ensuring a more predictable and robust user experience.
DOM Node APIs: A Familiar Interface for Native Components
A forward-looking enhancement in React Native 0.82 is the introduction of DOM-like nodes for native components accessible via refs. Previously, native components exposed React Native-specific objects with a limited set of methods like measure and setNativeProps. This update introduces nodes that implement a subset of the standard DOM API, enabling developers to traverse the UI tree, measure layout, and interact with components in a manner more akin to web development.
This means developers can now access properties like parentNode, parentElement, childNodes, and children directly from refs. The getBoundingClientRect() method is also now available, providing layout information in a familiar format. Furthermore, access to ownerDocument allows for querying the document for other elements. Crucially, this change is backward compatible, as the new DOM-like nodes continue to support the legacy methods, ensuring existing codebases remain functional. This integration also exposes leaf text nodes generated by the Text component and document nodes representing React Native root views, further bridging the gap between web and native development paradigms.
Other Notable Enhancements and Optimizations
Beyond the major architectural and engine upgrades, React Native 0.82 introduces several other valuable features and improvements:
- Web Performance APIs (Canary): A subset of web performance APIs has been implemented, allowing developers to track runtime performance metrics for telemetry and integration with future React Native DevTools. These APIs are currently available in the canary release channel.
- Optimized Debug Build Type for Android: A new
debugOptimizedbuild type for Android has been introduced. This build type enables C++ optimizations while retaining JavaScript debugging capabilities via React Native Dev Tools. This significantly speeds up development cycles by offering faster animations and re-rendering compared to the traditionaldebugbuild, which is primarily designed for C++ native debugging. This optimization has also been backported to React Native 0.81 and Expo SDK 54. - Improved Reporting of Uncaught Promise Rejections: Following improvements in error reporting in the previous version, uncaught promise rejections will now be reported through the same robust mechanism, raising
console.error. This ensures that previously swallowed errors are now surfaced, although it may lead to a temporary surge in reported errors for existing applications.
Breaking Changes and the Path Forward
While this release focuses on advancement, developers should be aware of potential breaking changes. The most prominent is the aforementioned enhanced reporting of uncaught promise rejections. Additionally, the full list of breaking changes across general, iOS, Android, and C++ components can be found in the official React Native 0.82 changelog.
The release of React Native 0.82 is a testament to the ongoing commitment of the React Native community and its contributors. With over 868 commits from 93 contributors, this release underscores the collaborative spirit driving the framework’s evolution.
Upgrading to React Native 0.82 is recommended for all developers looking to leverage the latest performance enhancements and architectural improvements. The React Native Upgrade Helper tool remains an invaluable resource for managing code changes during the upgrade process. For new projects, the CLI provides a straightforward way to initialize a project with the latest version. For Expo users, React Native 0.82 will be accessible through expo@canary releases, with the next stable SDK, 55, slated to include React Native 0.83.
React Native 0.82 signifies a pivotal moment, not just as a new version, but as a gateway to a more performant, streamlined, and modern development experience. The mandatory adoption of the New Architecture, coupled with the experimental introduction of Hermes V1 and enhanced React integration, sets a strong foundation for the future of cross-platform development.







