Mobile Development

React Native 0.87 Arrives with Strict TypeScript as Default and Experimental Swift Package Manager Support

The mobile development landscape continues to evolve rapidly as the core team behind Meta’s cross-platform framework officially rolls out React Native 0.87. This major milestone release introduces several transformative updates designed to streamline developer workflows, modernize the underlying toolchain, and improve long-term code quality. Among the headline features are the integration of the Strict TypeScript API as the default JavaScript environment, a significant update to the Metro bundler, and experimental support for the Swift Package Manager on iOS. These upgrades arrive alongside raised minimum toolchain requirements, signaling the framework’s ongoing commitment to modern engineering standards.

The path toward React Native 0.87 has been carefully orchestrated over several development cycles. The journey began with the initial opt-in preview of the Strict TypeScript API in version 0.80, which rolled out alongside the deprecation of deep imports. Throughout subsequent iterations, the core contributors collaborated closely with the open-source community, popular library maintainers, and key industry partners to refine the API surface, finalize root exports, and squash incompatibilities. By version 0.87, the ecosystem has matured enough to warrant making the Strict TypeScript API the default for all new and upgraded projects, phasing out legacy patterns in preparation for their complete removal in version 0.88.

At the heart of this release is the enforced transition to the Strict TypeScript API. This ecosystem-wide shift introduces intentional breaking changes designed to enforce better typing practices, eliminate ambiguous imports, and provide a drastically improved developer experience. One of the most immediate benefits developers will notice is the inclusion of comprehensive documentation comments directly on core symbols. When hovering over components such as TextInput within a modern IDE, developers are now greeted with rich, contextual type information and inline documentation rather than generic or missing type definitions.

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

While the upgrade path has been engineered to be as frictionless as possible—with many standard applications transitioning with minimal errors—breaking changes across the public API surface require attention. To assist development teams, the core maintainers have published a detailed migration guide alongside an automated ESLint fixer. Furthermore, teams utilizing agent-driven upgrades can leverage the newly introduced /migrate-to-strict-api skill to automate the process further. For projects requiring additional runway, a temporary opt-in bridge remains available through the inclusion of a custom condition inside the tsconfig.json file, though developers are strongly advised to treat this as a temporary fix ahead of version 0.88.

In tandem with JavaScript improvements, iOS developers receive a major experimental capability: native support for the Swift Package Manager (SwiftPM). Historically, React Native projects on Apple platforms have relied heavily on CocoaPods for dependency management, requiring Ruby, Bundler, and external pod installations. Version 0.87 introduces an additive, opt-in alternative that consumes the same prebuilt XCFrameworks already published by the framework, requiring only Xcode to function.

Adopting this experimental workflow is achieved via a straightforward command line instruction that injects Swift package references directly into the existing .xcodeproj without disrupting project signing, capabilities, or custom build phases. Crucially, this setup is designed to be a one-time configuration. Subsequent native dependency additions or removals automatically trigger autolinking during the standard build process, eliminating the need to execute manual dependency resolution steps. To support this architecture, the core team restructured precompiled binaries into dedicated header-only frameworks, standardizing header search paths while maintaining byte-identical parity with legacy source pods.

Android developers are similarly impacted by modernization efforts, specifically through the adoption of the Android Gradle Plugin (AGP) version 9. As a major release introducing significant build-system alterations, AGP 9 requires careful configuration to maintain build stability. The React Native team currently recommends opting out of the built-in Kotlin and new DSL behaviors shipped natively with AGP 9 by explicitly setting corresponding flags within the android/gradle.properties file. This bridge ensures smooth compilation while the broader ecosystem prepares for universal AGP 9 adoption ahead of future AGP 10 releases.

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

Complementing these platform-specific updates is an upgrade to the Metro JavaScript bundler, jumping from version 0.84 to 0.87. This iteration focuses heavily on performance optimization, delivering faster startup times, reduced memory overhead during compilation phases, and enhanced HMR (Hot Module Replacement) reliability across large-scale codebases.

The release of React Native 0.87 also enforces higher baseline requirements across the entire development toolchain, reflecting the broader industry movement toward modern runtimes and compilers. Projects upgrading to this version must now utilize Node.js 22, Android Gradle Plugin 9, and Kotlin 2.0 or higher. Consequently, version 0.84 has officially transitioned out of active support in accordance with the project’s established support lifecycle policy.

Industry analysts and engineering leads view these sweeping changes as a calculated and necessary maturation of the framework. By enforcing strict typing and modernizing packaging pipelines for both iOS and Android, Meta and the open-source contributor community are effectively reducing technical debt across millions of lines of production code. Enterprises utilizing React Native for cross-platform deployment stand to benefit from reduced build times, enhanced maintainability, and closer alignment with native platform tooling standards.

The successful launch of React Native 0.87 represents a collaborative triumph, synthesizing 265 individual commits contributed by 74 developers from across the global tech community. Upgrading existing applications can be achieved by utilizing the official React Native Upgrade Helper alongside updated documentation portals. Meanwhile, new project initialization can be executed via the updated command-line interface, and the Expo ecosystem is slated to incorporate version 0.87 within upcoming canary releases. As the mobile ecosystem continues to demand higher performance and tighter native integration, React Native 0.87 establishes a robust, modernized foundation for the next generation of cross-platform applications.

Related Articles

Leave a Reply

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

Back to top button