React Native - 2021 年下半年回顾
虽然我们仍然对 React Native 0.67 的发布感到兴奋,但我们想花点时间庆祝社区在上半年取得的成就,并分享我们对 React Native 未来发展的展望。
具体来说,2021 年下半年对我们和社区来说都是令人兴奋的半年,我们有机会在开源生态系统中投入更多。我们改进了一些流程,并从头开始创建了新的流程,这将帮助你、我们和社区享受更好的 React Native 体验。
仓库健康状况
在 2021 年下半年,我们投入精力解决了我们的仓库多年来积累的一些开源债务。具体来说,我们的大部分精力都集中在 pull request 上。我们建立了一个内部流程,以确保所有新的 pull request 都能得到及时处理。
虽然这不是一个完整的列表,但我们想重点介绍一些我们从贡献者那里收到的 有影响力的 PR
- 无障碍功能
- #31630
添加了 Flatlist 对进入/退出集合的支持
,作者:@anaskhraza
- #31630
- 崩溃
- #29452
修复 - TextInput Drawable 以避免空指针异常运行时错误
,作者:@fabriziobertoglio1987
- #29452
- 显示
- #31777
修复:TouchableNativeFeedback ripple 在上次触摸位置开始
,作者:@intergalacticspacehighway - #31789
修复 Android 上大于 64 KB 的 blobs 支持
,作者:@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 dismiss modal
,作者:@intergalacticspacehighway - #32179
修复:多行 textinput 在尝试移动光标时开始“抖动”。
,作者:@xiankuncheng - #29039
修复使点击父边界外视图在 Android 上工作的问题
,作者:@hsource
- #28995
- 性能
- #31764
优化 iOS 上的字体处理
,作者:@Adlai-Holler - #32536
不要在分屏时重建应用组件
,作者:@Somena1
- #31764
- 测试
- #31401
为 VirtualizedList 渲染怪癖添加单元测试
,作者:@NickGerleman
- #31401
其中一些 PR 解决了影响 Meta 和整个 OSS 社区的问题,这从他们关闭的相应问题上的反应数量可以看出。
还有很多 PR 我们想提及,我们再次感谢所有花费时间帮助我们解决错误和改进 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 年初,我们分享了我们的 多平台愿景,并且我们在 Desktop 和 VR 上成功推广了 React Native。
我们期待将平台特定的 收敛模式 融入到 React Native 体验中。
最后,我们要再次感谢社区在 2021 年下半年给予的巨大支持。看到贡献者们齐心协力,在 GitHub 上互相支持,修复错误,分享他们的经验并帮助我们将 React Native 交付给数百万用户,这总是令人惊叹。
敬请期待,并期待 更加精彩的 2022 年 🎉!