跳至主要内容

React Native 开源更新 2019 年 3 月

·阅读时间:5 分钟
Christoph Nakazawa
Christoph Nakazawa
Facebook 前工程师

在决定更多地投资 React Native 开源社区后,我们在 2018 年第四季度宣布了我们的 React Native 开源路线图

对于我们的第一个里程碑,我们专注于识别和改进我们社区中最显着的方面。我们的目标是减少未完成的拉取请求,减少项目的表面积,识别领先的用户问题,并建立社区管理指南。

在过去的两个月里,我们取得的进展超出了预期。继续阅读以了解更多详情

拉取请求

为了构建一个健康的社区,我们必须快速响应代码贡献。在过去的几年里,我们降低了审查社区贡献的优先级,并积累了 280 个拉取请求(2018 年 12 月)。在第一个里程碑中,我们将未完成的拉取请求数量减少到约 65 个。同时,每天打开的拉取请求平均数量从 3.5 个增加到 7 个,这意味着我们在过去三个月处理了大约 600 个拉取请求

我们合并了 近三分之二 并关闭了三分之一的拉取请求。如果它们已过时或质量较低,或者如果它们不必要地增加了项目的表面积,则会在未合并的情况下关闭它们。大多数合并的拉取请求修复了错误,改进了跨平台一致性或引入了新功能。值得注意的贡献包括改进类型安全性以及支持 AndroidX 的持续工作。

在 Facebook,我们从 master 运行 React Native,因此我们在更改进入 React Native 版本之前首先对其进行测试。在所有合并的拉取请求中,只有六个导致了问题:四个只影响内部开发,两个在候选版本状态下被捕获。

社区贡献中更显眼的一个是 更新的“RedBox”屏幕。这是一个很好的例子,说明了社区如何使开发者体验更加友好。

精简核心

React Native 目前拥有非常广阔的表面积,其中包含许多我们不在 Facebook 中大量使用的未维护的抽象。我们正在努力减少表面积,以使 React Native 更小,并允许社区更好地维护在 Facebook 中大部分未使用的抽象。

在第一个里程碑中,我们请求社区在精简核心项目中提供帮助。反响非常热烈,我们几乎无法跟上所有进展。查看不到一个月内完成的所有工作

我们最兴奋的是,维护人员已经开始修复长期存在的问题,添加测试并支持长期以来需要的功能。这些模块正在获得比以往在 React Native 中更多的支持,表明这对社区来说是一个巨大的进步。此类项目的示例包括 WebView,自提取以来 已收到许多拉取请求,以及现在由 社区成员维护的 CLI,并收到了急需的改进和修复。

领先的用户问题

12 月份,我们询问了社区他们 不喜欢 React Native 的哪些方面。我们汇总了回复并 回复了每一个问题。幸运的是,我们社区面临的许多问题也是 Facebook 遇到的问题。在我们的下一个里程碑中,我们计划解决一些主要问题。

投票数最高的问题之一是将 React Native 升级到较新版本时的开发者体验。不幸的是,我们自己并没有遇到这个问题,因为我们从 master 运行 React Native。值得庆幸的是,社区成员已经开始着手解决这个问题。

0.59 版本

如果没有 React Native 社区的帮助,特别是 Mike GrabowskiLorenzo Sciandra,我们将无法发布版本。我们希望改进发布管理流程,并计划从现在开始更多地参与其中。

  • 我们将与社区成员合作,为每个主要版本创建一篇博客文章。
  • 当人们升级到新版本时,我们将在 CLI 中直接显示重大更改。
  • 我们将缩短发布所需的时间。我们正在探索提高自动化测试的方法,并创建改进的手动测试计划。

许多这些计划将被纳入即将发布的 React Native 0.59 版本 中。0.59 将随附 React Hooks、Android 的全新 64 位 JavaScriptCore 版本以及许多性能和功能改进。它目前已发布为候选版本,预计在未来两周内将稳定。

后续步骤

未来两个月,我们将继续管理拉取请求 以保持正轨,同时开始减少未解决的 GitHub 问题的数量。我们将继续通过 Lean Core 项目缩减 React Native 的功能范围。我们计划解决社区排名前 5 的问题。随着社区指南的最终确定,我们将把注意力转向我们的网站和文档。

我们非常高兴能够在 3 月份邀请超过 10 位来自社区的贡献者到 Facebook 伦敦总部,帮助推动其中一些工作。我们很高兴您正在使用 React Native,并希望您在 2019 年能够看到和感受到我们正在进行的改进。我们将在几个月后再次发布更新,在此期间,我们将合并您的拉取请求! ⚛️✌️