This project is a proof of concept for an Android application that displays the top 100 albums from the iTunes API using Kotlin, Jetpack Compose, and Clean Architecture principles.
This Kotlin app needs to display the top 100 songs based on the iTunes API. The JSON feed is here: https://itunes.apple.com/us/rss/topalbums/limit=100/json
- Retrieve Top 100 Albums: Fetches the top 100 albums from the iTunes API
- Display Albums: Shows the albums in a list with thumbnails
- View Modes: Switch between GridView and ListView
- Search Functionality: Search albums by name
- Album Details: View album details on click
- Kotlin: Programming language
- Jetpack Compose: UI toolkit for building native Android interfaces
- Dagger Hilt: Dependency injection
- Material Design 3: UI design guidelines
- Retrofit: HTTP client for API requests
- Kotlin Coroutines: Asynchronous programming
- Paging Library: Efficiently loads large data sets (branch: paging-library)
- Target SDK: 34
Testing is done following the testing pyramid with a given, when, then style.
- JUnit4 testing framework
- Mockk for Mocking
- Coroutine Testing API for testing coroutines
- Kotlin Turbine for testing Flows
- A Favorite option for albums
- Sort list items by name, artist, or release date
- Menu option to access other API endpoints
- Offline mode
- Filter by genre or artist
- Artist profile


