Google 课堂

使用 Flutter 提高生产力

成功指标

98%

共享移动代码

66%

减小代码体积

50%

提高开发速度

当 Google 课堂团队看到 GPay 团队在迁移到 Flutter 后生产力显著提升时,他们决定也进行切换。观看视频了解进展。

当 COVID 疫情突然将各地的学生转向远程学习时,Google 课堂团队发现他们几乎在一夜之间以不同的规模运营。到 2021 年 9 月,Classroom 已经支持数百万新的月活跃用户,并且需要迅速扩大团队,以快速满足这些用户在各个平台上的需求。由于移动团队人手紧张,Google 课堂决定探索能够减轻开发人员负担的解决方案。

为什么选择 Flutter?

Google 课堂团队知道 Flutter 提供了他们想要的许多功能,包括支持多个平台的单一代码库。他们根据多项基准评估了 Flutter,包括其对延迟、卡顿、内存、二进制文件大小、可访问性和招聘便利性的影响,并很高兴看到采用 Flutter 的好处 outweighs 潜在的退步。团队预计在少数几个领域会出现退步,例如早期不稳定性(几乎是任何全新应用发布固有的问题)和二进制文件大小,但他们相信 Flutter 的单一代码库将使他们能够在长期内改进这些方面。基于这一成功,团队获得了绿灯,可以将其现有的 Google 课堂应用迁移到 Flutter。

他们的解决方案

团队将工作分为两次发布,一次针对 iOS,另一次针对 Android。在用 Flutter 构建了一个全新的 iOS 应用后,Google 课堂在六个月后发布了 Android 版本。

团队的大多数成员以前从未使用过 Flutter,但 Google 课堂的大多数工程师表示,Flutter 开发比原生开发更容易。特别是,他们认为热重载(hot reload)是提高生产力的“颠覆性”功能。它使他们能够在不重新打开应用程序的情况下刷新应用程序,消除了不必要的上下文切换,节省了时间并减轻了开发人员的脑力负担。

成果

迁移到 Flutter 为 Google 课堂带来了诸多益处。它将他们的增量构建时间从几分钟缩短到几秒钟,他们估计这每月可节省整整一周的开发人员时间。他们报告称,单一代码库将跨平台的开发时间“至少缩短了 50%”,并简化了他们的发布流程。

此外还有其他益处。Flutter 将 Google 课堂的代码库大小减少了 54%,使其更易于维护。应用性能也得到了提升,包括中位数启动延迟降低了 62%,以及跟踪的 CUJ 延迟降低了 63%。