explaingit

android10/android-cleanarchitecture

Analysis updated 2026-06-24

15,548JavaAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

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.

Mindmap

mindmap
  root((Android-CleanArchitecture))
    Inputs
      Network calls
      Local storage
      User actions
    Outputs
      Built APK
      Unit and integration test results
      Espresso acceptance runs
    Use Cases
      Learn Clean Architecture on Android
      Template a new layered project
      Practice RxJava patterns
    Tech Stack
      Java
      Android
      RxJava
      Gradle
      Espresso
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study a working example of Clean Architecture layers on Android

USE CASE 2

Use the project as a template for a new layered Android codebase

USE CASE 3

Practice writing unit tests against an isolated domain layer

USE CASE 4

Compare the Java version with the author Kotlin rewrite to plan a migration

What is it built with?

JavaAndroidRxJavaGradleEspresso

How does it compare?

android10/android-cleanarchitectureapache/hadoopkonloch/bytecode-viewer
Stars15,54815,54515,511
LanguageJavaJavaJava
Setup difficultymoderatehardeasy
Complexity3/55/53/5
Audiencedeveloperdatadeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Needs Android Studio with the right SDK and a device or emulator before Espresso tests will run.

Apache License 2.0. Use it freely in open source or commercial projects as long as you keep the notice.

In plain English

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.

Copy-paste prompts

Prompt 1
Walk through the layer boundaries in Android-CleanArchitecture and show what each module is allowed to import
Prompt 2
Convert one feature in this Java sample to Kotlin coroutines instead of RxJava
Prompt 3
Write a new use case in the domain layer that fetches and caches user details following the existing patterns
Prompt 4
Set up the Espresso acceptance tests locally and explain the Gradle tasks that run each test tier

Frequently asked questions

What is android-cleanarchitecture?

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.

What language is android-cleanarchitecture written in?

Mainly Java. The stack also includes Java, Android, RxJava.

What license does android-cleanarchitecture use?

Apache License 2.0. Use it freely in open source or commercial projects as long as you keep the notice.

How hard is android-cleanarchitecture to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is android-cleanarchitecture for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub android10 on gitmyhub

Verify against the repo before relying on details.