MediumReact Native 0.87: A Developer’s Guide to Migration and What’s New | by Bharat Purohit | Medium
Sitemap
Bharat Purohit

Bharat Purohit

Mobile app developer focused on React Native, Android & iOS. Sharing practical insights on cross-platform development, UI/UX, and app performance.

React Native 0.87: A Developer’s Guide to Migration and What’s New

3 min readAug 25, 2026

--

Press enter or click to view image in full size

React-native recently released its new version 0.87. Here react-native mostly target on developer experience, API stability, build tooling, and performance than on introducing new UI components. Mainly react-native release following things.

Key highlights:-
Strict TypeScript API — More accurate generated types and a cleaner public API.

Faster Metro -2× faster source-map generation and around 50% lower memory usage.

Swift Package Manager -Experimental alternative to CocoaPods for iOS.

AGP 9 support -Updated Android build tooling.

Node.js 22 & Kotlin 2.0+ -New minimum tooling requirements.

API cleanup -Several deprecated/internal APIs have been removed.

Strict TypeScript API :

React Native 0.87 makes the Strict TypeScript API the default. The main things is to provide more accurate types and a clearer public API for react-native.

1. View → ViewInstance for refs changed

This is probably the most noticeable change.

Before:

const viewRef = useRef<View>(null);

Now:

import { View, type ViewInstance } from 'react-native';
const viewRef = useRef<ViewInstance>(null);
Similarly for other components:
useRef<TextInputInstance>(null);
useRef<ScrollViewInstance>(null);
useRef<FlatListInstance>(null);

Use View for the component and ViewInstance when you need the actual ref instance.

4. Codegen types have a new public API

If you’re working with TurboModules or Fabric components, you may see changes here.

Before:

import type {
Int32,
WithDefault,
} from 'react-native/Libraries/Types/CodegenTypes';

Now:

import { CodegenTypes } from 'react-native';
type Props = {
size?: CodegenTypes.Int32;
enabled?: CodegenTypes.WithDefault<boolean, true>;
};

So Codegen-related types are now exposed through the public react-native API.

5. Avoid React Native internal imports

You may find code like:

import something from

'react-native/Libraries/…';

The Strict API is moving developers away from these internal APIs.

Prefer:

import { something } from 'react-native';

This is particularly important for library developers, because relying on internal React Native files can cause problems during future RN upgrades.

6. Better and more accurate TypeScript types

The biggest underlying change is that React Native’s TypeScript definitions are now generated from the React Native source.

Get Bharat Purohit’s stories in your inbox

Join Medium for free to get updates from this writer.

This should give developers better autocomplete, better type checking, and fewer differences between the actual RN API and its TypeScript definitions.

Faster Metro

React Native 0.87 improves Metro’s source-map generation, making it up to 2× faster and reducing memory usage by around 50%.

Swift Package Manager (SwiftPM)

React Native 0.87 introduces experimental support for Swift Package Manager (SwiftPM) for iOS projects. SwiftPM is Apple’s native dependency-management system for Swift and Apple platforms.

Press enter or click to view image in full size

Benefits for using Swift Package Manager

  • Alternative to CocoaPods for managing iOS dependencies.
  • Can reduce the need for Ruby, Bundler, and CocoaPods in the iOS setup.
  • Uses Apple’s native package-management system.
  • Can make iOS project setup and CI environments simpler.
  • Existing React Native projects do not have to migrate immediately.

AGP 9 Support

React Native 0.87 adds support for Android Gradle Plugin 9. For existing projects, developers may need to update:

  • AGP → 9.x
  • Kotlin → 2.0+
  • compileSdk → 37
  • Add recommended compatibility flags in gradle.properties
android.builtInKotlin=false
android.newDsl=false

Node.js 22 & Kotlin 2.0+

React Native 0.87 updates its minimum development requirements to newer toolchain versions:

  • Node.js → 22.13.0+
  • Kotlin → 2.0+ (RN 0.87 bundles Kotlin 2.2.0)

API Cleanup

React Native 0.87 removes several old and deprecated APIs to keep the framework cleaner and easier to maintain.

Developers may need to update code using APIs such as:

  • InteractionManager → use requestIdleCallback
  • *Properties types → use *Props
  • NativeMethods → use HostInstance
  • Old StatusBar props and other deprecated APIs have been removed.

Before

import { InteractionManager } from 'react-native';

InteractionManager.runAfterInteractions(() => {
loadData();
});

After

requestIdleCallback(() => {
loadData();
});

Conclusion
React Native 0.87 focusing on make development faster, cleaner, and more predictable.

The Strict TypeScript API brings better type safety and a clearer public API.

Faster Metro improves source generation while reducing memory usage.

Swift Package Manager gives iOS developers an alternative to CocoaPods.
AGP 9 support updates the Android build ecosystem with newer tooling requirements.
The release also removes several deprecated APIs and cleans up the framework.
Overall, RN 0.87 is a strong foundation-focused release with improvements for both developers and projects.

--

--