We’re happy to announce the release of iOS SDK Beta 3 with a number of new features and bug fixes.

What’s New

  • SPTAuth and SPTSession has been completely rewritten to use the new Spotify authentication stack. This means that you need to re-do your auth code. Additionally, the Client ID and Client Secret provided with earlier betas will no longer work. See the main readme for more information (Issue #3).
    • The Basic Auth demo project has been rewritten to be much more friendly for new users to understand what’s going on.
    • You’ll need to update your Token Swap Service for the new auth flow. A new example is provided with the SDK.
  • Added SPTArtist convenience getters for albums and top lists: -requestAlbumsOfType:withSession:availableInTerritory:callback: and -requestTopTracksForTerritory:withSession:callback: (Issue #44, Issue #34).
  • Added ability to get the user’s “Starred” playlist using SPTRequest’s +starredListForUserInSession:callback: method (Issue #15).
  • Various API changes and additions to metadata objects. In particular, users may be interested in the availability of album art on SPTPartialAlbum and track count and owner properties on SPTPartialPlaylist (Issue #23).
  • SPTAudioStreamingController now has a customisable streaming bitrate.
  • Added ability to get detailed information about the logged-in user using SPTRequest’s +userInformationForUserInSession:callback: method (Issue #40).
  • Added SPTListPage class to deal with potentially large lists in a sensible manner. Objects with potentially long lists (playlist and album tracks lists, search results, etc) now return an SPTListPage to allow you to paginate through the list.

Bugs Fixed

  • Core metadata classes now work properly (Issue #52 and a bunch of others).
  • Delegate methods are now marked @optional (Issue #41).
  • Playlists not owned by the current user can be requested as long as your application has permission to do so (Issue #10).
  • SPTAudioStreamingController now calls the audioStreaming:didChangeToTrack: delegate method with a nil track when track playback ends (Issue #21).
  • SPTAudioStreamingController is more aggressive at clearing internal audio buffers (Issue #46).
  • SPTAudioStreamingController no longer crashes on 64-bit devices when calling certain delegate methods (Issue #45).
  • SPTAuth no longer crashes when handling an auth callback URL triggered by the user pushing “Cancel” when being asked to log in (Issue #38).
  • Included .docset now correctly works with Xcode and Dash (Issue #12).