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
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!
00:25 MIN
Understanding Gradle as an extensible build automation tool
Give your build some love, it will give it back!
36:33 MIN
Focusing on modularity over architectural labels
Monoliths: A love story
15:25 MIN
Comparing approaches for building custom native modules
Building Better Apps with React Native
21:53 MIN
Why simple code co-location is not enough
Nx - the easy choice
26:25 MIN
Exploring the platform's technology stack and architecture
Shared mobility for everyone!
42:08 MIN
Key takeaways for advanced module federation usage
Micro-Frontends with Module Federation: Beyond the Basics
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
Challenges of building React and React Native apps
Milica Aleksic & Stefan Nikolic
Optimizing Your App for Success: Tips and Techniques for managing slow devices
Milica Aleksic & Nemanja Petrovic
Modulith Instead of Monolith - Pragmatically Towards Microservices
Hendrik Lösch
Build Delightful Mobile Experiences with Kotlin, Realm, and Atlas Device Sync
Timothy Marland
Building Better Apps with React Native
Marc Rousavy
Related Articles
View all articles



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

Mid/Senior Android Engineer - Hybrid working model
SMG Swiss Marketplace Group
Ho Chi Minh City, Viet Nam
Senior


Senior Architect for Modular Design & Build
Architecture Social
Charing Cross, United Kingdom
Remote
€59K
Senior


Software Architect (gn) Android Automotive IVI
Cognizant Mobility GmbH
Fulda, Germany
Remote
Senior
gRPC
Linux
Protocol Buffers


Software Architect (gn) Android Automotive IVI
Cognizant Mobility GmbH
Nürnberg, Germany
Remote
Senior
gRPC
Linux
Protocol Buffers

Software Engineer, Android Core Product
IOActive Inc.
Charing Cross, United Kingdom
Remote
€100-110K
Senior
Java
Android
![[Part-time] Senior Android full stack developer](https://wearedevelopers.imgix.net/public/default-job-listing-cover.png?w=400&ar=3.55&fit=crop&crop=entropy&auto=compress,format)
[Part-time] Senior Android full stack developer
Artificient Mobility Intelligence
€49-68K
Senior
API
GIT
REST
Kotlin
+3