/spochify

Spochify is a example of usage of RXSwift using the Spotify API

Primary LanguageSwiftMIT LicenseMIT

Spochify

Swift Version Build Status Test Coverage Maintainability License: MIT

Spochify is a example of usage of RXSwift using the Spotify API The app itself shows categories, playlists, albums and songs. It provides a player to listen the audio samples that spotify provides(30 secs), the player can be controlled from the system player and it shows the playing song in the lock screen. Some of the features are only available in real devices.

Alt Spochify

ToDo

  • Add unit testing
  • Replace UserDefaults by Keychain
  • Improve navigation
  • Update Player player to become more reactive

Installation

To use the app is mandatory to create an app in the Spotify Dashboard and update a plist with the needed information, follow the next steps to do it.

  1. You need to access Spotify dashboard
  2. Once access is granted, create a new app entry, more info on Spotify. If you want to understand the authorization process(Implicit Grant Flow) you can check more information on Spotify
  3. Once created the app we need two strings to make the app work:
    1. Client id
    2. Redirect Uri
  4. Update the file called "SpotifyCredentials.plist" with the the values client id and redirect uri that we have obtained from Spotify dashboard
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>redirectUri</key>
  <string>YOUR-REDIRECT-URI</string>
  <key>clientId</key>
  <string>YOUR-CLIENT-ID</string>
</dict>
</plist>

Use Carthage to install required dependencies.

carthage bootstrap --platform ios

Usage

Now you can run the app, to start using it you need to login with any Spotify account. Then you can explore the sections and play the sample tracks.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT