MusicApp KMP – A music player app built using Compose Multiplatform UI
This is a music player app built using Compose Multiplatform UI that works on #Android, #iOS, #Desktop, and #Web 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:
- 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
onVideoCompletedwhich is causing the player to not start automatically. I was unable to configure the callbacks but hopefully, will be fixing that soon.
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 ⭐ ❤️.
Technologies and Libraries Used
- Compose Multiplatform UI
- AVKit Media Player
- VLCJ media player
- HTML media player
- Compose Image Loader
I’m grateful to IceRock Development and Aleksey Mikhailov for their demo application, which was an invaluable resource.
Mobile App Development Best Practices – 06.06
iOS SwiftUI Testing: a Pragmatic Approach Enhancing Security in iOS Applications: Best Practices and Code Examples Beautify Code Without Optionals...
Apple announces Vision Pro augmented reality headset
The Vision Pro is marketed primarily as an AR device, but it can switch between augmented and full virtual reality...
WWDC 2023 Keynote
Check out the WWDC23 keynote, where the latest Apple Vision Pro, MacBook Air 15″, software, services and operating systems were...
LeetCode by Swift – Solutions to LeetCode by Swift
LeetCode Online Judge is a website containing many algorithm questions. Most of them are real interview questions of Google, Facebook, LinkedIn, Apple, etc....
Mobile App Development Best Practices – 05.06
iOS Using Upcoming Feature Flags Network Path Monitoring What’s new in Swift 5.9? Building a robust clean architecture/VIPER iOS app...
Create a game with libGDX
In this exciting episode of our show, we dive into the thrilling world of game development with our guest, Daniele...