- Notifications
You must be signed in to change notification settings - Fork122
This is a music player app built using Compose Multiplatform UI and KMP that works on Android, iOS, Desktop, and Web platforms.
SEAbdulbasit/MusicApp-KMP
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a music player app built using Compose Multiplatform UI that works on Android, iOS, Desktop, and Webplatforms. It uses the spotify api for fetching the top 50 charts and getting the trending albums. The Google login is still in pendingand for now, you need to add the spotify token manually. You can easily hit the endpointhere to get the albumand then get the token and set in the app.
This repository has been listed asKMP sample on official website of Jetbrains.
You can find it livehere
The app uses different media players on different platforms:
For iOS, AVKit is usedFor Android, Media Player is usedFor Desktop, VLC media player is usedFor the Web, an HTML media player is used.
One of the objectives of building this app was to explore how Compose UI interacts with low-level APIs. The experiencewas challenging yet fun, and the process taught me a lot.Out of all the media players used, integrating with the Web Media Player was the easiest. I'm grateful to IceRockDevelopment and Aleksey Mikhailov for their demo application, which was a fantastic learning resource.
- Clone this repository:
git clone https://github.com/SEAbdulbasit/MusicApp-KMP.git
- Open the project in Android Studio or IntelliJ IDEA.
- Search forTOKEN file in the code and replace the placeholder with yourSpotify access token. You cangenerate a new token from theSpotify Developer Dashboard.
- Run the app on your desired platform.There are a few known issues with the Music Player app using Compose Multiplatform UI:
- Run on Desktop
./gradlew desktopApp:run
- Run on Web
./gradlew jsBrowserDevelopmentRun
- When you click "Select All" on Android, Web, and Desktop, the app will autoplay the selected tracks and continueplaying the next track when the previous one ends.On iOS, there are issues with the callbacks for
onReady
andonVideoCompleted
which is causing the player to not start automatically. I was unable to configure the callbacks but hopefully, will befixing that soon.
To explore what Compose UI can do, check out the repository for the latestupdates:https://github.com/SEAbdulbasit/MusicApp-KMP.
If you're interested in getting started with Compose Multiplatform, I have a template for youhere:https://github.com/SEAbdulbasit/KMP-Compose-Template.
If you find my work helpful, please consider giving it a ⭐ ❤️.
TravelApp:https://github.com/SEAbdulbasit/TravelApp-KMP
- Kotlin
- Compose Multiplatform UI
- AVKit Media Player
- VLC media player
- HTML media player
- Compose Image Loader
- Decompose
TODO
- Add google login
- Add local db to save favorite playlist
- Add implementation for recent releases
About
This is a music player app built using Compose Multiplatform UI and KMP that works on Android, iOS, Desktop, and Web platforms.
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors11
Uh oh!
There was an error while loading.Please reload this page.