【文章內容使用 Gemini 1.5 Pro 自動產生】
Flutter 2020 年春季更新
作者:Tim Sneath 和 Patrick Sosinski
對於我們 Google 的工程師、產品經理、使用者體驗研究員、技術作家和開發者關係工程師來說,過去幾個月充滿了各種挑戰;就像你們中的大多數人一樣,我們都在努力應對與平常非常不同的日常工作。儘管如此,作為一個開源專案,我們能夠繼續使用公開可用的工具進行開發。在有時具有挑戰性,當然也是新穎的工作環境的限制下,以及需要照顧家人的需求,我們正在繼續根據我們的春季積壓工作取得進展,並且也從「外部」學習了許多關於貢獻的知識!我們希望您也能取得進展,並保持健康和安全。
Flutter 的發展勢頭
我們繼續看到 Flutter 使用率的快速增長,自我們發佈以來,在過去的十六個月中,已有超過 兩百萬開發人員使用 Flutter。儘管遇到了這些前所未有的情況,但在 3 月份,我們看到 Flutter 的月度增長率為 10%,目前每月有近 50 萬開發人員使用 Flutter。
以下是一些其他有趣的統計數據:
- 您中有 60% 使用 Windows 開發,27% 使用 macOS,13% 使用 Linux。
- 您中有 35% 為新創公司工作,26% 是企業開發人員,19% 是自雇人士,7% 為設計公司工作。
- 78% 的 Flutter 開發人員使用 stable channel,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 版本創建分支,並透過 cherry-picking 任何關鍵修復來穩定此版本。大約每季度一次,當前的 beta 分支將被提升到我們的穩定版本。如果有必要,我們將繼續在此版本上進行熱修復。我們的基礎架構現在支援針對分支進行測試,這意味著我們可以驗證 cherry-pick,並且會根據嚴重程度接受一些請求。
我們還藉此機會調整了 Flutter 和 Dart 發佈流程和通道。因此,Dart 添加了 beta 通道,並且未來發佈將同步(例如,Flutter beta 版本將包含一個 Dart beta 版本)。
如果您已經在發佈基於穩定通道的 Flutter 應用程式,我們鼓勵您在 beta 候選版本上測試您的應用程式,並透過報告任何問題來影響穩定版本發佈的品質。您也可以按照 Flutter wiki 上新的 Flutter cherry-pick 流程 在穩定通道上升級回歸或阻止錯誤。
我們認為,這個新流程既能提高我們對版本品質和可預測性的信心,也能提供一種更簡單的方法來將熱修復傳遞到穩定通道。
版本控制變更
作為此分支模型的一部分,我們對版本的版本控制方式進行了一些細微調整。
完整的技術細節可以在 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 版本
beta 版本 將從 dev 版本點構建,如上所述。當我們對這些版本中的某個版本進行 cherry-pick 時,m 版本將遞增。例如,如果我們從 master 中選取第 15 個 dev 版本作為我們的 1.18 beta 版本,版本控制將如下所示:
- 1.18.0–15.0.pre:初始的 beta 候選版本(與發佈到 dev 的版本相同)
- 1.18.0–15.1.pre:在(現在的)beta 分支上進行一些 cherry-pick 的後續構建
- 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 支援。我們很享受查看不同創建者在過去幾天中構建的筆刷。以下是一些我們最喜歡的:
- Twitter 克隆 (mkiisoft)
- 生成抽象藝術 (rxlabz)
- Chakra 動畫 (tahatesser)
- 旋轉輪播 (joshuadeguzman)
- 牛軋糖動畫 (phillywiggins)
- 雙擺 (abhilas-csc)
如果您正在尋找 Flutter 學習資源,我們現在提供了一個 免費的線上 Flutter 入門培訓課程。這個由 Angela Yu 講授的十小時課程提供了教學和實驗室,幫助您開始您的 Flutter 旅程。
下週見。在此期間,請待在家中,保持健康!
Flutter 2020 年春季更新 最初發佈在 Flutter 上的 Medium,人們在那裡透過突出顯示和回應這個故事來繼續討論。