Android Guild Week at Strava
Article Summary
Todd Santaniello from Strava reveals what happened when their entire Android team stopped shipping features for a week. The goal? Break apart a 6.5-year-old monolithic codebase that was crushing build times and developer velocity.
Strava's Android team dedicated their Guild Week to modularizing their app, which had grown to 77% of code concentrated in a single module. They aimed to improve build speeds, code readability, and enable faster development iterations through mini-apps.
Key Takeaways
- Created 8 new modules and reduced monolithic code from 77% to 74%
- Mini-apps achieved 4x faster build times for feature development
- Untangled legacy code revealed years of tight coupling and complexity
- Consolidated all strings to one module, simplifying translations
- CI build times initially increased 23% due to dependency changes
One week of focused modularization created the foundation for 4x faster development cycles, despite short-term CI slowdowns that required infrastructure adjustments.
About This Article
Strava's Android codebase had grown messy over the years. Base classes like StravaBaseActivity and StravaBaseFragment didn't follow composition principles, and legacy Views were stuck in the handset module because of tangled dependencies everywhere.
The team moved Views to MVVM and built simpler base classes in a new common-ui module. They also started writing README files for each module with clear ownership so future modularization work would have better guidance.
Build times dropped 4x when deploying mini-apps instead of the full handset APK. This made the daily development cycle much faster for feature teams.