Road to modularization
summary
Tinder Android grows from a single module to 300 modules around 2 million lines of code, with a claimed clean build down to 6 minutes clean build without cache. The migration moves from layer-based packages to feature modules, splits a bloated base into many small common modules, uses Dagger component-dependencies to avoid cycles, and adds a demo app with ~42 build-variant flavors for rapid UI iteration. Examples include extracting an SMS-auth flow as an SDK-like module and tradeoffs over-granular settings split across six modules.
AI-written summary · about
chapters (16)
- 0:00Introduction to modularization
- 1:16Engineering stats and context
- 2:59From monolith to layer-based modules
- 5:50Modularizing by feature
- 8:16Base module and common dependencies
- 11:05Breaking down the bloated base
- 13:13Benefits of modularization
- 14:16Demo app for rapid feedback
- 17:24Demo app variants and setup
- 18:48Dependency injection in modules
- 21:13Component dependencies in Dagger
- 22:59Over-modularization and feature boundaries
- 24:00Self-contained feature modules
- 27:11Sharing dependencies across modules
- 28:34Context-dependent implementations
- 30:41Future steps and hiring
related talks
39mScaling an Android App from 1 to 100 developers with modularization.
27mModularising the right way
35mModules in 7 steps
32mBuild a modular Android app architecture
37mA Complete Journey of Android Modularisation
30mModular Android Development
36mModularization - How hard can it be?
40mModularizing Android Applications
