React Native - 2021 年下半年回顾
当我们都还沉浸在 React Native 0.67 的发布所带来的兴奋中时,我们想花点时间庆祝社区在过去半年中取得的成就,并分享我们为 React Native 的未来所制定的展望。
具体来说,2021 年下半年对我们和社区来说都是激动人心的半年,我们有机会在开源生态系统中投入更多。我们改进了一些流程,并从头开始创建了新流程,这将帮助您、我们和社区享受更好的 React Native 体验。
仓库健康状况
在 2021 年下半年,我们投入精力解决仓库多年来积累的一些*开源技术债*。具体来说,我们的大部分精力都集中在**拉取请求**上。我们建立了一个内部流程,以确保所有新的拉取请求都能及时得到处理。
尽管这不是一个完整的列表,但我们想重点强调一些我们从贡献者那里收到的**有影响力的**拉取请求
- 无障碍功能
- #31630
添加了 Flatlist 的集合进入/退出支持
by @anaskhraza
- #31630
- 崩溃
- #29452
修复 - TextInput Drawable 以避免空指针异常运行时错误
by @fabriziobertoglio1987
- #29452
- 显示
- #31777
修复:TouchableNativeFeedback 波纹从上一次触摸位置开始
by @intergalacticspacehighway - #31789
修复 Android 上对大于 64 KB blob 的支持
by @tomekzaw - #31007
修复 selectionColor 不影响 Android TextInput 选择手柄样式的问题
by @fabriziobertoglio1987 - #32398
修复 Android 边框定位回归问题
by @oblador - #29099
[Android] 允许设置单独的(左、上、右、下)点/虚线
by @fabriziobertoglio1987 - #29117
[Android] 修复字体粗细数值
by @fabriziobertoglio1987
- #31777
- 交互
- #28995
[Android] 修复当占位符为空时 TextInput 光标跳到右侧的问题
by @fabriziobertoglio1987 - #28952
[Android] 修复 FlatList 中文本不可选择的问题
by @fabriziobertoglio1987 - #29046
[Android] onKeyPress 事件未与数字键一起触发
by @fabriziobertoglio1987 - #31500
修复 #29319 - iOS 模态框关闭
by @intergalacticspacehighway - #32179
修复:多行文本输入框在移动光标时开始“抖动”。
by @xiankuncheng - #29039
修复使 Android 上父边界外部视图的点击起作用
by @hsource
- #28995
- 性能
- #31764
优化 iOS 上的字体处理
by @Adlai-Holler - #32536
在分屏时不要重建应用组件
by @Somena1
- #31764
- 测试
- #31401
为 VirtualizedList 渲染怪异行为添加单元测试
by @NickGerleman
- #31401
鉴于它们所关闭的相应问题上的反应数量,其中一些拉取请求解决了同时影响 Meta 和整个开源社区的问题。
还有许多我们想提及的拉取请求,我们再次衷心**感谢**所有花费时间帮助我们解决错误并改进 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 年** 🎉!