React Native 0.87 is now available!
This release makes the Strict TypeScript API the default, updates Metro with new optimizations, and adds experimental support for Swift Package Manager.
reactnative.dev/blog/2026/08…
React Native 0.88 contains 568 commits from 91 contributors.
As always, we want to thank our partners and the community for your contributions in this release!
Full changelog:
reactnative.dev/blog/2026/10…
Other improvements
- React 19.3 and Metro 0.87
- Experimental Swift Package Manager tooling
- backgroundSize/Position/Repeat are now stable
- React Native DevTools: Experimental performance screenshots in the Canary channel
No breaking changes 🎉
Following 0.83 and 0.86, this is our third release with no user-facing breaking changes.
Upgrade from 0.87 → 0.88 with no changes to your app code.
ArrayBuffer support for Java TurboModules
Java TurboModules can now take and return JavaScript ArrayBuffer values directly. Binary data no longer needs to be encoded between layers.
SceneDelegate support on iOS
React Native now supports the UIScene lifecycle, required for the iOS 27 SDK. With UIScene, the app window is resizable.
The previous AppDelegate path still works, but should be migrated from. See the Community Template or Upgrade Helper.
Variable fonts support
The fontVariationSettings style prop is now supported for Text and TextInput, on both Android and iOS.
Web-based event dispatching
Behind the scenes, React Native now dispatches events through the web-based EventTarget API by default, along with the update to React 19.3.
This allows opt-in to imperative web event listener APIs via the Canary channel.
React Native 0.88 is now available!
This release switches to a web-based event dispatching model, adds variable fonts support, SceneDelegate on iOS, and ArrayBuffer support for Android TurboModules. And it's another non-breaking major release.
reactnative.dev/blog/2026/10…
React Native retweeted
We (@expo) are now maintaining React Native for Web. Thanks to @necolas for building it and looking after it all these years 🫡
github.com/necolas/react-nat…
React Native 0.87 contains 265 commits from 74 contributors.
As always, we want to thank our partners and the community for your contributions in this release!
You can find the complete changelog here.
reactnative.dev/blog/2026/08…
Other changes
- InteractionManager removed, use requestIdleCallback
- `@react-native/assets-registry` deprecated
- `react-native/jest-preset` fallback removed
- ImageBackground deprecated
Please see the blog post for all breaking changes and deprecations.
Toolchain updates
- Android Gradle Plugin (AGP) v9 support, with temporary opt outs to individual behaviours available
- Node.js 22.13+
- Kotlin 2.0+
- Android compileSdk 37, minCompileSdk 34
Experimental Swift Package Manager support
An opt-in alternative to CocoaPods on iOS — no Ruby, no Bundler, no pod install after dependency changes.
CocoaPods remains the default and the supported path. Try it out:
Faster, leaner Metro
Metro 0.87 brings significant improvements to your dev flow, including:
- 2x faster source map generation
- Half the memory usage
- Stable support for TypeScript and ESM config files
- Resolver support for package self-resolve
Strict TypeScript API by default
In 0.87, React Native's JavaScript API switches over to our modern and stable TypeScript types.
- Deep imports into Libraries/ are now a type error
- Types are generated directly from source
- Improved docs on hover
This is a one-time breaking change, with an opt out available through React Native 0.88.
reactnative.dev/docs/strict-…
React Native 0.86 contains over 596 commits from 97 contributors.
We want to thank our partners and the community for your contributions in this release!
You can find the complete changelog here.
reactnative.dev/blog/2026/06…
Other improvements
- New JSI APIs: TypedArray, Uint8Array, ArrayBuffer.detached, Array.push, error factories
- Modal style prop forwarded to inner container
- Image.getSize returns true source dimensions
- Pressable android_ripple accepts PlatformColor
- BackHandler resume fix on Android API 36+
No breaking changes 🎉
If you're on React Native 0.85, you can upgrade to 0.86 without any changes to your app code.
We're continuing to make React Native releases more predictable and seamless to upgrade.







