A modern, feature-rich offline music player for Android built with Jetpack Compose and Material 3 design.
Features β’ Architecture β’ Getting Started β’ Screenshots β’ Documentation
- Foreground Service - Uninterrupted playback with Media3 ExoPlayer
- Media Controls - Play, pause, skip, seek with notification controls
- Playback Modes - Shuffle and repeat (off/one/all)
- Speed Control - Adjust playback speed from 0.5x to 2.0x
- Queue Management - View and manage current play queue
- Background Playback - Continue playing when app is minimized
- Auto Scan - Automatically detect music files on device
- Smart Categories - Recently played, most played, favorites
- Search - Fast real-time search across songs, artists, and albums
- Play Statistics - Track play counts and listening history
- Favorites - Mark and filter your favorite tracks
- Custom Playlists - Create and manage unlimited playlists
- Easy Management - Add/remove songs with intuitive UI
- Flexible Organization - Songs can appear in multiple playlists
- Scheduled Pause - Set timer to automatically pause playback
- Multiple Durations - Choose from 5 to 60 minutes
- Reliable - Powered by WorkManager for guaranteed execution
- Notifications - Get notified when timer expires
- Material 3 Design - Beautiful, consistent Material You interface
- Dark Theme - Easy on the eyes for night listening
- Mini Player - Persistent controls at bottom of screen
- Album Art - Beautiful artwork display with Coil image loading
- Smooth Animations - Polished transitions and interactions
Built with Clean Architecture and MVVM pattern for maintainability and testability.
ββββββββββββββββββββββββββββββββββββ
β UI Layer (Compose) β
β Screens, Components, Navigation β
ββββββββββββββ¬ββββββββββββββββββββββ
β observes StateFlow
ββββββββββββββΌββββββββββββββββββββββ
β ViewModel Layer β
β Business Logic, UI State β
ββββββββββββββ¬ββββββββββββββββββββββ
β uses
ββββββββββββββΌββββββββββββββββββββββ
β Repository Layer β
β Single Source of Truth β
ββββββββββββββ¬ββββββββββββββββββββββ
β accesses
ββββββββββββββΌββββββββββββββββββββββ
β Data Sources β
β Room, DataStore, MediaStore β
ββββββββββββββββββββββββββββββββββββ
- Kotlin - Modern, concise language
- Jetpack Compose - Declarative UI framework
- Material 3 - Latest design system
- Media3 - Professional media playback
- Room - Type-safe database
- Coroutines & Flow - Async operations
- WorkManager - Background task scheduling
- DataStore - Preferences storage
- Coil - Image loading
- Navigation Compose - Screen navigation
- Android Studio Hedgehog (2023.1.1) or later
- Android SDK API 29 or higher
- Kotlin 1.9.0 or higher
- Clone the repository
git clone https://github.com/yourusername/susic.git
cd susic- Open in Android Studio
File β Open β Select 'Susic' folder
- Sync Gradle
File β Sync Project with Gradle Files
- Run the app
Run β Run 'app' (Shift+F10)
- Grant Permissions - Allow access to audio files
- Scan Library - Tap refresh icon to scan device
- Start Playing - Select any song to begin
The app requires the following permissions:
- Storage/Audio - Read music files from device
- Foreground Service - Background playback
- Notifications - Media controls and timer alerts
- Wake Lock - Prevent sleep during playback
All permissions are requested at runtime with proper rationale.
# Debug build
./gradlew assembleDebug
# Release build
./gradlew assembleRelease
# Run tests
./gradlew test# Unit tests
./gradlew test
# Instrumented tests
./gradlew connectedAndroidTestContributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Android Auto integration
- Wear OS companion app
- Equalizer and audio effects
- Lyrics display
- Home screen widgets
- Custom themes
- Cloud backup
- Playlist sharing
This project is licensed under the MIT License - see the LICENSE file for details.
- Jetpack Compose - Modern UI toolkit
- Material 3 - Design system
- Media3 - Media playback
- Room - Database library
- Coil - Image loading
For questions or feedback, please open an issue on GitHub.
Made with β€οΈ using Kotlin and Jetpack Compose
β Star this repo if you find it helpful!





