React Native - 2021 年下半年回顧
雖然我們都還對 React Native 0.67 的發布感到興奮,但我們想花一點時間來慶祝社群在上半年取得的成就,並分享我們對 React Native 未來的展望。
具體來說,2021 年下半年對我們和社群來說都是 令人興奮的半年,我們有機會在我們的開放原始碼生態系統中投入更多。我們改造了一些流程,並從頭開始創建了新的流程,這將有助於您、我們和社群享受更好的 React Native 體驗。
儲存庫健康狀況
在 2021 年下半年,我們投入解決儲存庫多年來累積的一些 OSS 債務。具體來說,我們的大部分重點都放在 提取請求上。我們建立了一個內部流程,以確保所有新的提取請求都能及時得到處理。
雖然這不是完整的列表,但我們想重點介紹一些從貢獻者那裡收到的具有影響力的 PR。
- 無障礙功能
- #31630
新增 Flatlist 對集合出入的支援
,由 @anaskhraza 貢獻
- #31630
- 崩潰
- #29452
修復 - TextInput Drawable 以避免 Null Pointer Exception RuntimeError
,由 @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 中文字無法選取的問題
,由 @fabriziobertoglio1987 貢獻 - #29046
[Android] 修復使用數字鍵時未觸發 onKeyPress 事件的問題
,由 @fabriziobertoglio1987 貢獻 - #31500
修復 #29319 - ios 關閉模態視窗
,由 @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 上舉辦「Ask Us Anything」(AUA)活動,並收到超過 100 個問題!AUA 對我們來說是一個了解社群參與度的絕佳機會,對你們所有人來說則是一個提出任何種類問題的機會。如果您還沒有看過,請務必查看答案,因為其中一些答案非常有見地。
- 分享了我們的 多平台願景、Android 12 和 iOS 15 的注意事項指南,以及 Hermes 成為 React Native 預設 JS 引擎的進展和願景!
- 我們的 Kevin Gozali 出現在 React Native Radio podcast 的一集中,談論全新架構。
- 在 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 年 🎉!