back to home

music-assistant / mobile-app

The (official) Music Assistant Mobile app is a cross-platform client application designed for Android, iOS, and Java runtime environments. Developed using Kotlin Multiplatform (KMP) and Compose Multiplatform frameworks, this project aims to provide a unified codebase for seamless music management across multiple platforms.

208 stars
22 forks
8 issues
KotlinSwift

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing music-assistant/mobile-app in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/music-assistant/mobile-app)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

Music Assistant Mobile app The (official) Music Assistant Mobile app is a cross-platform client application designed for Android and iOS. Developed using Kotlin Multiplatform (KMP) and Compose Multiplatform frameworks, this project aims to provide a unified codebase for seamless music management across mobile platforms. Please note that this project is still under (heavy) development and not yet in a production state or published to any of the app stores. Development work is in progress to allow this project to become the official mobile app for the Music Assistant project. This client interfaces with the Music Assistant Server, an open-source media library manager that integrates with various streaming services and connected speakers. The server acts as the core component, running on devices like Raspberry Pi, NAS, or Intel NUC, and facilitates centralized music management. By leveraging the capabilities of KMP and Compose Multiplatform, Music Assistant Kmp Client offers a consistent and efficient user experience across different platforms, simplifying the development process and ensuring feature parity. Current set of features: Disclaimer: This app is not intended to provide offline playback • All platforms: • managing MA players queues and playback; • managing dynamic and static groups (no static group creation); • local playback on device from MA library (Sendspin streaming protocol over WebRTC or WebSocket); • comprehensive Settings screen with section-based UI for server connection, authentication (builtin/OAuth), and local player configuration. • Android-specific: • media service (background playback) and media notification in system area for quick access to players controls; • Android Auto support for built-in player. • iOS-specific: • native audio playback via AudioQueue (CoreAudio) with support for FLAC, Opus, and PCM; • Lock Screen and Control Center integration (Now Playing info, play/pause/next/prev remote commands); • background audio playback with automatic resume after phone call or Siri interruptions; • WebRTC data channel transport for low-latency Sendspin streaming. Contributing The project is in an early stage of development. Any help (especially from designers and iOS developers) is appreciated. To contribute: • Find an issue to work on - if you've noticed something wrong or missing, please file an issue about it • Ask in the issue if you can work on it - this prevents multiple people from working on an issue at the same time • Submit a PR with "Closes # " at the top of the description Structure The project currently supports the iOS and Android targets. Common code is held within a KMP library module ( ) which the two platform specific app modules then depend on ( and ). Building from source iOS See ios_build_instructions.md for a full step-by-step guide covering: • Required tools and JDK version (JDK 21 LTS required — JDK 25 is not supported) • WebRTC framework setup • Signing and provisioning configuration • Build commands for simulator and physical device • Known limitations and troubleshooting Android Writing/running tests Tests for shared multiplatform code live in the module's source set. These can be run locally in the JVM for the Android target using . Tests for Compose UI code are in the module. This is because multiplatform Compose testing is currently still experimental and tests written using the multiplatform approach cannot be easily run in a local JVM yet without the desktop target (which this project doesn't use). The Compose tests can be run with . Want to try it? Download and install debug APK from latest release on releases page. *Disclamer: this is debug version of application, and isn't recommended for usage beyond testing purposes!* To use the app with Android Auto you will need additional steps • in Android Auto menu on your phone, click repeatedly on text, until dialog appears, that will allow you turning dev mode on; • after turning it on, in overflow menu (three dots on top) choose ; • in dev settings, find and enable ; • after this, customize your launcher to show Music Assistant.