Skip to content

iOS-application communicating with the Spotify-API, written in a MVVM-architecture, showcases usages of Combine and SwiftUI.

Notifications You must be signed in to change notification settings

Lukayne/spotifyshuffler

Repository files navigation

SpotifyShuffler

An iOS-application that communicates with Spotify's API.

SpotifyShuffler is written without any AppDelegate or SceneDelegate. In other words, SpotifyShuffler is pure SwiftUI. SpotifyShuffler showcases the usage of MVVM by using both Combine and SwiftUI.

What you need to do to be able to run the application.

  1. In Constants.swift add your own values in: redirect, spotifyClientID, spotifyCLientSecretKey.
  2. In the Info.plist file add your own values in: CFBundleURLName and CFBundleURLSchemes.
  3. The application will only run if you run it on a physical device.

The gist of SpotifyShuffler is letting the user truly shuffle any of their playlists.

Below is a more detailed list of what SpotifyShuffler does:

  • Prompts the user to connect with Spotify.
  • Fetches the users playlists and presents them to the user in a list.
  • The user can then whichever playlist they want to shuffle.
  • The selected playlist is then presented in a new view to the user.
    1. All of the current songs from the selected playlist are loaded into the view.
      • As the songs are being loaded they are added in a dynamic list.
      • Showcasing the number of songs that have loaded out of the total amount of songs in the playlist.
    2. When all of the songs have been fetched the following occurrs:
      • The user is presented with 3 buttons. Resume, Shuffle, Pause
      • By pressing Shuffle an entirely random song will be played from the selected playlist.
      • By pressing Shuffle again another entirely random song will be played without it being the prior shuffled song.

About

iOS-application communicating with the Spotify-API, written in a MVVM-architecture, showcases usages of Combine and SwiftUI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published