Jetispot
probably usable UNOFFICIAL Spotify client for Android, built with Jetpack Compose and librespot-java
Spotify Premium account is REQUIRED*. Offline caching, DRM bypassing or raw file downloading is prohibted by ToS and will NEVER be implemented in Jetispot. Don't waste your time trying to request these features.
What's working:
- sign in (login/pass only, no FB/Meta/whatsoever support, no Smart Lock either)
- "browse", "home", album, premium plan, artist and genre screens (some of the blocks might be unsupported)
- library: "liked songs" w/ tag&sort support, rootlist (liked playlists) + pins + artist/album support w/ nice animations, delta updates + pub/sub processing support
- basic playback w/ Spotify Connect support (connect support is very WIP)
- fairly optimized R8 rules, providing approx. 5-6 megabytes release APK size (with the playback and protobuf parts!)
What's in progress:
- "Now Playing" improvements
- better service (notification improvements)
Application stack:
- playback: librespot-java as the core + sinks/decoders from librespot-android + Media2 for the mediasession support
- UI: Jetpack Compose
- DI: Hilt/Dagger
- network: Retrofit w/ Moshi+Protobuf converters
- pictures: Coil
- storage: Room (collection), MMKV (metadata)
- arch: MVVM
- preferences: Jetpack Datastore (proto)
Credits:
- librespot-java for the core API part and playback
- librespot-android for sink and decoder source (in Jetispot they are rewritten to Kotlin)
- moshi and moshix for the undocumented API JSON parsing
- VK Icons for the amazing icon set used in the application's icon
- MMKV for ultra-fast way to cache entity extended metadata
- Google for Android/Jetpack/Hilt
* I heard some people can log in with a free account, but I won't provide any assistance to people without premium subscription. There is a possibility that a subscription check may be added to the client side in the future.