Google Classroom

使用 Flutter 提高生产力

成功指标

98%

共享移动代码

66%

减少代码大小

50%

提高开发速度

当 Google Classroom 团队看到 GPay 团队在迁移到 Flutter 后所获得的生产力提升时,他们决定也进行切换。观看视频了解迁移过程。

当 COVID 大流行突然将全球的学生转向远程学习时,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%。