Java application that simulates a music platform, built following Clean Architecture principles.
The project is structured in 3 layers:
- Domain - Models, repository interfaces and use cases. No external dependencies.
- Data - Repository implementations and data sources (in-memory, API).
- Presentation - Views that consume use cases and display results.
Each feature (songs, albums, authors) follows this same structure independently.
- Repository Pattern - Abstracts data access behind interfaces defined in the domain layer.
- Singleton Pattern - Ensures a single shared instance of in-memory data sources.
- Songs
- Albums
- Authors
- Java
- Gradle (Kotlin DSL)
- Exercise 01 - Get albums list
- Exercise 02 - Save author in local
- Exercise 03 - Get authors from API using Retrofit
- Exercise 04a - Singleton pattern in Songs feature
- Exercise 04b - Singleton pattern in Authors feature
- Exercise 05a - SaveSongUseCase
- Exercise 05b - SaveAuthorUseCase
- Exercise 06a - DeleteSongUseCase
- Exercise 06b - DeleteAuthorUseCase
- Exercise 06c - DeleteAlbumUseCase