finds.dev← search

// the find

android10/Android-CleanArchitecture

★ 15,541 · Java · Apache-2.0 · updated Apr 2023

This is a sample app that is part of a series of blog posts I have written about how to architect an android application using Uncle Bob's clean architecture approach.

A reference implementation of Uncle Bob's Clean Architecture for Android, written in Java with RxJava and Dagger 2. It splits the app into three modules — domain, data, presentation — with strict dependency rules between them. This was the canonical example of this pattern for Android circa 2014-2018.

The three-module Gradle structure enforces layer boundaries at the build level, not just by convention — the domain module genuinely has no Android dependencies. The use case / interactor pattern is clearly expressed and easy to follow. Test coverage spans all three layers with separate unit and instrumentation tests. The companion blog posts explain the reasoning behind each decision, which makes this actually useful for learning rather than just cargo-culting.

This repo is a museum piece. It predates ViewModels, LiveData, Coroutines, and Hilt — the author even links to a Kotlin rewrite in the README. The RxJava threading model it uses has been replaced by coroutines in every serious Android codebase since 2020. Dagger 2 component/module setup is notoriously verbose and the patterns here will actively mislead anyone trying to apply this to a modern project that uses Hilt. Last pushed in 2023 only because someone bumped something; the architecture guidance is effectively frozen at 2018.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →