A modern, cross-platform music player built with Kotlin Multiplatform and Jetpack Compose.
- 🎵 Music playback with play/pause, skip forward/backward controls
- 🔊 Volume control
- 📱 Cross-platform support for Android, iOS, and Desktop
- 🎨 Modern Material 3 design
- 🌐 Client-server architecture with Ktor
GrooveBox is built using modern technologies:
- Kotlin Multiplatform (v2.1.21) - Share code across platforms
- Jetpack Compose Multiplatform (v1.9.0-alpha02) - UI framework
- Material 3 - Design system
- Koin (v4.1.0) - Dependency injection
- Ktor (v3.1.3) - Networking and server components
- BasicPlayer (v3.0.0.0) - Audio playback
- Kotlinx Coroutines (v1.10.2) - Asynchronous programming
/composeApp- Shared Compose Multiplatform codecommonMain- Code shared across all platforms- Platform-specific folders for Android, iOS, and Desktop
/iosApp- iOS application entry point/server- Ktor server application/shared- Code shared between all targets
- Android Studio or IntelliJ IDEA
- Kotlin Multiplatform Mobile plugin
- Java JDK 11 or newer
- Xcode (for iOS development)
-
Clone the repository:
git clone https://github.com/renaudmathieu/GrooveBox.git cd GrooveBox -
Open the project in Android Studio or IntelliJ IDEA.
-
Sync the project with Gradle files.
- Select the Android configuration and run on an emulator or physical device.
- Open the
iosAppproject in Xcode and run on a simulator or physical device. - Alternatively, use the Kotlin Multiplatform Mobile plugin to run on iOS.
- Run the desktop configuration to launch the application on your computer.
- Run the server module to start the Ktor server.
The project supports Compose Hot Reload for faster development:
./gradlew :composeApp:developmentExecutableAndroidDevelopmentDebug
This project is licensed under the MIT License - see the LICENSE file for details.