Mobile Application Development

React Native 0.87 Unveils Strict TypeScript Integration and Experimental Swift Package Manager Support

The release of React Native 0.87 marks a significant maturation point for the cross-platform development framework, establishing a new baseline for type safety and build-system modernization. By transitioning the Strict TypeScript API to a default status and introducing experimental support for Apple’s Swift Package Manager (SwiftPM), the framework signals a departure from legacy dependency management and loosely typed JavaScript interfaces. This update, which follows a trajectory of iterative refinements begun in early 2025, forces a synchronization of the React Native ecosystem with modern tooling, requiring developers to meet elevated minimum requirements including Node.js 22, Android Gradle Plugin 9, and Kotlin 2.0.

The Evolution of Type Safety: From Preview to Standard

The shift to a Strict TypeScript API as the default configuration for all new and existing projects is the hallmark of the 0.87 release. This transition is not merely a syntactic preference but a structural overhaul of how developers interact with the framework’s core components. First introduced as an opt-in preview in version 0.80 alongside the deprecation of deep imports, the Strict TypeScript API aims to eliminate ambiguity in component usage.

Historically, React Native’s reliance on loosely defined types allowed for significant developer flexibility but introduced runtime errors that were difficult to debug. By enforcing strict typing, the framework now provides comprehensive documentation and IntelliSense support directly within the developer’s editor. Hovering over standard components such as TextInput now yields detailed metadata, parameter definitions, and doc comments that were previously obscured by legacy abstraction layers.

For the developer community, this change necessitates a period of migration. While many applications will be compatible with the new defaults, the ecosystem-wide nature of the update means that library authors must now ensure their own packages adhere to these standards to avoid integration conflicts. To assist in this transition, the React Native team has provided an "Agent-driven upgrade" path through the community-led /migrate-to-strict-api skill, which supplements existing automated ESLint fixers. For organizations requiring more time to adapt, a temporary opt-out mechanism remains available; however, it is strictly time-bound, with plans to remove legacy TypeScript support entirely in version 0.89.

Modernizing the iOS Pipeline with Swift Package Manager

Perhaps the most ambitious engineering feat in version 0.87 is the introduction of experimental Swift Package Manager (SwiftPM) support for iOS. For years, the React Native ecosystem has relied heavily on CocoaPods as the primary dependency manager. While functional, the CocoaPods-centric workflow often involves complex Ruby environments, Bundler dependencies, and frequent synchronization issues between native pods and the JavaScript project.

React Native 0.87 - Strict TypeScript API, Metro Update, Swift Package Manager, AGP 9 Support

The new SwiftPM integration is designed to be an additive, opt-in alternative that leverages the same prebuilt XCFrameworks already distributed by the framework. By utilizing native Xcode integration, the setup bypasses the need for external Ruby-based tools. A key benefit is the simplified maintenance cycle: once the initial npx react-native spm --deintegrate command is executed, developers are no longer required to run a "pod install" step after every change to native dependencies. The project structure dynamically adapts to dependency modifications, streamlining the inner-loop development process.

To achieve this, the engineering team underwent a comprehensive refactoring of how React Native packages are shipped. The move to a more rigid XCFramework structure ensures that header files are resolved correctly, addressing the long-standing "header search path" issues that often plagued complex builds. This change, while highly beneficial for project stability, does require developers to adopt more explicit import syntax, such as using <React/RCTAppDelegate.h> rather than bare-form imports.

Android Infrastructure and AGP 9 Adoption

On the Android front, version 0.87 achieves a milestone by becoming the first release to support Android Gradle Plugin (AGP) 9. This update is critical for maintaining compatibility with the latest Android Studio releases and performance improvements provided by the Android build toolchain. AGP 9 introduces significant changes to the Gradle build DSL, and by supporting it early, React Native ensures that developers can leverage the latest optimizations in build speed and incremental compilation.

However, the adoption of AGP 9 is not without its complexities. The framework currently recommends that developers explicitly opt out of certain experimental features—specifically the built-in Kotlin and new DSL behaviors—by modifying the android/gradle.properties file. These configurations act as a bridge, ensuring stability while the broader Android ecosystem transitions to the new standards set by Google. This proactive support demonstrates a commitment to aligning React Native with the official Android development trajectory, reducing the "lag" that often exists between native Android updates and cross-platform framework compatibility.

Performance and Tooling Efficiency

Complementing these major structural changes is the update to Metro 0.87. Metro, the JavaScript bundler for React Native, continues to receive performance-oriented enhancements aimed at reducing build times and memory consumption. By refining the resolution algorithms and cache management systems, Metro 0.87 provides a leaner experience that is particularly noticeable in large-scale applications with thousands of modules.

The performance gains in Metro are critical, as the framework continues to grow in complexity. As projects scale, the time required to bundle assets and compile native code often becomes the primary bottleneck in the development lifecycle. The improvements in version 0.87, combined with the removal of unnecessary overhead from the iOS build process, represent a significant effort to keep the "hot-reload" experience as responsive as possible.

React Native 0.87 - Strict TypeScript API, Metro Update, Swift Package Manager, AGP 9 Support

Implications of the Toolchain Requirements

The escalation of minimum toolchain requirements—Node.js 22, Android Gradle Plugin 9, and Kotlin 2.0+—signals a clear "break from the past." By enforcing these versions, the React Native core team is effectively sunsetting support for older, potentially insecure, or underperforming environments. While this places an immediate burden on teams maintaining legacy applications, the long-term impact is a more homogenous and predictable development environment.

From an industry perspective, this aligns with the broader movement in web and mobile development to standardize on more modern, high-performance engines. Node.js 22, for instance, offers improved performance and security features that are vital for modern build tools. Similarly, Kotlin 2.0 brings significant enhancements to compilation speeds and type safety, which are essential for maintaining a stable bridge between the native layer and the JavaScript thread.

Chronology and Governance

The path to 0.87 has been characterized by high levels of community collaboration and rigorous RFC-driven design. The journey began in mid-2025 with the RFC #0994, which outlined the design for the SwiftPM integration, and continued with RFC #1006, which mapped out the ecosystem-wide adoption of AGP 9. These public design documents allowed for transparency and community feedback, which ultimately resulted in a more robust implementation of the new APIs.

The release also highlights the importance of the React Native community in maintaining the framework’s vitality. With 265 commits from 74 contributors, the update is a product of distributed global effort. The acknowledgement of these contributors reflects the framework’s shift toward a more community-governed model, where major architectural decisions are vetted through public discussions rather than unilateral internal mandates.

Conclusion: A Foundation for the Future

React Native 0.87 is a pivotal release that prioritizes long-term maintainability and performance over backward compatibility at all costs. By mandating the Strict TypeScript API and modernizing the iOS build pipeline through SwiftPM, the framework has effectively raised the bar for what is expected of a professional-grade mobile development environment.

For organizations currently using React Native, the transition to 0.87 should be treated as a strategic upgrade. While the immediate tasks involve updating build configurations and addressing potential type-safety errors, the resulting infrastructure will be significantly more resilient, easier to debug, and better aligned with the native platform ecosystems. As the framework moves forward, these changes will likely serve as the bedrock for further innovations in performance and developer experience, ensuring that React Native remains a competitive choice for large-scale enterprise applications in the years to come.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button
Lock It Soft
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.