Skip to content

Unofficial Spotify client for Android built with Jetpack Compose, Material 3 and librespot-java. Fork ahead of Tayson's original repo. Read README!

License

Notifications You must be signed in to change notification settings

BobbyESP/Jetispot

Repository files navigation

Jetispot

A Spotify unofficial client built with Jetpack Compose, Material You/3 and librespot-java

⚠️ FORK

I don't want confusions so I'm telling this. This repository is just a fork of the one made by iTaysonLab as I say in the credtis. At the moment of writing this, the project is kind of abandonated. By what I know, the original creator of the app is making an amazing Steam client for Android, Jetisteam. I will be adding new features to the app and also fixing bugs. If in some day Tayson want to go back to the project, I'll be glad to open a Pull Request to have all my work merged in it's original repository. Thanks for your comprehension!

📣 NOTICE

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.

🔮 App features

  • Sign In (login/pass only, no FB/Meta/Google support, no Smart Lock either)
  • "Browse", "Home", Album, Premium Plans overview, Artists and Genres screens (some of the blocks might be unsupported).
  • Library: "liked songs" with tag & sort support, rootlist (liked playlists) + pins + artist/album support with nice animations, delta updates and also pub/sub processing support
  • Basic playback with Spotify Connect support (Spotify Connect support is actually WIP)
  • Fairly optimized R8 rules, providing the release APKs with a size of 4-5mb (with the playback and protobuf parts!)

📸 Screentshots

image image image image image image

🔨 What's in progress

  • "Now Playing" improvements
  • Better playback service (notification improvements)
  • Fixing "unsupported" warnings

👷 App specifications

  • Playback: librespot-java as the core + sinks/decoders from librespot-android + Media2 for the mediasession support
  • UI: Jetpack Compose with Material You
  • DI: Hilt/Dagger
  • network: Retrofit w/ Moshi + Protobuf converters
  • pictures: Coil
  • storage: Room (collection), MMKV (metadata)
  • arch: MVVM
  • preferences: Jetpack Datastore (proto) [maybe in a future MMKV will be used for some app variables]

⬇️ Downloads

You can go to the releases page and download any version updated.

Credits

  • iTaysonLab for creating this project. My fork is a continuation of it's work. If some day is interested in working back to the project, I'll be making a PR for merging changes.
  • 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 Jetpack Compose, Protocol Buffers and Material UI components

* Some people can actually login without an Spotify Premium account. Assistance to this accounts may be not be provided and you risk yourself for using a free acount. We will not be held responsible for any ban.

About

Unofficial Spotify client for Android built with Jetpack Compose, Material 3 and librespot-java. Fork ahead of Tayson's original repo. Read README!

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • Kotlin 85.9%
  • Java 14.1%