The MusicStreamSync is an application which allows the sync between Apple Music and Last.fm.
Apple Music does not allow a full integration with Last.fm because of the format of the APIs.
This app connects with Apple Music to list the current playing item and the history to work as an intermediary between Apple and Last.fm, for both iOS and Android.
| iOS | Android |
|---|---|
![]() |
![]() |
This is a Kotlin Multiplatform project targeting Android, iOS.
-
/composeAppis for code that will be shared across your Compose Multiplatform applications. It contains several subfolders:commonMainis for code that’s common for all targets.- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name.
-
/iosAppcontains iOS applications. Even if you’re sharing your UI with Compose Multiplatform, you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project. -
/sharedis for the code that will be shared between all targets in the project. The most important subfolder iscommonMain. If preferred, you can add code to the platform-specific folders here too. -
/shared/nativecontains code used by C-Interops to build bridges between Kotlin Multiplatform and native libraries
Learn more about Kotlin Multiplatform…
This app uses MusicKit API, which is an Apple API. This requires a private
key to integrate/authenticate the API calls. For that, you, as a developer, needs
to create a media identifier and private key
that is used in the code as PrivateKey to perform the necessary MusicKit calls.
This project uses Arkana to obfuscate keys and allow injection of values at compile time. To be able to correct build the project, first:
- Copy the
.env.samplefile as.env - Update the values on
.env - Install Arkana with:
gem install arkana - Run Arkana with:
arkana -l kotlin
- Open the Xcode project
- Update the Bundle ID and Team ID on App.xcconfig
- Run the application

