// the find
android10/Android-CleanArchitecture-Kotlin
This is a movies sample app in Kotlin, which is part of a serie of blog posts I have written about architecting android application using different approaches.
A Kotlin Android sample app demonstrating Clean Architecture with MVVM, a custom Either type for functional error handling, and use cases as the domain layer. It's aimed at Android developers who want a concrete reference implementation rather than a theoretical explanation of the pattern.
The Either<Failure, T> abstraction in the functional layer is well-executed — it forces callers to handle errors explicitly rather than swallowing exceptions. The layer separation is strict and consistent: data entities never leak into domain models, and use cases run on a background thread by default via the base UseCase class. The accompanying blog posts provide the rationale behind decisions rather than just showing the code. Test coverage spans unit tests per layer and Espresso acceptance tests, which is more than most sample repos bother with.
The Compose migration has been 'WIP' since at least August 2024 and still isn't done, so the UI layer uses the old Fragment/Activity approach that Google has been deprecating for years — you'd be learning patterns you'd need to unlearn. The data layer hits a static JSON file for movies rather than a real API, which dodges authentication, pagination, and error surface that actually matter in production. Dagger 2 is the DI solution, and while it works, the ecosystem has largely moved to Hilt; adopting this as a starting point means you'll rewrite the DI layer. The repo's own README admits it's mid-refactor with open TODOs, so the current state is somewhere between the old approach and the new one.