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!
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
11:11 MIN
Building modular workflows with decoupled processes
Transforming Task Management: Integrating Camunda with Scalable Frontend Solutions
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
From learning to earning
Jobs that call for the skills explored in this talk.

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

Senior Software Engineer für App-Entwicklung (m/w/d)
convivo GmbH
Berlin, Germany
€50-75K
Intermediate
Senior
Dart
Flutter




Principal Backend Architect - Java Refactoring & Modernization
primion Technology GmbH
Remote
API
XML
Java
Spring
+3

Principal Backend Architect - Java Refactoring & Modernization
primion Technology GmbH
Remote
API
XML
Java
Spring
+3

Solution Architekt:in Mobile Computing
Enterprise Architect Logistics Services
Remote
Java
.NET
Scrum
Kafka
+8