A clean architecture base project for Android using Kotlin, Dagger2, and RxJava to isolate UI, business logic, and data layers.
Android Clean Architecture - Kotlin is a base project template that implements Clean Architecture principles for Android development using Kotlin. It provides a structured approach to separate UI, business logic, and data layers, making applications more maintainable and testable. The project integrates modern libraries like Dagger2 and RxJava to handle dependency injection and asynchronous operations.
Android developers starting new projects who want a scalable, testable architecture following Clean Architecture principles. It's ideal for teams prioritizing code separation and unit testing.
Developers choose this project because it offers a pre-configured, optimized Clean Architecture setup with popular Android libraries, reducing boilerplate and enforcing best practices for maintainability and testability from the start.
Using Uncle Bob's clean architecture with Kotlin language and the latest Android technologies(Rx, Dagger2 etc.).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enforces strict separation into Data, Domain, and Presentation layers, isolating UI logic from business rules and data sources as described in the architecture diagram.
Base UseCase class manages RxJava threading, automatically moving work to IO threads and results to the UI thread, simplifying concurrency management.
Integrates Dagger2 for dependency injection, RxJava2 for reactive streams, and Retrofit for networking, providing a production-ready tech stack.
Designed to isolate dependencies, making unit testing straightforward with support for JUnit, Mockito, and PowerMock, as highlighted in the libraries list.
Relies on RxJava2 and Dagger2, which are increasingly superseded by Kotlin coroutines/Flow and Hilt in modern Android development, potentially limiting future-proofing.
Requires familiarity with Clean Architecture, RxJava, and Dagger2, leading to a steep learning curve that can delay project kickoff, as implied by the advanced library dependencies.
Uses the MVP pattern with traditional Android views, lacking integration with modern UI frameworks like Jetpack Compose, which might not align with current best practices.