A video demonstrating the application can be found here : https://drive.google.com/file/d/17-w22Qu49bTw9rnQ3MtZYNJ8h7bMW2ix/view?usp=sharing
Screenshots from the application :
- Kotlin based
- ExoPlayer for playing multimedia files
- Coroutines for asynchronous.
- Compose - Modern toolkit for building native UI.
- Lifecycle - Create a UI that automatically responds to lifecycle events.
- LiveData - Notify domain layer data to views.
- Navigation - Handle everything needed for in-app navigation.
- ViewModel - UI related data holder, lifecycle aware.
- Hilt - For dependency injection.
- Coil - An image loading library for Android backed by Kotlin Coroutines.
- Jetpack Compose UI.
- Jetpack Compose Navigation
- MVVM Architecture
- Dependency injection with Hilt
- Retrieves Music from the network using Retrofit
- Allows background playback using a foreground service
- Media style notifications
- Uses a MediaBrowserService to control and expose the current media session
- Controls the current playback state with actions such as: play/pause, Swip bottom bar to skip next/previous, skip to next/previous and stop
- Pagination
- Caching (Client Side)
- Animations
- Code Optimisations
- Unit Testing
- Oneplus 9 pro
- Samsung S20 FE
- Samsung A31
- Samsung M31s
Disclaimer - The above code consists of system-generated files and does not have source code within. This was caused due to a system-failure at my end, causing all the source files to be deleted.