A playground app for experimenting with clean architecture principles.
This project is devided into 3 main modules (layers):
- Domain layer - All business logic and entities represented by 'use cases' and abstraction (repositories interfaces etc..)
- Data layer - Implementation of the Domain's abstraction. Room DB for local storage, Retrofit for calling open source API.
- Presentation layer - All UI related elements. Another App module exist for wrapping everything together, this way I keeping a good separation of concern between layers. Most importantly no business logic in the UI layer!
Download this repository as Zip or checkout the source code. A showcase app is available on Google Play at:
- Rocket Launcher - Free download
This project is licensed under Apache License Version 2.0. Use it as a guide for your projects or go through the code while learning clean architecture.
To complete this project I've read many Medium blogs, Android developers blog and books: