Categories
程式開發

Flutter 2020春季更新


本文最初發佈於 Medium 博客,經原作者授權由 InfoQ 中文站編譯並分享。

谷歌 Flutter 項目的工程師、產品經理、UX 研究人員、技術撰稿人和開發關係工程師在過去幾個月為這個項目付出了大量汗水和努力。他們在各種限制條件的製約下,使用各種公開可用的工具繼續開發 2020 年的 Flutter 春季更新。如今,這一季度的更新已經準備就緒了。

Flutter 2020春季更新 1

Flutter 的現狀和數據

Flutter 的使用率仍在快速增長當中。自它初次發布以來已經過了 16 個月時間,有超過 200 萬開發人員用過了 Flutter。雖然行業在 2020 年遇到了前所未有的局面,但在 3 月份 Flutter 依舊獲得了 10% 的環比增長,並且每月活躍的開發人員數量有將近 50 萬。

其他一些有趣的統計數據:

  • 60%的 Flutter 開發人員使用 Windows 開發,27%的開發人員使用 macOS,13%的人員使用 Linux。
  • 有 35%的開發人員為初創公司工作,26%的開發者為企業開發人員,19%則是個體經營者,還有 7%的用戶為設計機構工作。
  • 78%的 Flutter 開發人員使用穩定版渠道,11%的用戶使用 Beta 版,11%的用戶使用 dev 或 master 版。
  • Flutter 使用量排名前五的地區分別是印度、中國、美國、歐盟和巴西。
  • 谷歌 Play 商店中大約發布了 50,000 個 Flutter 應用,僅在上個月就上傳了 10,000 個。
  • Flutter 應用中最流行的框架包有 http、shared_preferences、intl、meta、path_provider 和 pedantic。
  • Flutter 應用中最受歡迎的第三方包有 provider、rxdart、cached_network_image、sqflite、font_awesome_flutter 和 flutter_launcher_icons。

Flutter 在企業中的表現

Flutter 在企業客戶中的增長尤其迅速。許多大型公司之所以會選擇 Flutter 的關鍵原因,是因為它能夠提供多平台支持,同時提供高水準的產品體驗。最近的一個例子是 Nubank,它是亞洲以外最大的數字銀行,擁有超過 2000 萬客戶。 Nubank 在對他們的應用程序開發選項進行了詳細的調查和分析之後,最終選擇了Flutter;之後他們的前端開發團隊就統一在了一個框架上,也因此能夠在iOS 和Android 平台上同時發布新的軟件功能。

這段視頻介紹了他們的開發故事,其中說明了他們在 Flutter 上看到的一些好處。

企業的一項常見需求是專業組件。谷歌與 SyncFusion 展開了合作,後者的 Essential Studio 產品現在包含了一系列高質量的 Flutter 組件,包括圖表、PDF 操作和條形碼生成等。在他們的 2020.1 版本中,所有組件均直接支持 Android、iOS 和 Web 平台,並且具有基於 Web 的控件預覽。

更新版本發布流程

在谷歌開發新的 Flutter 穩定版本時,他們對原有的發布模型做出了一些更改,以進一步提高發布的穩定性和可預測性。

谷歌原來的發布流程的設計目標是簡潔和低維護成本。但隨著開發團隊的規模不斷增大,谷歌遇到了一些會影響到 Flutter 貢獻者和開發人員的問題,具體包括:

  • 不清楚何時發布什麼版本,以及其中包含什麼樣的代碼;
  • 缺乏對分支的測試,結果要重複發布修復程序。

從 4 月的 Flutter 版本開始,谷歌將轉向一個 beta 和穩定版本固定間隔發布的分支模型。現在谷歌將在每月初發布 beta 版,然後精選(cherrypick)出重要的補丁來穩定該版本。大約每季度一次,當前的 beta 分支將升級到穩定版本。如有必要,谷歌將繼續修復此版本。現在谷歌的基礎架構支持針對分支的測試,這樣就能驗證那些精選補丁,並根據嚴重性的水平接受某些請求。

谷歌還藉此機會調整了 Flutter 和 Dart 的發行流程和渠道。 Dart 添加了一個 beta 通道,並且之後它們發布的版本將被同步(例如,Flutter beta 版本將包含一個 Dart beta 版本)。

如果用戶已經在基於穩定通道發布 Flutter 應用,谷歌建議用戶在 beta 候選版本中測試應用,並報告所遇到的任何問題,幫助提升穩定版本的質量。你還可以根據 Flutter Wiki 上新的 Flutter 精選流程的指引,在穩定通道上升級回歸或阻止 bug。

這一新流程將為 Flutter 的發行版帶來更高的質量和更好的可預測性,並為將穩定補丁發佈到穩定的通道提供更簡便的方法。

版本控制更改作為這一分支模型的一部分,谷歌還對版本的控制方式做了一些小的更改。

完整的技術細節在 Flutter 構建發布通道 Wiki 頁面上可見。

簡單總結如下:

非穩定發行版將在版本字符串中以.pre 註釋,以表示其預發布狀態。給定一個 x.y.z-n.m.pre 的版本字符串,每當從 master 生成一個新構建時,dev 通道構建將增加 n。

  • 1.18.0–1.0.pre:master 版本移至 1.18 之後的第一個 dev 構建
  • 1.18.0–2.0.pre:從 master 的最新發佈點出發的下一個 dev 構建

如上所述,谷歌將從 dev 版本發佈點構建 beta 版本。在某個發行版上精選補丁時,m 版本號將會增加。例如,master 的第 15 個 dev 構建作為 beta 的 1.18 版本,則版本控制如下所示:

  • 1.18.0–15.0.pre:初始 beta 候選版(與 dev 發行版相同)
  • 1.18.0–15.1.pre:在(現在的)beta 分支上的後續構建,帶有一些精選補丁
  • 1.18.0–15.2.pre:第二個後續構建

穩定版的版本號將為 x.y.0。如果有必要,後續的修補程序版本將增加補丁號:x.y.1,x.y.2,以此類推。

  • 1.18.0–15.4.pre:分支上的最新 beta 構建
  • 1.18.0:穩定版本,與 1.18.0–15.4-pre 相同
  • 1.18.1:潛在的 1.18.0 修補程序

下一步進展計劃

谷歌使用這個全新的版本控制模型發布的第一個版本,將是 Flutter 的下一個穩定版本,計劃在本週發布。所有新功能的完整摘要將在不久後給出具體介紹。

還可以查看谷歌在過去幾週內發布的其他一些公告。上上週,谷歌宣布了 CodePen 對 Flutter 的支持。

過去幾天里許多創作者製作了各種筆刷。以下是一些示例:

Flutter 2020春季更新 2

如果你正在尋找 Flutter 的學習資源,谷歌還在線免費提供了 Flutter 的入門培訓課程

Angela Yu 教授的這套十小時的課程提供了相關的教程和實驗,可以幫助新手開始 Flutter 的旅程。

英文原文

Flutter Spring 2020 Update