This project uses the GitHub API to retrieve and display information from Users and Repositories in a user-details screen. The goal is to implement Clean Architecture principles by organizing code into Repositories, Repository Interfaces, Mappers, and UseCases. Dependency injection is managed with Koin, and the project includes Unit Tests to ensure robustness.
- Clean Architecture: Code is organized in layers with clear responsibilities, separating business logic from presentation logic.
- SOLID Principles: Applying principles like single responsibility and dependency inversion to ensure the project’s scalability and maintainability.
- Repository Pattern: Repository interfaces for data access, promoting decoupling between layers.
- Mappers: Data transformation between different layers and models.
- UseCases: Encapsulation of business rules and core operations, isolating application logic.
- Koin for Dependency Injection: Simplified configuration of dependencies for modularity and testing.
- Unit Testing: Ensuring the functionality and integration between layers to prevent regressions and maintain quality.
- Using:
- LiveData: For observing and updating the UI with reactive data.
For a deeper dive into the architecture, SOLID principles, and additional technical information used, please refer to the Wiki.
┌──────────────┐ │ │ │ Main │ LiveData (YOU ARE HERE) │ │ └──────┬───────┘ │ ┌─────────────┴─────────────── │ ┌──────┴───────┐ │ │ │ Flow │ │ │ └──────────────┘
- Clone the repository.
- Configure your GitHub API token if required.
- Run the project on Android Studio.
This project is licensed under the The Unlicense - see the LICENSE file for details.