Ankush Bose·1d agoKMP in practice, Part 2: Contracts and DIThe smallest module in our repo, and why we left Hilt even though we liked it.
Kanan Yusubov·Oct 7The _api / _impl Split: A Flutter Monorepo Where Bad Imports Don't CompileHow I stopped trusting code review to protect module boundaries — and let the analyzer do it instead.
Ramadan Sayed·Oct 3Android Modularization Part 12: Release EngineeringR8 full mode, consumer keep rules, and the configuration-cache failure that only appears in release.
Ramadan Sayed·Oct 2Android Modularization Part 11: CI/CD & Build Failures You Cannot ReproducePasses on every developer machine. Fails on CI. With an error about something nobody touched.
Ramadan Sayed·Oct 1Android Modularization Part 10: Build Speed — Measure, Then FixTwo runs of the identical build can differ by 40%. A single before/after measurement proves nothing.
Ramadan Sayed·Oct 1Android Modularization Part 9: Cross-Module Navigation & DIHow features navigate to each other without knowing each other exists — and the demo-app payoff.
Ramadan Sayed·Sep 30Android Modularization Part 8: Splitting a MonolithThe app ships at every commit. That one rule is what prevents the branch that never merges.
Ramadan Sayed·Sep 29Android Modularization Part 7: api vs implementationOne word. The difference between rebuilding one module and rebuilding forty.
Ramadan Sayed·Sep 29Android Modularization Part 6: Configuration Cache & Build CacheTwo caches, two completely different mechanisms — and together they make 60 modules faster than a monolith.
Ramadan Sayed·Sep 28Android Modularization Part 5: Convention Plugins & Build Logic70 lines per module becomes 5. And deleting subprojects {} is what unlocks the configuration cache.