A music player for Android that is catered for albums
- Kotlin 100%
|
|
||
|---|---|---|
| app | ||
| gradle | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
Beetnik Android
A music player for Android that is catered for albums
Features
- Browse by album — 3-column grid, grouped by artist
- Browse by artist — alphabetical list, tap to see all albums
- Recently added — albums sorted by date added
- Random — shuffled grid; tap the tab again to reshuffle
- Search — filters albums or artists in real time
- Now playing bar — album art, track title, seek bar, prev/play/next
- Album detail — track list with disc headers for multi-disc albums; tap a track to play it
- Persistent cache — metadata is stored in a Room database so subsequent launches are instant
Requirements
- Android 8.0 (API 26) or later
- A folder of audio files (MP3, FLAC, OGG, M4A, Opus, WAV)
Getting started
- Open the app and tap Settings
- Pick your music folder — the app will scan and cache all tracks
- Browse, tap an album to open it and start playing
Building
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
adb shell am start -n dev.beetnik/.MainActivity
Stack
| Language | Kotlin |
| UI | Jetpack Compose + Material 3 |
| Player | Media3 ExoPlayer + MediaSessionService |
| Storage | Room (SQLite) |
| Image loading | Coil |
| Min SDK | 26 (Android 8.0) |
| Target SDK | 35 (Android 15) |
Icon
Vinyl record icon from Material Design Icons, licensed under Apache 2.0.