跳到主要內容

React Native 開源更新 2019 年 3 月

·5 分鐘閱讀
Christoph Nakazawa
Christoph Nakazawa
前 Facebook 工程師

在決定加大對 React Native 開源社群的投資後,我們在 2018 年第四季發布了 React Native 開源路線圖

在我們的第一個里程碑中,我們專注於找出並改善社群中最顯而易見的面向。我們的目標是減少未處理的 pull request、縮減專案的表面積、找出主要使用者問題,並建立社群管理指南。

在過去兩個月中,我們取得的進展超出預期。請繼續閱讀以瞭解更多詳細資訊

Pull Request

為了建立健全的社群,我們必須快速回應程式碼貢獻。在過去幾年中,我們降低了審查社群貢獻的優先順序,並累積了 280 個 pull request (2018 年 12 月)。在第一個里程碑中,我們將未處理的 pull request 數量減少到約 65 個。同時,每天開啟的 pull request 平均數量從 3.5 個增加到 7 個,這表示我們在過去三個月中處理了大約 600 個 pull request

我們合併了 將近三分之二 的 pull request,並關閉了三分之一。如果 pull request 已過時或品質不佳,或者不必要地增加了專案的表面積,則會在未合併的情況下關閉。大多數合併的 pull request 修正了錯誤、改善了跨平台對等性或引入了新功能。值得注意的貢獻包括改善類型安全,以及正在進行的 AndroidX 支援工作。

在 Facebook,我們從 master 分支執行 React Native,因此我們會在所有變更進入 React Native 版本之前先進行測試。在所有合併的 pull request 中,只有六個造成問題:四個僅影響內部開發,兩個在候選版本狀態中被發現。

社群更顯而易見的貢獻之一是 更新後的「RedBox」畫面。這是社群如何讓開發者體驗更友善的一個很好的例子。

精簡核心

React Native 目前具有非常廣泛的表面積,其中包含許多我們在 Facebook 不常使用的未維護抽象概念。我們正在努力縮減表面積,以縮小 React Native 的規模,並讓社群更好地維護 Facebook 大多數時間未使用的抽象概念。

在第一個里程碑中,我們請求社群協助精簡核心專案。社群反應熱烈,我們幾乎無法跟上所有進度。查看不到一個月內完成的所有工作

我們最興奮的是,維護者已加入修正長期存在的問題、新增測試,以及支援長期要求的功能。這些模組獲得了比以往在 React Native 中更多的支援,這表示這對社群來說是向前邁進的一大步。此類專案的範例包括 WebView,自提取以來,該專案已 收到許多 pull request,而 CLI 現在由 社群成員維護,並獲得了急需的改進和修正。

主要使用者問題

在十二月,我們詢問社群他們 不喜歡 React Native 的地方。我們彙整了回應,並 回覆了每個問題。幸運的是,我們社群面臨的許多問題也是 Facebook 的問題。在下一個里程碑中,我們計畫解決一些主要問題。

投票數最高的問題之一是升級到較新版本 React Native 的開發者體驗。遺憾的是,這不是我們自己會遇到的問題,因為我們從 master 分支執行 React Native。值得慶幸的是,社群成員已經挺身而出解決這個問題

0.59 版本發布

如果沒有 React Native 社群的幫助,尤其是 Mike GrabowskiLorenzo Sciandra,我們將無法發布版本。我們希望改進版本管理流程,並計畫從現在起更積極地參與

  • 我們將與社群成員合作,為每個主要版本建立一篇部落格文章。
  • 當人們升級到新版本時,我們將直接在 CLI 中顯示重大變更。
  • 我們將縮短發布版本所需的時間。我們正在探索增加自動化測試的方法,並建立改進的手動測試計畫。

許多這些計畫將納入即將推出的 React Native 0.59 版本。0.59 版本將隨附 React Hooks、適用於 Android 的全新 64 位元 JavaScriptCore 版本,以及許多效能和功能改進。目前已發布為候選版本,預計在未來兩週內趨於穩定。

下一步

在接下來的兩個月中,我們將繼續管理 pull request,以保持進度,同時也開始減少未處理的 GitHub issue 數量。我們將透過精簡核心專案繼續縮減 React Native 的表面積。我們計畫解決社群最關注的 5 個問題。在我們完成社群指南的制定後,我們將轉向關注我們的網站和文件。

我們非常興奮能在三月於 Facebook 倫敦接待來自社群的十多位貢獻者,以協助推動其中幾項工作。我們很高興您正在使用 React Native,並希望您能看到和感受到我們在 2019 年努力進行的改進。我們將在幾個月後再次發布更新,並且在這段期間將會合併您的 pull request! ⚛️✌️