
Google 課堂
利用 Flutter 提高生產力
成功指標
98%
共享移動端程式碼
66%
減小程式碼體積
50%
提升開發速度
當 Google Classroom 團隊看到 GPay 團隊在遷移至 Flutter 後生產力顯著提升時,他們決定進行同樣的轉型。觀看影片瞭解轉型過程。
隨著新冠疫情迫使全球各地的學生突然轉向遠端學習,Google Classroom 團隊幾乎在一夜之間面臨著不同量級的運營挑戰。到 2021 年 9 月,Classroom 的月活躍使用者增加了數百萬,團隊需要迅速擴充套件以滿足這些使用者在各個平臺上的需求。由於移動端開發團隊人手不足,Google Classroom 決定探索能夠減輕開發者負擔的解決方案。
為什麼選擇 Flutter?
Google Classroom 團隊瞭解到 Flutter 提供了他們想要的許多功能,包括支援多平臺的單一程式碼庫。他們針對延遲、卡頓、記憶體、二進位制檔案大小、無障礙功能以及招聘難度等多個基準對 Flutter 進行了評估,並欣喜地發現採用 Flutter 的收益遠大於潛在的迴歸風險。團隊預料到在初期不穩定性和二進位制大小等方面可能會出現一些迴歸問題(這在釋出任何全新應用時幾乎是不可避免的),但他們相信 Flutter 的單一程式碼庫將使他們能夠從長遠角度改進這些問題。基於這一成功的評估,團隊獲准將現有的 Google Classroom 應用遷移至 Flutter。
他們的解決方案
團隊將遷移工作分為兩次釋出:一次針對 iOS,另一次針對 Android。在用 Flutter 構建了全新的 iOS 應用後,Google Classroom 緊接著在六個月內完成了 Android 版本的釋出。
團隊中大多數人此前從未接觸過 Flutter,但 Google Classroom 的大部分工程師表示,Flutter 開發比原生開發更容易。特別是他們認為“熱過載”是提升生產力的“利器”。它使開發者無需重啟應用即可重新整理介面,消除了不必要的上下文切換,節省了時間並減輕了開發者的心智負擔。
成果
遷移至 Flutter 為 Google Classroom 帶來了諸多益處。它將增量構建時間從幾分鐘縮短至幾秒鐘,據估計,這每個月為他們節省了整整一週的開發時間。據報告,單一程式碼庫將跨平臺的開發時間縮短了“至少 50%”,並簡化了釋出流程。
此外還有其他好處。Flutter 將 Google Classroom 的程式碼庫體積減小了 54%,使其更易於維護。應用效能也得到了提升,包括中位啟動延遲降低了 62%,跟蹤的 CUJ(關鍵使用者旅程)延遲降低了 63%。