https://github.com/farbodbj/yourmusic
Simple music player app using media3 library, clean architecture and best best practices
https://github.com/farbodbj/yourmusic
android android-application clean-achitecutre exoplayer kotlin kotlin-android media3 mvvm
Last synced: 5 months ago
JSON representation
Simple music player app using media3 library, clean architecture and best best practices
- Host: GitHub
- URL: https://github.com/farbodbj/yourmusic
- Owner: farbodbj
- Created: 2023-08-26T12:29:37.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-11-30T16:25:12.000Z (almost 2 years ago)
- Last Synced: 2025-03-31T22:22:12.716Z (7 months ago)
- Topics: android, android-application, clean-achitecutre, exoplayer, kotlin, kotlin-android, media3, mvvm
- Language: Kotlin
- Homepage:
- Size: 905 KB
- Stars: 10
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Your Music
## Description
This is a simple music player app which lets you browse and play sound tracks saved on your android device, it provides features like playing music in background, controlling music through notification etc.
This project along with [**GuardianNews**](https://github.com/farbodbj/GuardianNews) were the two projects I have completed as an exercise in the process of my android bootcamp.## Stack
| Tools | Link |
| :--- | :---: |
| 🤖 Kotlin | [Kotlin](https://kotlinlang.org/) |
| 🎶 Media3 | [Loading & Playing Music](https://developer.android.com/guide/topics/media/media3) |
| 🗝️ Hilt | [DI](https://dagger.dev/hilt/) |
| 🖼️ Glide | [Loading Pictures](https://github.com/bumptech/glide) |## Design Process
The new [**Jetpack media3**](https://developer.android.com/guide/topics/media/media3) was the core library used in this project. [**MediaStore**](https://developer.android.com/reference/android/provider/MediaStore) was used for providing an real-time access (using Flow api & kotlin coroutines) method to the music files from device storage, [**MediaSessionService**](https://developer.android.com/reference/androidx/media3/session/MediaSessionService) for managing audio playback along with media3 in-built exoplayer and media session. It was tried to keep the design scalable and robust while avoiding unnecessary complications.## Visuals
music list
single music
permission
![]()
![]()
![]()
notification
![]()
## Contributing
Feel free to contribute to this project by pointing out any bugs, design flaws, updating for best practices or etc using issues or pull requests. I hope this app can be used as a reference for other learners or even be used to actually listen to some quality music :)