Android App Modularization Strategy
Article Summary
Seongchul Park from Coupang reveals how they tamed a 300,000+ line monolithic Android codebase. The build times were spiraling, new features were getting tangled, and Google's modern deployment features were out of reach.
This is Part 2 of Coupang's Android architecture series, focusing on their modularization journey. As Korea's leading e-commerce platform expanded into new business areas, their single-module app became unsustainable. The team needed a systematic approach to break apart their monolith while maintaining stability.
Key Takeaways
- Split monolith into 3 module types: app, feature, and core modules
- Extracted 13 core modules with over 80% unit test coverage
- Core modules now reusable across multiple Coupang mobile projects
- Reduced inter-module dependencies through configuration injection patterns
- Enabled support for Instant Apps and App Bundles deployment
Coupang successfully modularized their massive Android app into 13+ independent modules, dramatically improving build times, code reusability, and maintainability across their entire mobile ecosystem.
About This Article
Coupang's Android codebase had grown to over 300,000 lines of code. This size made builds slower and blocked the team from using Google's Instant Apps and App Bundles features.
Seongchul Park's team broke the codebase into three types of modules: app modules, feature modules, and core modules. They used library plugins in build.gradle and added configuration injection to keep dependencies between modules low.
The team ended up with 13 independent core modules, each with 80% or higher unit test coverage. Other Coupang mobile projects beyond the main e-commerce app can now reuse this code.