Traveloka Android Dynamic Feature Module Pilot Project
Article Summary
Anisha Inas Izdihar and Yusuf Cahyo Nugroho from Traveloka tried implementing Dynamic Feature Modules in 2019 when documentation was scarce and critical tools were broken. Their workarounds got creative: they literally modified Google's compiled jar files.
This is part one of a three-part series documenting Traveloka's pilot project to adopt Android's Dynamic Feature Module framework. The team faced multiple blockers including incompatible libraries, broken resource shrinking, and a tightly coupled codebase that wasn't ready for modularization.
Key Takeaways
- Resource shrinking was incompatible with DFM, forcing manual unused resource removal each release
- Team modified Android Gradle Plugin jar files using bytecode editor to bypass restrictions
- Built custom Gradle plugin to auto-generate full package names for cross-module resources
- Dart & Henson navigation library required PR contribution to add DFM support
Critical Insight
Traveloka successfully completed their DFM pilot by solving four major compatibility issues through custom tooling, library contributions, and manual workarounds that they still use today.