Music Player App Using Compose Multiplatform

Posted by

This is a music player app built using Compose Multiplatform UI that works on #Android, #iOS, #Desktop, and #Web
platforms.

Platforms

The app uses different media players on different platforms:

For iOS, AVKit is used
For Android, Media Player is used
For Desktop, VLCJ media player is used
For the Web, an HTML media player is used.

Integration with Low-Level APIs

One of the objectives of building this app was to explore how Compose UI interacts with low-level APIs. The experience
was 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 IceRock
Development and Aleksey Mikhailov for their demo application, which was a fantastic learning resource.

Running the app

  • Clone this repository:
git clone https://github.com/SEAbdulbasit/MusicApp-KMP.git
  • Open the project in Android Studio or IntelliJ IDEA.
  • Search for TOKEN file in the code and replace the placeholder with your Spotify access token. You can
    generate a new token from the Spotify Developer Dashboard.
  • Run the app on your desired platform.
    There are a few known issues with the Music Player app using Compose Multiplatform UI:

Known Issues

  • When you click “Select All” on Android, Web, and Desktop, the app will auto-play the selected tracks and continue
    playing the next track when the previous one ends.
    On iOS, there are issues with the callbacks for onReady and onVideoCompleted
    which is causing the player to not start automatically. I was unable to configure the callbacks but hopefully, will be
    fixing that soon.

Demo

Screenshot 2023-03-05 at 4 44 45 PM

Repository

To explore what Compose UI can do, check out the repository for the latest
updates: https://github.com/SEAbdulbasit/MusicApp-KMP.

If you’re interested in getting started with Compose Multiplatform, I have a template for you
here: https://github.com/SEAbdulbasit/KMP-Compose-Template.

If you find my work helpful, please consider giving it a ⭐ ❤️.

Other Projects

TravelApp: https://github.com/SEAbdulbasit/TravelApp-KMP

Technologies and Libraries Used

  • Kotlin
  • Compose Multiplatform UI
  • AVKit Media Player
  • VLCJ media player
  • HTML media player
  • Compose Image Loader

GitHub

View Github

#Compose #Android #iOS #MusicPlayer

Leave a Reply

Your email address will not be published. Required fields are marked *