Add Kotlin Multiplatform mobile client

A Compose Multiplatform app (mobile/) targeting Android, iOS, and desktop,
sharing one Kotlin codebase: OIDC login via PKCE against the same Zitadel
instance the web player uses (loopback redirect on desktop, a musify://
custom scheme on mobile), a token store per platform, and a first pass at
browsing/streaming tracks through the existing API.

deploy/compose.yml's zitadel-init gains a third OIDC app registration
("Musify Native", public client, no secret) alongside the existing API and
web apps, writing its client id to NATIVE_CLIENT_ID in the env file the same
way the other two already do.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-10 10:03:11 +02:00
co-authored by Claude Sonnet 5
parent 7ac1f7bad8
commit 20d01a0eb2
50 changed files with 2200 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
# Gradle / Kotlin
.gradle/
build/
.kotlin/
local.properties
# IDE
.idea/
*.iml
# Xcode (if a companion iosApp project is added)
*.xcodeproj/xcuserdata/
*.xcworkspace/xcuserdata/
DerivedData/