awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
android10 avatar

android10/Android-CleanArchitecture

0
View on GitHub↗
15,540 stars·3,276 forks·Java·Apache-2.0·18 views

Android CleanArchitecture

This is a reference implementation of Uncle Bob's clean architecture for Android, structured into distinct domain, data, and presentation layers. The project demonstrates how to organize an Android application around business use cases, keeping domain logic and entities free from framework dependencies.

The architecture enforces dependency inversion through layered separation, where inner domain layers define interfaces that outer layers implement. This approach enables repository abstractions for data source switching, presenter-view separation for testable UI logic, and use-case composition for handling complex business scenarios while maintaining single-responsibility boundaries.

The implementation supports testing each layer in isolation, with unit tests for domain and data layers that run without an emulator, and acceptance tests for the presentation layer. The project serves as a practical guide for structuring Android applications with clean architecture principles.

Features

  • Repository Patterns - A pattern that decouples data sources from business logic by defining repository interfaces in the domain layer and implementing them in the data layer.
  • Switching Mechanisms - Allows runtime or compile-time swapping of data sources (e.g., remote API vs. local cache) through repository implementations behind a common interface.
  • Domain Models - Encapsulates core business rules and data structures in plain Java/Kotlin objects within the domain layer, free from framework dependencies.
  • Android Implementations - Structuring an Android app into domain, data, and presentation layers following Uncle Bob's clean architecture principles for maintainable and testable code.
  • Android Samples - A reference implementation of Uncle Bob's clean architecture for Android, with separated domain, data, and presentation layers.
  • Reference Implementations - A reference implementation for structuring Android applications using clean architecture principles and layer separation.
  • Domain Data Presentation Layers - Separate an application into domain, data, and presentation layers to enforce dependency inversion and isolate business logic.
  • Presenter Patterns - A pattern that separates UI logic into presenters transforming domain data into view-ready state, enabling testability without Android framework coupling.
  • Dependency Inversion Patterns - Enforces a strict dependency rule where inner layers define interfaces implemented by outer layers, keeping domain logic framework-agnostic.
  • Android Implementations - An app structure that enforces dependency inversion by isolating business logic into distinct domain, data, and presentation layers.
  • Logic Decoupling - Keep use cases and domain models free of framework dependencies to make them reusable and testable in pure code.
  • Composed Use Case Flows - Combines multiple use cases within a single presentation flow to handle complex business scenarios while maintaining single-responsibility boundaries.
  • Use Case Driven Architectures - An architecture that organizes application logic around business use cases orchestrating data flow between domain entities and external layers.
  • Isolated Layer Testing - Run unit tests on domain and data layers without an emulator, and acceptance tests on the UI layer with a testing framework.

Star history

Star history chart for android10/android-cleanarchitectureStar history chart for android10/android-cleanarchitecture

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Android CleanArchitecture

Similar open-source projects, ranked by how many features they share with Android CleanArchitecture.
  • kunminx/jetpack-mvvm-best-practiceKunMinX avatar

    KunMinX/Jetpack-MVVM-Best-Practice

    8,928View on GitHub↗

    This project is a reference implementation of the Model-View-ViewModel pattern using Android Jetpack components. It serves as an architecture template and layering guide, dividing application code into view, domain, and data layers to ensure a unidirectional flow of dependencies. The implementation focuses on state management and configuration change handling. It demonstrates how to synchronize UI updates across multiple screens using shared state containers and preserves application state during transitions between portrait and landscape orientations. The codebase covers a broad surface of

    Javajetpackmvvm
    View on GitHub↗8,928
  • bufferapp/android-clean-architecture-boilerplatebufferapp avatar

    bufferapp/android-clean-architecture-boilerplate

    3,684View on GitHub↗

    This project is a clean architecture reference implementation and modular project template for Android development. It provides a structural blueprint designed to isolate business logic from external frameworks and user interfaces. The template emphasizes a modular approach to organize code into independent modules, which is intended to improve build times and long-term project scalability. It demonstrates the application of domain-driven design to keep core business rules and entities independent from the underlying platform. The implementation covers several key architectural patterns, inc

    Kotlinandroidandroid-applicationandroid-architecture
    View on GitHub↗3,684
  • mattia-battiston/clean-architecture-examplemattia-battiston avatar

    mattia-battiston/clean-architecture-example

    1,776View on GitHub↗

    This project is a reference implementation for structuring Java applications using clean architecture and domain-driven design principles. It provides a template for organizing code into concentric layers, ensuring that core business rules and domain entities remain entirely independent of external frameworks, databases, and delivery mechanisms. The architecture relies on the dependency inversion principle to decouple business logic from infrastructure. By defining abstract interfaces for data access and external services, the system allows for the replacement of underlying technologies witho

    Java
    View on GitHub↗1,776
  • bxcodec/go-clean-archbxcodec avatar

    bxcodec/go-clean-arch

    10,118View on GitHub↗

    This project is a boilerplate and template for Go applications implementing Clean Architecture. It provides a standardized project structure designed to organize code into decoupled layers, ensuring that core business logic remains independent of databases, frameworks, and user interfaces. The implementation focuses on a domain-driven design that utilizes dependency injection and the repository pattern to abstract data storage. It enforces architectural boundaries through internal package encapsulation and layer-based dependency inversion. The project includes a development toolchain that au

    Goarchitecturearticleclean-architecture
    View on GitHub↗10,118
See all 30 alternatives to Android CleanArchitecture→

Frequently asked questions

What does android10/android-cleanarchitecture do?

This is a reference implementation of Uncle Bob's clean architecture for Android, structured into distinct domain, data, and presentation layers. The project demonstrates how to organize an Android application around business use cases, keeping domain logic and entities free from framework dependencies.

What are the main features of android10/android-cleanarchitecture?

The main features of android10/android-cleanarchitecture are: Repository Patterns, Switching Mechanisms, Domain Models, Android Implementations, Android Samples, Reference Implementations, Domain Data Presentation Layers, Presenter Patterns.

What are some open-source alternatives to android10/android-cleanarchitecture?

Open-source alternatives to android10/android-cleanarchitecture include: kunminx/jetpack-mvvm-best-practice — This project is a reference implementation of the Model-View-ViewModel pattern using Android Jetpack components. It… bufferapp/android-clean-architecture-boilerplate — This project is a clean architecture reference implementation and modular project template for Android development. It… mattia-battiston/clean-architecture-example — This project is a reference implementation for structuring Java applications using clean architecture and… bxcodec/go-clean-arch — This project is a boilerplate and template for Go applications implementing Clean Architecture. It provides a… cosmicpython/book — This project is a technical resource and pattern library for building enterprise applications with Python. It serves… ivanpaulovich/clean-architecture-manga — This project is a .NET Clean Architecture template designed to separate domain logic from infrastructure and web…