React Native - 2021年下半年回顾
虽然我们都对 React Native 0.67 的发布感到兴奋,但我们想借此机会 **庆祝** 社区在过去半年取得的成就,并分享我们对 React Native 未来发展方向的 **展望**。
具体来说,2021 年下半年对我们和社区来说都是一个 令人兴奋的时期,我们有机会更多地投资于我们的开源生态系统。我们改进了一些流程,并从头开始创建了新的流程,这将有助于您、我们和社区获得 **更好** 的 React Native 体验。
代码库健康状况
在 2021 年下半年,我们投入精力解决代码库多年来积累的一些 *开源债务*。具体来说,我们的大部分精力都集中在 **拉取请求** 上。我们建立了一个内部流程,以确保所有新的拉取请求都能得到及时处理。
虽然这不是一个完整的列表,但我们想重点介绍一些我们从贡献者那里收到的 **有影响力** 的 PR。
- 可访问性
- #31630
FlatList 添加了对集合进入/退出支持
由 @anaskhraza 贡献
- #31630
- 崩溃
- #29452
修复 - TextInput Drawable 以避免空指针异常运行时错误
由 @fabriziobertoglio1987 贡献
- #29452
- 显示
- #31777
修复:TouchableNativeFeedback 波纹效果从上一次触摸位置开始
由 @intergalacticspacehighway 贡献 - #31789
修复:Android 上支持大于 64 KB 的 Blob
由 @tomekzaw 贡献 - #31007
修复:selectionColor 不会设置 Android TextInput 选择句柄的样式
由 @fabriziobertoglio1987 贡献 - #32398
修复 Android 边框定位回归
由 @oblador 贡献 - #29099
[Android] 允许设置单独的(左、上、右、下)点状/虚线
由 @fabriziobertoglio1987 贡献 - #29117
[Android] 修复字体粗细数值
由 @fabriziobertoglio1987 贡献
- #31777
- 交互
- #28995
[Android] 修复占位符为空时 TextInput 光标跳到右侧
由 @fabriziobertoglio1987 贡献 - #28952
[Android] 修复 FlatList 中不可选择的文本
由 @fabriziobertoglio1987 贡献 - #29046
[Android] 使用数字键时 onKeyPress 事件未触发
由 @fabriziobertoglio1987 贡献 - #31500
修复 #29319 - iOS 关闭模态
由 @intergalacticspacehighway 贡献 - #32179
修复:尝试移动光标时,多行文本输入开始“抖动”。
由 @xiankuncheng 贡献 - #29039
修复使 Android 上父级边界外的视图上的点击生效
由 @hsource 贡献
- #28995
- 性能
- #31764
优化 iOS 上的字体处理
由 @Adlai-Holler 贡献 - #32536
在分屏模式下不要重建应用组件
由 @Somena1 贡献
- #31764
- 测试
- #31401
为 VirtualizedList 渲染特性添加单元测试
由 @NickGerleman 贡献
- #31401
其中一些 PR 解决了一些影响 Meta 和整个开源社区的问题,因为它们解决了相关问题中大量的反馈。
还有很多 PR 我们想特别指出,我们再次 **感谢** 所有花费时间帮助我们解决 bug 和改进 React Native 的人。
社区互动
在本期开始时,我们设定了一个目标,即更多地与我们的社区 **沟通**,并制定流程以保持这种行为。以下是我们在 2021 年下半年的一些互动:
- 我们有机会参加 React Native EU,并由 Joshua Gross 做了演讲 - 将 Fabric 渲染器引入“Facebook”应用
- 我们在 Reddit 上举办了 “问我们任何问题”(AUA),并收到了 100 多个问题!AUA 是一个绝佳的机会,可以让我们了解社区参与度,并让大家提出任何问题。如果您还没有这样做,请务必查看答案,因为其中一些答案非常有见地。
- 我们分享了我们的多平台愿景,这份指南针对Android 12 和 iOS 15 的一些注意事项,以及 Hermes 成为 React Native 默认 JS 引擎的进展和愿景!
- 我们自己的Kevin Gozali 参加了React Native Radio 播客的一期节目,讨论了新架构。
- 在ReactConf 2021 上,ReactConf 的Rick Hanlon 分享了 React 和 React Native 的统一多平台愿景。此外,Eric Rozell 和Steven Moyes 分享了 React Native Desktop 在支持 Meta 和 Microsoft 应用方面取得的惊人进展,并展示了多平台愿景在实践中的应用。
除了在 2021 年下半年分享更多更新外,我们也比以往任何时候都更加依赖我们的社区。我们依靠贡献者提供的关键反馈,他们在试用新架构材料的早期草稿。此外,在调试关键版本问题和改进方面,我们也得到了社区专业知识的大力支持。
我们的社区为 React Native 带来了丰富的知识,我们需要继续培养它。
新架构的推出和版本发布
2022 年将是新架构开源之年。
我们一直在努力交付将新架构推出到应用和库所需的架构。我们邀请了一些合作伙伴和核心贡献者/库维护者来改进我们对新架构的支持,以获取早期反馈。
我们现在正准备在我们的网站上发布一个新的指南:新架构入门指南。这将成为我们将于 2022 年发布的一系列材料的入口点,并将帮助您迁移/使用新架构启动您的项目。
此外,我们想强调提供关于新架构材料的反馈的重要性。我们仍在完成最后的细节,您的意见将有助于每个人更无缝地采用新架构。
版本发布在新架构的推出中发挥着至关重要的作用。我们上半年的目标是确保任何阻碍发布的问题都不会停滞不前。我们通过澄清和改进流程和责任来解决这个问题,以提高问责制。我们的版本协调现在发生在一个专门的讨论库中,并拥有更清晰的版本问题报告。
在 2022 年上半年,我们将继续迭代版本发布责任,以支持新架构的推出。如果您想帮助测试候选版本或进行改进工作,请随时加入讨论!
走向移动及更远
正如您从ReactConf 演讲阵容中看到的,React Native 不仅限于 Android 和 iOS。
2021 年初,我们分享了我们的多平台愿景,并且我们在桌面和 VR 上成功推出了 React Native。
我们期待着将平台特定的模式融合到 React Native 体验中。
最后,我们要再次感谢社区在 2021 年下半年给予的大力支持。看到贡献者们齐心协力,在 GitHub 上互相支持,修复错误,分享他们的经验并帮助我们为数百万用户提供 React Native,这总是令人惊叹。
敬请期待,期待一个更加精彩的 2022 年 🎉!