The premise of the talk is that Android build speeds can get out of hand pretty quickly once you start piling on the build flavors. And while Gradle Plugins and modularization help a lot with bringing build times down, the question remains, what if anything, else can be done? The presentation will answer that question while providing expert tips and tricks on scaling your Android build and best practices to ensure a productive development environment. You will also learn about Developer Productivity Engineering technologies that can be used to accelerate local and CI builds like build cache and collaborative debugging and optimization using build scans. Finally, this event covers measuring your Android scaling initiative's success.
Specific topics include:
00:02:17 - Gradle Build Tool vs. Gradle Enterprise
00:03:15 - Tech Debt
00:04:34 - Cost of Builds
00:05:54 - Where to begin on Improving Build Speed
00:09:25 - Gradle Build Lifecycle
00:10:35 - Check for Red Flags in Your Build
00:11:44 - Gradle Enterprise Build Scan vs. Android Studio Build Analyzer
00:17:59 - Disabling Plugins to Minimize Build Time
00:19:01 - engBuild Pattern
00:21:15 - Using Task Configuration Avoidance
00:21:51 - API vs. Implementation
00:24:19 - Gradle Profiler
00:27:49 - Enterprise Feature Alert - Capturing Task Input Files and Comparing Build Scans
00:28:41 - Dependency Analysis Plugin
00:29:07 - Annotation Processors - Make sure they are Incremental!
00:30:11 - Disabling unused AGP Features
00:32:57 - Code Multipliers - Jetifier & Flavors
00:37:17 - How to Cut Build Times in Half
00:39:54 - Summarizing the Webinar
00:41:46 - Upcoming Gradle Performance Enhancements
00:43:36 - Q&A with Nelson Osacky
Links Provided in this Webinar:
Fladle - Easily Scale Instrumentation Tests on Firebase: https://github.com/runningcode/fladle
Delect - Replace Dagger with Dagger Reflect: https://github.com/soundcloud/delect
Gradle Doctor - Actionable Insights for your Build: https://github.com/runningcode/gradle...
Cost of Builds: https://gradle.com/roi-calculator
Update All the Things: https://github.com/ben-manes/gradle-v...
engBuild == Gradle property: https://docs.gradle.org/current/userg...
Use Task Configuration Avoidance: https://docs.gradle.org/current/userg...
K9 Mail App: https://github.com/k9mail/k-9
Gradle Profiler: https://github.com/gradle/gradle-prof...
Capture Task Input Files: https://docs.gradle.com/enterprise/gr...
Dependency Analysis Plugin https://github.com/autonomousapps/dep...
Gradle Remote Build Cache Miss: / gradle-remote-build-cache-misses
Android Cache Fix Gradle Plugin: https://github.com/gradle/android-cac...
Dependency Substitution: https://issuetracker.google.com/issue...
Jetifier: https://developer.android.com/studio/...
Disable More Things: https://github.com/android/gradle-rec...
engBuild Ideas: / testing-new-versions-of-the-android-gradle...
File System Watching: https://blog.gradle.org/introducing-f...
Presentation Slides: https://gradl.es/320rGMO
To learn more about Android Productivity Engineering, check out this playlist: https://tv.gradle.com/scaling-android...
To get the bigger picture and learn more about other major Gradle Enterprise benefits, check out these playlists.
Faster Feedback Cycles: https://tv.gradle.com/build-faster
Faster Troubleshooting: https://tv.gradle.com/debug-faster
Reliable Builds & Tests: https://tv.gradle.com/more-reliable
Continuous Learning & Improvement with Trends & Insights: https://tv.gradle.com/improve
CI Cost & Resource Efficiency: https://tv.gradle.com/efficient-ci
Gradle Enterprise Essentials: https://tv.gradle.com/ge-essentials
Check out our upcoming live training and events schedule: https://gradl.es/2VxWuj4
Use this URL to share: tv.gradle.com/beyond-modularization
#fasterandroidbuilds #nelsonosacky #gradle