Spotify's Journey to Releasing One of the World's Largest Apps wit...
summary
Spotify migrates a 5M‑line Android app and related 1M C++ core from Gradle to Bazel using a hybrid Gradle+Bazel bridge that runs Bazel during Gradle configuration, converts modules in bulk, and applies 20+ Bazel patches. Problems solved include Kotlin invalidation fixes (ABI jars and pruned transitive deps), test bundling to cut CI from ~45 to ~20 minutes median, and building APKs/AABs with R8 and resource shrinking and working dynamic feature bundles so releases to users succeed.
AI-written summary · about
chapters (11)
- 0:00Migration journey introduction
- 2:45Why Basil over Buck
- 5:16Gradle-to-Basil bridge
- 8:07Kotlin compilation in Basil
- 10:16Android test performance
- 12:52Release builds to Basil
- 16:47R8 and resource shrinking
- 18:12App bundles and dynamic features
- 19:38Results and performance gains
- 21:49Future plans
- 23:25Q&A
related talks
39mAutomated migration of Android apps to Bazel build system
41mBazel on Android: The Good, The Bad and The Ugly
17mGrazel - A Gradle plugin to automate Bazel migration for Android projects
36mModularization - How hard can it be?
42mBazel
43mBoosting Bazel adoption on Android with automation
48mBazel for Android Development
30mHow We Build Spotify for Android Automotive
