Compose Multiplatform Migration of ListenBrainz-Android
ListenBrainz has an Android app but no iOS version. A previous Swift attempt just duplicated the codebase, meaning every bug fix had to be written twice. This project fixes that by migrating to Kotlin Multiplatform - one shared codebase for both platforms. Most of the work is tedious: swapping Android-only libraries for multiplatform equivalents across navigation, dependency injection, paging, and more. Media playback is trickier. ExoPlayer and WorkManager are too Android-specific to share, so both get wrapped behind common interfaces, with ExoPlayer on Android and AVPlayer on iOS underneath. One thing genuinely can't move: the notification listener that reads what's playing in Spotify relies on an Android-only permission iOS doesn't allow. Those screens stay Android-only, no workaround exists. Everything else: one codebase, both platforms.
Project details
Technologies
Not listed in the archive