App Modularisation at Scale
Jul 13, 2021Amar Jain

Summary
This post details the approach and design for modularizing the Grab app, including setting up base/core modules, shared library modules, feature modules, and kit modules for inter-module communication. It highlights the benefits of faster build times, fine dependency graphs, reusability, scalability, maintainability, and well-defined code ownership. Limitations such as increased effort, separate configuration files, longer Gradle sync times, and increased IDE resource usage are also discussed. The post also presents the current state with over 1,000 modules and the specific modularization efforts within the Grab Financial Group (GFG) team, showing a significant reduction in build times for their modules.