The latest version of React Native has been released. The new version, React Native 0.80, released on 12 June 2025, has introduced some new updates that every React Native developer should know.
The React Native 0.80 update brings in performance enhancements, architectural progress, and tooling improvements that promise better efficiency and stability. But if you're like many developers, you're probably wondering what exactly is new and how this update might affect your app.
In this guide, we'll break down everything you need to know about the latest version of React Native, from feature highlights and architectural shifts to migration steps and practical upgrade tips.
The React Native latest version has introduced many new upgrades and integrations. It came with performance boosts, cleaner APIs, and stronger TypeScript support.
Here's what developers need to know about React Native 0.80:
React 19.1.0 Integration: React Native 0.80 is aligned with React 19.1.0, bringing in the latest features and dev-mode improvements, like enhanced owner stacks for debugging.
Hermes Optimizations: While the Hermes version isn't specified, Interprocedural Optimization (IPO) is now enabled for Hermes and React Native builds on Android. This contributes to smaller APK sizes, typically saving around 1MB per app.
Updated Packages:
eslint-plugin-react-hooks upgraded from v4.6.0 to v5.2.0
Kotlin bumped to v2.1.20 for Android projects
Legacy Architecture Frozen: Starting in 0.80, the Legacy Architecture is no longer actively maintained. No new features or bug fixes will be provided for it.
New Architecture is the future: DevTools now display warnings for deprecated APIs that won't work in the New Architecture, nudging teams toward migration. This also improves runtime performance and simplifies long-term code maintenance.
Fabric & TurboModules: While no new Fabric changes are detailed, it remains a core part of the New Architecture. TurboModules continue to be fundamental, though no new additions were noted in this release.
Deep Import Deprecation: Deep JavaScript imports (like react-native/Libraries/Alert/Alert) are now deprecated. Warnings appear via ESLint and the console. Apps should update to use root-level imports.
"exports" Field Added: The package.json of React Native now includes an exports field. While backward-compatible in 0.80, this affects:
Metro bundler: Platform-specific extensions aren't auto-expanded.
Jest: Deep import mocks may need updates.
Hook Linting Changes: The upgrade to eslint-plugin-react-hooks@5.2.0 may cause new rule violations that developers need to fix.
Android-Specific Changes:
StandardCharsets removed
Some classes were made internal or migrated to Kotlin (e.g., StateWrapperImpl, ReactEditText)
iOS-Specific Changes:
RCTFloorPixelValue removed from RCTUtils.h
Strict TypeScript API (Opt-In): 0.80 introduces an opt-in preview of a stricter, more accurate TypeScript API, generated directly from the source code. It's limited to the root export, aligning with the deprecation of deep imports.
Experimental iOS Prebuilt Dependencies: A new .xcframework prebuild includes dependencies like Folly and GLog, reducing iOS build times by ~12% on M4 chips. This also helps resolve several common iOS build issues.
Redesigned New App Screen: The default app template (used with Community CLI) now includes a cleaner redesign, extracted into its own package.
APK Size Reduction: Thanks to IPO, Android builds are more optimized by default.
Improved DevTools: Warnings now help guide migration to the New Architecture.
React 19.1 Owner Stack Debugging: Helps trace component-level issues, though partially broken (see below).
Use the React Native Upgrade Helper to track diffs and required changes.
Expo users can try 0.80 via a canary SDK release.
Developers facing regressions can temporarily opt out of the New Architecture during migration.
Owner Stack Debugging Issue: The @babel/plugin-transform-function-name
plugin interferes with owner stacks from React 19.1.0. A fix is planned in a future release.
iOS prebuilds Are Experimental: While beneficial, these may cause unexpected issues and are opt-in.
"exports" Field Side Effects: Module resolution and mocking behavior may subtly change depending on how Metro and Jest are configured.
React Native provides vast features for businesses. And with this new update, there are some changes that could affect your mobile app development project in the long run. Below, we break down the most notable updates and what they mean in practical terms for mobile app development teams.
React Native has been transitioning to the New Architecture for a while now, but with 0.80, the old system is finally frozen. That means no new features or bug fixes will be applied to the Legacy Architecture.
This decision can lead developers towards adopting the New Architecture, which offers better performance and improved rendering via Fabric. Also it will ensure long-term support as new React Native tool updates will also be deployed in the new architecture.
If you have built your Android app with Hermes, then you are in luck. With 0.80, Android builds that use Hermes now benefit from Interprocedural Optimization (IPO) by default. This compiler analyzes code across method boundaries and not just individual functions or blocks of code, to eliminate redundancies.
This compiler can help you reduce code size, which in turn reduces the overall size of the APK. Here's how IPO reduces your app size:
By identifying dead codes, which means codes that are never executed or referenced anywhere in the program, and eliminating it.
IPO can determine which functions are always inlined, and can suppress generating separate code for these functions.
By analyzing the entire program, IPO can detect identical or similar code sequences across multiple modules and consolidate them.
This release introduces an experimental Strict TypeScript mode. It's limited to React Native's public API but generates type definitions directly from the source code. This new support is currently experimental and opt-in, but it lays the groundwork for a more stable developer experience moving forward.
The new TypeScript types do not need to be maintained manually by the community; rather, they are automatically generated from React Native's source code. Furthermore, Types are now restricted to only what is exported from the main react-native package. Which means deep imports are deprecated and will trigger warnings.
To opt in you need to update your tsconfig.json to enable the Strict TypeScript API. Keep in mind that this is a one-time migration, but you can continue using the older types if you need more time to upgrade.
Before (Deprecated Deep Import):
import { Alert } from 'react-native/Libraries/Alert/Alert'; // Deprecated
After (Strict API):
import { Alert } from 'react-native'; // Recommended
Prebuilt native dependencies are compiled versions of third-party libraries that React Native relies on for iOS, such as Folly, GLog, and DoubleConversion. The latest version of React Native introduces a new feature that allows prebuilt native dependencies to be bundled into a reusable .xcframework.
This change is designed to drive the iOS development process faster and reliably. This feature ships certain third-party native libraries as prebuilt binaries, rather than requiring developers to build them from source.
Third-party dependencies can cause build failures or can take several minutes to complete. With prebuilt dependencies, initial iOS build times can be reduced and failures can be avoided, which leads to a more stable build process.
React Native 0.80 now uses 19.1.0 and includes updates that improve the quality and clarity of warnings shown in DevTools. These warnings are more specific. For example, the warnings can be specific if it comes to deprecated APIs, missing architecture configurations, or outdated project setups.
This change can make the debugging process far less frustrating. With specific warnings, now you know where you to change or take action. It's a small change on the surface, but the cumulative effect is smoother workflows while working in the console or IDE.
In React Native 0.80, official support for JavaScriptCore (JSC) as a bundled JavaScript engine has ended. Maintenance and updates for JSC are now handled by the community through the package @react-native-community/javascriptcore.
With JSC decoupled from React Native's release cycle, the community can provide updates, bug fixes, and improvements to JSC more rapidly and independently of React Native's core releases. If your project still relies on JSC, you must migrate to the community package or consider switching to Hermes, which remains the officially supported JavaScript engine for React Native.
To help you move forward, here’s a structured migration guide to safely upgrading React Native latest version.
Head over to the React Native upgrade helper. It's a web tool that compares your current version with the new one and shows the exact changes needed in files like package.json, android/build.gradle, Podfile, and others.
This tool ensures you don’t miss any subtle updates, like renamed properties or deprecated APIs.
Always create a backup or commit your code to version control before starting the upgrade. If anything breaks during the process, you will be able to roll back quickly.
Use a separate Git branch for the migration and testing process.
Update the core React Native dependencies:
npm install react-native@0.80.0 react@19.1.0
Or with Yarn:
yarn add react-native@0.80.0 react@19.1.0
After that, update related packages such as:
react-test-renderer
@react-native-community libraries
Any navigation, gesture, or animation libraries you’re using (check their changelogs for React Native 0.80 compatibility)
Clear out old builds and dependencies to avoid cache-related errors:
# Remove node_modules and caches
rm -rf node_modules ios/Pods android/build
npm cache clean --force
# Reinstall
npm install
cd ios && pod install && cd ..
If you're upgrading to 0.80, it’s also a good time to evaluate your dependencies and consider modern UI libraries that fully support the latest features. This step is crucial to ensure that native changes (like updated Gradle or Xcode settings) take effect cleanly.
The React Native latest version continues building on the New Architecture foundations. If you haven’t migrated yet, now’s a good time to start enabling it using the opt-in flags in your project:
On Android: update gradle.properties to include newArchEnabled=true
On iOS: enable Fabric and TurboModules in your build configuration
This unlocks features like better startup performance, more predictable rendering, and tighter Hermes integration.
Check your terminal and DevTools for warnings about deprecated methods or configuration files. React Native 0.80, while not radically breaking, does clean up unused packages and encourages more modular code. Libraries or code that worked fine on older versions might need small adjustments.
Since JSC is no longer maintained by the React Native team starting from 0.80, double-check your project’s JavaScript engine. Hermes is now the recommended choice and comes enabled by default on new projects.
Expo users may notice fewer breaking changes and quicker access to updates, but it’s still important to understand the distinctions between React Native and Expo.
If you are on an older version, then upgrading React Native to 0.80 is important for the long run. You don't need to immediately upgrade or rush into the new version of React Native.
The decision to upgrade depends on where your app stands. If you're building something new or planning major feature work soon, now is a great time to upgrade.
The React Native latest version tightens the foundation for future updates. With improvements in debugging, support for React 19, updates to the Metro bundler, and stronger alignment with the New Architecture, this version focuses on making app development more predictable and scalable. If your existing app is stable but showing signs of lagging behind on dependencies or performance, React Native 0.80 offers a low-friction path to catch up. Staying current with the latest version is one of the best practices for scalable React Native apps, ensuring long-term maintainability and faster iteration cycles.
At Brilworks, we specialize in React Native development and modernization. If you want to build a reliable app from scratch or want expert guidance migrating to 0.80, our team can help you upgrade.
As of July 2025, the latest stable version of React Native is 0.80. This release includes major improvements like Hermes 1.5.0 by default, stable TurboModules, updated codegen, and the removal of deprecated modules for a leaner core.
To upgrade, first back up your project and read the official changelog. Use the react-native upgrade command, resolve any breaking changes, and test your app thoroughly, especially if you’re enabling Hermes or using native modules. Always use a separate Git branch when upgrading.
React Native 0.80 introduces a range of significant upgrades, including Hermes 1.5.0 enabled by default for improved performance. It also features a new codegen system for native modules and stable support for TurboModules, enhancing the bridge between JavaScript and native code. The core has been cleaned up through the removal of deprecated modules, contributing to a more streamlined and efficient framework. Furthermore, this version offers better DevTools integration and improved debugging capabilities, aiming to provide a smoother development experience.
Yes, Hermes is now enabled by default in React Native 0.80 for all new projects. It offers better performance, faster app startup, smaller bundle sizes, and improved debugging capabilities compared to older JS engines.
If you want better performance, easier debugging, and long-term support for future features like Fabric and TurboModules, upgrading to React Native 0.80 is a smart move. However, test thoroughly before upgrading, especially if your project relies on older APIs or custom native modules.
Get In Touch
Contact us for your software development requirements
Get In Touch
Contact us for your software development requirements