React Native - 2021 年下半年回顾
在我们都为 React Native 0.67 版本的发布感到兴奋不已之际,我们想花点时间庆祝社区在过去半年中取得的成就,并分享我们为 React Native 的未来所做的展望。
具体来说,2021 年下半年对我们和社区来说都是一个令人兴奋的半年,我们有机会在开源生态系统方面投入更多。我们改进了一些流程,并从头开始创建了新流程,这将帮助您、我们和社区享受更好的 React Native 体验。
仓库健康度
在 2021 年下半年,我们投入精力解决了仓库多年来积累的一些开源债。具体来说,我们大部分精力都集中在拉取请求上。我们建立了一个内部流程,以确保所有新的拉取请求都能及时处理。
尽管这并非完整列表,但我们想重点强调一些我们从贡献者那里收到的有影响力的 PR:
- 无障碍
- #31630
Added Support for Entrance/exit from collection by Flatlist
by @anaskhraza
- #31630
- 崩溃
- #29452
Fix - TextInput Drawable to avoid Null Pointer Exception RuntimeError
by @fabriziobertoglio1987
- #29452
- 显示
- #31777
fix: TouchableNativeFeedback ripple starts on previous touch location
by @intergalacticspacehighway - #31789
Fix support for blobs larger than 64 KB on Android
by @tomekzaw - #31007
Fix selectionColor doesn't style Android TextInput selection handles
by @fabriziobertoglio1987 - #32398
Fix Android border positioning regression
by @oblador - #29099
[Android] Allows to set individual (left,top,right,bottom) dotted/dashed
by @fabriziobertoglio1987 - #29117
[Android] Fix font weight numeric values
by @fabriziobertoglio1987
- #31777
- 交互
- #28995
[Android] Fix TextInput Cursor jumping to the right when placeholder null
by @fabriziobertoglio1987 - #28952
[Android] Fix non selectable Text in FlatList
by @fabriziobertoglio1987 - #29046
[Android] onKeyPress event not fired with numeric keys
by @fabriziobertoglio1987 - #31500
fix#29319 - ios dismiss modal
by @intergalacticspacehighway - #32179
Fix: multiline textinput start "jerking" when trying to move cursor.
by @xiankuncheng - #29039
Fix to make taps on views outside parent bounds work on Android
by @hsource
- #28995
- 性能
- #31764
Optimize font handling on iOS
by @Adlai-Holler - #32536
Don't reconstruct app component on split-screen
by @Somena1
- #31764
- 测试
- #31401
Add unit tests for VirtualizedList render quirks
by @NickGerleman
- #31401
其中一些 PR 解决了对 Meta 和整个开源社区都产生影响的问题,从它们所关闭的相应 issue 的点赞数就可见一斑。
还有很多我们想点名的 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 年 🎉!