Android at Latitude in 2021: Highlights, Developer Experience & the Road to Jetpack Compose

Luke Simpson
3 min readDec 9, 2021

--

It’s been a big year for the Android team at Latitude and I’m amazed by what everyone achieved during several challenging lockdowns. Here’s a snapshot of what we’ve been up to in 2021:

  • Scaled the team from 4 to 9 engineers
  • 23 app releases containing dozens of new features and technical improvements
  • 900 pull requests
  • 37 percent increase in installed users

There were definitely some growing pains but we managed to maintain our 4.5 star rating on the Play Store and keep the app lean with a relatively modest 6 percent increase in app size.

2021 Developer Experience Survey

Some of the most important measures of both developer experience and codebase health are the ability to easily build new features, maintain existing features, and write and maintain tests. Every couple of years we survey the Android team and, while there is always room for improvement, we saw good increases in these measures against the 2019 results:

Note that these are weighted totals where options range from 1, e.g. Very hard/almost impossible at times, requires extensive refactoring & architecture patterns unclear to 4, e.g. Very easy and fun, everything is straightforward and the code seems to write itself!

These improvements can be largely attributed to an emphasis on unit testing, simiplfied UI tests, alignment around architectural patterns and the adoption of tools such as coroutines. UI testing continues to be a pain point, albeit less painful. We’re hoping APIs such as FragmentScenario make it easier to write high-value UI tests.

Continuous Integration (CI) was also called out as an area needing improvement: team members could wait hours for a test build to start due to a severe lack of concurrency. With a recent investment in cloud CI provider BitRise we expect to never wait for a build again! Also, over the year we saw the time to run our test pipeline increase by about 20 percent, which is significant but would be a lot worse without our heavy use of unit tests and minimal UI tests.

The Road to Jetpack Compose

When the Jetpack Compose UI toolkit moved to Beta release earlier this year we started to look at a roadmap to use it in the Latitude app. The interop APIs offered a fairly smooth way to integrate it into an existing codebase so we setup a “playground” branch where we could get our hands dirty building screens and widgets, and migrating existing themes and styles. Several professional development (hack) days were used to upskill with half of the team now comfortable enough to use it in production:

At this rate I expect the first features using Jetpack Compose to be introduced within the first quarter of 2022.

What’s Next?

With twice as many developers spread across four feature squads a big focus next year will be ways to improve UI/UX consistency. One exciting new tool that could streamline the transfer of UI from designer to developer is Material Design to Code, which promises to import designs directly from Figma to Android Studio as Composables!

We will also look to migrate our dependency injection framework from Toothpick, which has done its job over the years but appears to be near end-of-life, to the much-improved Dagger-Hilt.

Please hit me up in the comments with any feedback — I’d love to know where others will be focussing in 2022.

--

--