Mohamed Gamal
Modular Secrets to Lightning-Fast Android Builds
#1about 2 minutes
The daily struggle with slow Gradle builds
Slow and failing Gradle builds are a common frustration for Android developers that can be solved with better project architecture.
#2about 3 minutes
How modularization enables incremental builds
Splitting a monolithic project into smaller, independent sub-projects allows Gradle to use incremental builds and only recompile what has changed.
#3about 3 minutes
Using `implementation` instead of `api` for dependencies
The `api` configuration leaks transitive dependencies to downstream modules, causing unnecessary recompilations, whereas `implementation` encapsulates them.
#4about 2 minutes
Breaking up generic "commons" modules
Generic "commons" modules violate the single responsibility principle and become a bottleneck for recompilation, so they should be split into smaller, feature-specific modules.
#5about 2 minutes
Splitting large feature modules for faster testing
Large, complex feature modules should be broken down into smaller submodules and paired with a dedicated sample app for faster, isolated testing.
#6about 1 minute
Using public API modules to reduce recompilation
For frequently changing domains, separate the stable public API with interfaces from the implementation to prevent cascading recompilations in dependent modules.
#7about 4 minutes
Removing dependencies with a navigation system
Eliminate direct module dependencies required only for navigation by implementing a centralized system using deep links or a custom navigator pattern.
#8about 5 minutes
Unifying build logic with Gradle convention plugins
Create custom Gradle convention plugins to centralize and reuse build configurations like Hilt, Detekt, and library settings across all modules.
#9about 2 minutes
Centralizing dependencies with version catalogs
Use a TOML-based version catalog to define all library versions and plugins in a single file, ensuring consistency and simplifying updates across the project.
#10about 2 minutes
Sharing version catalogs in a polyrepo setup
For projects spanning multiple repositories, create and publish a custom Gradle settings plugin to share a single version catalog and maintain dependency consistency.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
36:33 MIN
Focusing on modularity over architectural labels
Monoliths: A love story
22:11 MIN
Considering the modular monolith for easier refactoring
Modularity: Let's dig deeper
08:17 MIN
Introducing the modular monolith as a practical alternative
Stairway to Heaven - Scaling Frontends the Right Way
30:27 MIN
Key strategies for improving build performance
Give your build some love, it will give it back!
27:23 MIN
Using modular design to isolate the consequences of decisions
Move fast with Software Architecture
00:25 MIN
Understanding Gradle as an extensible build automation tool
Give your build some love, it will give it back!
24:17 MIN
Key takeaways for adopting a modularity mindset
Modularity: Let's dig deeper
23:08 MIN
Conclusion: Focus on fundamentals beyond the hype
Microservices? Monoliths? An Annoying Discussion!
Featured Partners
Related Videos
Modularity: Let's dig deeper
Pratishtha Pandey
Give your build some love, it will give it back!
Amanda Martin
Resolving technical debts in software architecture
Carola Lilienthal
Build Delightful Mobile Experiences with Kotlin, Realm, and Atlas Device Sync
Timothy Marland
Modulith Instead of Monolith - Pragmatically Towards Microservices
Hendrik Lösch
Optimizing Your App for Success: Tips and Techniques for managing slow devices
Milica Aleksic & Nemanja Petrovic
Challenges of building React and React Native apps
Milica Aleksic & Stefan Nikolic
Scalable architecture for mobile apps
Nachiket Apte
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.

Android Developer
Car2Go
Hamburg, Germany
Senior
Kotlin
RxJava
Android
User-centred Design
Dependency Injection

Android App Developer / Entwickler - Kotlin & Jetpack Compose (m/w/d)
Aufmaster GmbH
Frankfurt, Germany
Intermediate
Senior
GIT
Kotlin






