React Native 0.87 Is Here – A Major Step Forward for TypeScript and Tooling
React Native 0.87 landed on August 11, 2026, and it is one of the most impactful releases in recent memory. With 265 commits from 74 contributors, this release brings the Strict TypeScript API as the new default, a dramatically faster Metro bundler, experimental Swift Package Manager support for iOS, and Android Gradle Plugin v9 compatibility.
Key Highlights
1. Strict TypeScript API Is Now the Default
The biggest change in 0.87 is that React Native’s public JavaScript API is now the Strict TypeScript API – first introduced as an opt-in in 0.80. This brings two major benefits:
- Types you can trust: Types are now generated directly from React Native’s source code, replacing hand-maintained definitions. This eliminates long-standing drift between types and actual code.
- A stable API: Deep imports into react-native/Libraries/* are now a type error. The API is scoped to what react-native exports at its root, meaning internal file changes no longer break your code.
If you need more time to migrate, you can temporarily opt out by adding react-native-legacy-deep-imports to your tsconfig.json – but this opt-out will be removed in 0.89.
2. Faster, Leaner Metro Bundler (0.84 to 0.87)
Metro has been significantly upgraded:
- Source map generation is now 2x faster, speeding up React Native DevTools loads
- Metro uses half as much memory thanks to more efficient source map storage
- Stable support for TypeScript and ESM config files (e.g. metro.config.mts)
- New resolver features including package self-resolve
3. Experimental Swift Package Manager Support for iOS
React Native 0.87 adds experimental SwiftPM support as an alternative to CocoaPods. This new setup only requires Xcode – no Ruby, no Bundler, no CocoaPods. Note: This is experimental and not recommended for production yet. CocoaPods remains the default supported path.
4. Android Gradle Plugin (AGP) v9 Support
React Native 0.87 is the first release to support AGP 9. To opt out of breaking DSL changes while the ecosystem catches up, add android.builtInKotlin=false and android.newDsl=false to your android/gradle.properties.
Breaking Changes and New Minimum Requirements
- Node.js >= 22.13.0 is now required
- Kotlin 2.0+ is required for Android (bundled version is 2.2.0)
- Android compileSdk bumped to 37, minCompileSdk to 34
- Removed: InteractionManager (use requestIdleCallback), deprecated Modal animated prop, NativeMethods types (use HostInstance)
- YAML Metro config files and .es6 extension support removed
How to Upgrade
Use the React Native Upgrade Helper to view code changes between versions. To start a new project, run: npx @react-native-community/cli@latest init MyProject –version latest
For Expo projects, React Native 0.87 will be available as part of expo@canary releases.
Hashtags: #ReactNative #React #TypeScript #MobileDevelopment #JavaScript #iOS #Android #OpenSource
Resources: