// the find
mitchtabian/Dota-Info
Multi-module, Kotlin, MVI, Compose, Hilt, Navigation Component, Use-cases, SQL-Delight, Ktor
A teaching project by Mitch Tabian demonstrating multi-module Android architecture with Compose, MVI, Hilt, SQLDelight, and Ktor against the OpenDota API. It exists to show how to wire these libraries together correctly, not to be a useful Dota app. The target audience is Android developers learning modularization patterns.
The module graph is well thought out — separating hero-datasource-test into its own module so fakes can be shared across test suites is a genuinely useful pattern that most tutorials skip. MVI state management is clean: each screen owns a sealed Events class and a plain data State, no shared ViewModel hell. Unit tests cover every use-case with the fake datasource modules, so the test layer actually exercises real business logic rather than mocked interfaces. buildSrc with typed dependency constants keeps all 10 modules from drifting on library versions.
The repo has been dormant since January 2023, meaning the Compose and Accompanist versions it pins are two major releases behind and the Gradle plugin it uses has known deprecation warnings on anything current. It's a tutorial project with a single feature (hero list + hero detail) — there's no pagination, no offline-first sync strategy beyond a basic cache-then-network pattern, and no real error recovery UX. The acknowledged filter dialog sizing bug has been sitting unfixed since the repo launched, which tells you maintenance priority. Anyone adopting this as a reference for production multi-module work should cross-check every dependency version before they start.