Create a simple Audio Player App using Jetpack Compose.
The app should fetch a list of songs from an API and allow the user to play a selected track.
- Fetch and display a list of songs from an API
- Each list item should show:
- Song title
- Artist name
- Optional: Artwork image (if available)
- Tapping on a song navigates to the Player Screen
- Display:
- Song title and artist
- Artwork image (if available)
- Audio controls:
- Play / Pause
- Seek bar with current playback time and total duration
- Bonus:
- Skip forward / backward
- Show buffering or loading state
- Use Kotlin and Jetpack Compose for UI
- Implement audio playback using ExoPlayer or similar.
- Fetch data from the following API: https://harmanec.com/hh-assignment/tracks.json
- Show loading indicators and handle errors (e.g., failed network request or audio playback issue).
- Implement the project in KMP (kotlin multiplatform)
- share business login in Kotlin, native UI
- Background audio playback
- Persist last played song and playback position
- Lock screen / media notification controls
- Simple unit tests for shared ViewModels
- Display waveform or playback animation
- Download tracks for offline playback
- Push the project to GitHub (public or private).
- Include a README that covers:
- Instructions to run the app
- Any assumptions or known issues
- Clean and maintainable Kotlin code
- Use of proper architecture
- Effective use of Jetpack Compose
- Audio handling and UI responsiveness
- Attention to UX/UI details
- Bonus features and creativity