Improve the build times of your project
summary
N26 reduces full-app clean assemble from 24m → 6m (−75%) by flattening Gradle dependency graph and removing a single huge "inject legacy" model; graph height drops from 20 → 11 (−45%). Approach: split core libraries into API + implementation modules, apply dependency inversion, migrate DI to the ambil plugin to avoid KAPT, and iteratively migrate top libraries. Proof‑of‑concept: one library build 28s→18s (−35%), edges −76%, height 9→4. New M1 Pro laptops arrive only after these changes.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:07Why we prioritized build time
- 3:36Project setup
- 7:17Understanding Gradle dependency graphs
- 10:29How Gradle parallel execution works
- 13:28Dependency inversion principle
- 17:41Proof of concept results
- 19:26Three-phase improvement process
- 21:11Legacy monoliths impact
- 22:58Migrating from Dagger to Anvil
- 26:56Anvil migration plan
- 28:22Collaborating with product teams
- 30:25Final results
- 31:07Key takeaways
related talks
35mGradle recipes for reducing your build times
30mHow we brought down our build times. General optimization tips
35mHow we brought down our build times. Modularization impact on build speeds and metrics
19mCOMPILING...? HOW TO REDUCE YOUR WAIT TIMES AND "GET BACK TO WORK"
37mModularization - flatten your graph and get the real benefits
57mImprove Build Times in Less Time
27mFaster builds on Android: from 2 minutes to 2 seconds
32mFaster Feedback Cut Gradle Build and Pipeline Times in Half
