
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%。