Analysis updated 2026-06-24
Study a working example of Clean Architecture layers on Android
Use the project as a template for a new layered Android codebase
Practice writing unit tests against an isolated domain layer
Compare the Java version with the author Kotlin rewrite to plan a migration
| android10/android-cleanarchitecture | apache/hadoop | konloch/bytecode-viewer | |
|---|---|---|---|
| Stars | 15,548 | 15,545 | 15,511 |
| Language | Java | Java | Java |
| Setup difficulty | moderate | hard | easy |
| Complexity | 3/5 | 5/5 | 3/5 |
| Audience | developer | data | developer |
Figures from each repo's GitHub metadata at analysis time.
Needs Android Studio with the right SDK and a device or emulator before Espresso tests will run.
Android-CleanArchitecture is a sample Android application written in Java that demonstrates how to structure an Android app using the Clean Architecture approach described by Robert C. Martin (known as "Uncle Bob"). It was created as a companion to a series of blog posts explaining how to apply this architectural pattern to Android development. Clean Architecture organizes code into distinct layers, such as a presentation layer (the UI), a domain layer (the core business rules), and a data layer (network and database calls), with strict rules about which layers can communicate with which. This separation makes the code easier to test independently and easier to maintain as it grows. The sample app illustrates these layer separations and also demonstrates a reactive approach using RxJava. The project supports standard Gradle commands to build the app, run unit tests, run integration tests, and run end-to-end acceptance tests using Espresso. A newer version of this same concept rewritten in Kotlin is also available from the same author. The project is licensed under the Apache License 2.0.
Sample Android app in Java that shows how to apply Uncle Bob Clean Architecture with presentation, domain, and data layers plus RxJava. Companion to a tutorial series.
Mainly Java. The stack also includes Java, Android, RxJava.
Apache License 2.0. Use it freely in open source or commercial projects as long as you keep the notice.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.