Gojek Ashish Pathak Sep 27, 2023

Modularizing Our Driver App for Android: Benefits & Way Ahead (Part-3)

Article Summary

Gojek's driver app modularization cut CI build times by 33% and unlocked team-level productivity metrics. Here's what they learned from breaking up their monolith.

This is Part 3 of Gojek's series on modularizing their Android driver app. After extracting core modules, utilities, and features, the team measured the real-world impact on build speeds, code quality, and team productivity.

Key Takeaways

Critical Insight

Modularization delivered faster builds and cleaner interfaces, but required careful planning, automated guardrails, and ongoing code review discipline to succeed.

The team shares why identifying inputs and outputs for each feature was the key to unlocking architectural freedom across different parts of the app.

About This Article

Problem

Gojek's driver app had messy code architecture. About 78% of classes were crammed into a single app module, which made it hard to separate concerns and slowed down IDE compilation.

Solution

Ashish Pathak's team broke things apart by creating core modules, utility modules, and feature modules with clear boundaries between API and implementation. They set up automated guardrails and code reviews to keep shared modules from turning into a dumping ground for common logic.

Impact

The cleaner interfaces and decoupled APIs reduced code entanglement. The team could now assign feature ownership clearly and track test coverage, binary size per feature, and crashes per feature without affecting other parts of the codebase.