Google Classroom

Increasing productivity with Flutter

Success metrics

98%

shared mobile code

66%

reduced code size

50%

increased development velocity

When the Google Classroom team saw the productivity increases the GPay team experienced after migrating to Flutter, they decided to make the switch. Watch the video to learn how it went.

When the COVID pandemic abruptly shifted students everywhere to remote learning, the Google Classroom team found themselves operating on a different scale almost overnight. By September 2021, Classroom was supporting millions of new monthly active users, and needed to quickly scale the team to meet the needs of these users across each platform quickly. With their mobile teams being stretched thin, Google Classroom decided to explore solutions that would reduce the burden on their developers.

Why Flutter?

The Google Classroom team knew that Flutter offered many of the features they wanted, including a single codebase supporting multiple platforms. They evaluated Flutter against several benchmarks, including its effects on latency, jank, memory, binary size, accessibility, and ease of hiring, and were pleased to see that the benefits of Flutter adoption outweigh potential regressions. The team expected regressions in a few areas like early instability, almost inherent to launching any brand new app, and binary size, but believed that Flutter’s single codebase would allow them to improve those in the long term. Based on this success, the team got the green light to migrate their existing Google Classroom apps to Flutter.

Their solution

The team split their effort into two launches, one for iOS and the other for Android. After building a completely new iOS app in Flutter, Google Classroom followed up with the Android release in six months.

Most of the team had never used Flutter before, but the majority of Google Classroom’s engineers reported that Flutter development was easier than native development. In particular, they considered hot reload a “game changer” for productivity. It enabled them to refresh the app without reopening it, eliminating unnecessary context switching, saving time and reducing the developers’ mental load.

Results

Migrating to Flutter provided Google Classroom with a wealth of benefits. It accelerated their incremental build time from several minutes to a few seconds, which they estimate saves them a full week of developer time every month. The single codebase improved development time across platforms by “at least 50%,” they reported, and simplified their launches.

There were other benefits as well. Flutter reduced Google Classroom’s codebase size by 54%, making it easier to maintain. App performance also improved, including a 62% reduction in median startup latency and a 63% reduction in tracked CUJ latency.