Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iTaysonLab/jetispot
experimental UNOFFICIAL Spotify client for Android built on librespot-java + Jetpack Compose
https://github.com/iTaysonLab/jetispot
android jetpack-compose kotlin librespot-java spotify
Last synced: 3 months ago
JSON representation
experimental UNOFFICIAL Spotify client for Android built on librespot-java + Jetpack Compose
- Host: GitHub
- URL: https://github.com/iTaysonLab/jetispot
- Owner: iTaysonLab
- License: apache-2.0
- Archived: true
- Created: 2022-04-16T15:36:20.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-09T17:25:33.000Z (8 months ago)
- Last Synced: 2024-05-21T13:34:47.032Z (6 months ago)
- Topics: android, jetpack-compose, kotlin, librespot-java, spotify
- Language: Kotlin
- Homepage: https://t.me/bruhcollective
- Size: 2.57 MB
- Stars: 354
- Watchers: 16
- Forks: 17
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 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](https://github.com/librespot-org/librespot-java) for the core API part and playback
- [librespot-android](https://github.com/devgianlu/librespot-android) for sink and decoder source (in Jetispot they are rewritten to Kotlin)
- [moshi](https://github.com/square/moshi/) and [moshix](https://github.com/ZacSweers/MoshiX/) for the undocumented API JSON parsing
- [VK Icons](https://github.com/VKCOM/icons) for the amazing icon set used in the application's icon
- [MMKV](https://github.com/Tencent/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._