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] 修复当 placeholder 为 null 时 TextInput 光标跳到右侧的问题,贡献者:@fabriziobertoglio1987 - #28952
[Android] 修复 FlatList 中不可选中的 Text,贡献者:@fabriziobertoglio1987 - #29046
[Android] numeric 键上的 onKeyPress 事件未触发,贡献者:@fabriziobertoglio1987 - #31500
修复#29319 - iOS dismiss modal,贡献者:@intergalacticspacehighway - #32179
修复:多行文本输入框在尝试移动光标时开始“抖动”。,贡献者:@xiankuncheng - #29039
修复以使 Android 上视图边界外的点击事件生效,贡献者:@hsource
- #28995
- 性能
- #31764
优化 iOS 上的字体处理,贡献者:@Adlai-Holler - #32536
分屏时不要重新构建应用组件,贡献者:@Somena1
- #31764
- 测试
- #31401
为 VirtualizedList 的渲染怪癖添加单元测试,贡献者:@NickGerleman
- #31401
其中一些 PR 解决了影响 Meta 和整个开源社区的问题,这从它们关闭的相应 issue 的反应数量可以看出。
还有许多 PR 我们想特别提及,我们想再次 感谢 所有花费时间帮助我们修复 bug 和改进 React Native 的人们。
社区参与
在上半年开始时,我们设定了一个目标,要更多地与社区 沟通,并制定一个持续的流程。以下是我们 2021 年下半年的部分活动:
- 我们有机会参加 React Native EU,Joshua Gross 发表了题为 Bringing the Fabric renderer to the “Facebook” app 的演讲。
- 我们在 Reddit 上举办了一场 “Ask Us Anything“ (AUA) 活动,收到了 100 多个问题!AUA 是一个绝佳的机会,让我们了解社区的参与度,也让大家可以提出任何问题。如果您还没有看过,请务必查看这些答案,其中一些非常有见地。
- 我们分享了我们的 多平台愿景,为 Android 12 和 iOS 15 的注意事项提供了指南,以及 Hermes 成为 React Native 默认 JS 引擎的愿景 和进展!
- 我们团队的 Kevin Gozali 出现在了 React Native Radio 播客 中,讨论了新架构。
- 在 ReactConf 2021 上,Rick Hanlon 分享了 React 和 React Native 的统一多平台愿景。此外,Eric Rozell 和 Steven Moyes 分享了 React Native Desktop 在支持 Meta 和 Microsoft 应用方面取得的巨大进展,并展示了多平台愿景的实际应用。
除了在 2021 年下半年分享更多更新外,我们还比以往任何时候都更 依赖 我们的社区。我们依靠贡献者在早期测试新架构材料时的关键反馈。此外,在调试关键发布问题和改进方面,我们得到了社区专业知识的大力支持。
我们的社区为 React Native 带来了丰富的知识,我们需要继续培养它。
新架构的推出和发布
2022 年将是 开源新架构 之年。
我们一直在努力提供将新架构推送到应用程序和库所需的基础设施。我们与一些合作伙伴和核心贡献者/库维护者合作,以完善我们对新架构的支持,并获得早期反馈。
我们现在正在准备在我们网站上发布一个新指南:新架构入门。这将是我们将于 2022 年发布的材料集合的入口点,它将帮助您迁移/开始您的新架构项目。
此外,我们想强调 提供对新架构材料反馈 的重要性。我们仍在完善最后细节的过程中,您的输入将帮助每个人更顺畅地采用新架构。
发布 在新架构的推广中起着至关重要的作用。我们上半年的目标是确保任何阻碍发布的 issue 不会停滞不前。我们通过 明确和改进流程及职责 来提高问责制,从而解决了这个问题。我们的发布协调现在在一个 专门的讨论代码库 中进行,并且 发布 issue 的报告也更加清晰。
在 2022 年上半年,我们将继续迭代发布职责,以支持新架构的推出。如果您想帮助测试候选版本或 进行改进,欢迎 加入讨论!
走向移动及更远
从 ReactConf 的演讲阵容 中可以看出,React Native 不仅仅是 Android 和 iOS。
早在 2021 年初,我们就分享了我们的 多平台愿景,并且成功地将 React Native 推广到了桌面和 VR 平台。
我们期待着将平台特定的 模式融合 到 React Native 的体验中。
最后,我们再次感谢社区在 2021 年下半年的巨大支持。看到贡献者们如何在 GitHub 上团结协作、互相支持,修复 bug,分享他们的知识,并帮助我们将 React Native 交付给数百万用户,这总是令人惊叹的。
敬请关注,期待一个 更加精彩的 2022 年 🎉!
