{"id":7861,"date":"2026-09-24T22:09:24","date_gmt":"2026-09-24T22:09:24","guid":{"rendered":"https:\/\/lockitsoft.com\/?p=7861"},"modified":"2026-09-24T22:09:24","modified_gmt":"2026-09-24T22:09:24","slug":"react-native-0-87-unveils-strict-typescript-integration-and-experimental-swift-package-manager-support","status":"publish","type":"post","link":"https:\/\/lockitsoft.com\/?p=7861","title":{"rendered":"React Native 0.87 Unveils Strict TypeScript Integration and Experimental Swift Package Manager Support"},"content":{"rendered":"<p>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\u2019s 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.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/lockitsoft.com\/?p=7861\/#The_Evolution_of_Type_Safety_From_Preview_to_Standard\" >The Evolution of Type Safety: From Preview to Standard<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/lockitsoft.com\/?p=7861\/#Modernizing_the_iOS_Pipeline_with_Swift_Package_Manager\" >Modernizing the iOS Pipeline with Swift Package Manager<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/lockitsoft.com\/?p=7861\/#Android_Infrastructure_and_AGP_9_Adoption\" >Android Infrastructure and AGP 9 Adoption<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/lockitsoft.com\/?p=7861\/#Performance_and_Tooling_Efficiency\" >Performance and Tooling Efficiency<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/lockitsoft.com\/?p=7861\/#Implications_of_the_Toolchain_Requirements\" >Implications of the Toolchain Requirements<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/lockitsoft.com\/?p=7861\/#Chronology_and_Governance\" >Chronology and Governance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/lockitsoft.com\/?p=7861\/#Conclusion_A_Foundation_for_the_Future\" >Conclusion: A Foundation for the Future<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"The_Evolution_of_Type_Safety_From_Preview_to_Standard\"><\/span>The Evolution of Type Safety: From Preview to Standard<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>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\u2019s 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.<\/p>\n<p>Historically, React Native\u2019s 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\u2019s editor. Hovering over standard components such as <code>TextInput<\/code> now yields detailed metadata, parameter definitions, and doc comments that were previously obscured by legacy abstraction layers.<\/p>\n<p>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 &quot;Agent-driven upgrade&quot; path through the community-led <code>\/migrate-to-strict-api<\/code> 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.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Modernizing_the_iOS_Pipeline_with_Swift_Package_Manager\"><\/span>Modernizing the iOS Pipeline with Swift Package Manager<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>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.<\/p>\n<figure class=\"article-inline-figure\"><img decoding=\"async\" src=\"https:\/\/reactnative.dev\/img\/logo-share.png\" alt=\"React Native 0.87 - Strict TypeScript API, Metro Update, Swift Package Manager, AGP 9 Support\" class=\"article-inline-img\" loading=\"lazy\" \/><\/figure>\n<p>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 <code>npx react-native spm --deintegrate<\/code> command is executed, developers are no longer required to run a &quot;pod install&quot; step after every change to native dependencies. The project structure dynamically adapts to dependency modifications, streamlining the inner-loop development process.<\/p>\n<p>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 &quot;header search path&quot; 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 <code>&lt;React\/RCTAppDelegate.h&gt;<\/code> rather than bare-form imports.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Android_Infrastructure_and_AGP_9_Adoption\"><\/span>Android Infrastructure and AGP 9 Adoption<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>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.<\/p>\n<p>However, the adoption of AGP 9 is not without its complexities. The framework currently recommends that developers explicitly opt out of certain experimental features\u2014specifically the built-in Kotlin and new DSL behaviors\u2014by modifying the <code>android\/gradle.properties<\/code> 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 &quot;lag&quot; that often exists between native Android updates and cross-platform framework compatibility.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Performance_and_Tooling_Efficiency\"><\/span>Performance and Tooling Efficiency<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>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.<\/p>\n<p>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 &quot;hot-reload&quot; experience as responsive as possible.<\/p>\n<figure class=\"article-inline-figure\"><img decoding=\"async\" src=\"https:\/\/reactnative.dev\/blog\/assets\/0.87-symbol-docs-before.png\" alt=\"React Native 0.87 - Strict TypeScript API, Metro Update, Swift Package Manager, AGP 9 Support\" class=\"article-inline-img\" loading=\"lazy\" \/><\/figure>\n<h3><span class=\"ez-toc-section\" id=\"Implications_of_the_Toolchain_Requirements\"><\/span>Implications of the Toolchain Requirements<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The escalation of minimum toolchain requirements\u2014Node.js 22, Android Gradle Plugin 9, and Kotlin 2.0+\u2014signals a clear &quot;break from the past.&quot; 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.<\/p>\n<p>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.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Chronology_and_Governance\"><\/span>Chronology and Governance<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>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.<\/p>\n<p>The release also highlights the importance of the React Native community in maintaining the framework\u2019s vitality. With 265 commits from 74 contributors, the update is a product of distributed global effort. The acknowledgement of these contributors reflects the framework&#8217;s shift toward a more community-governed model, where major architectural decisions are vetted through public discussions rather than unilateral internal mandates.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Conclusion_A_Foundation_for_the_Future\"><\/span>Conclusion: A Foundation for the Future<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>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.<\/p>\n<p>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.<\/p>\n<!-- RatingBintangAjaib -->","protected":false},"excerpt":{"rendered":"<p>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\u2019s Swift Package Manager (SwiftPM), the framework signals a departure from legacy dependency management &hellip;<\/p>\n","protected":false},"author":18,"featured_media":7860,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[4,5,16,79,3567,3,10,651,9,1258,432,3566,1259,278],"class_list":["post-7861","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile-application-development","tag-apps","tag-development","tag-experimental","tag-integration","tag-manager","tag-mobile","tag-native","tag-package","tag-react","tag-strict","tag-support","tag-swift","tag-typescript","tag-unveils"],"_links":{"self":[{"href":"https:\/\/lockitsoft.com\/index.php?rest_route=\/wp\/v2\/posts\/7861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lockitsoft.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lockitsoft.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lockitsoft.com\/index.php?rest_route=\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/lockitsoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7861"}],"version-history":[{"count":0,"href":"https:\/\/lockitsoft.com\/index.php?rest_route=\/wp\/v2\/posts\/7861\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lockitsoft.com\/index.php?rest_route=\/wp\/v2\/media\/7860"}],"wp:attachment":[{"href":"https:\/\/lockitsoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lockitsoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lockitsoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}