New iOS SDK Header Great news! Today we’re announcing the availability of a completely new iOS SDK for Spotify. The new API has been written from the ground up to be a fast, lightweight SDK for accessing Spotify services in your iOS App, including search, playlists, metadata lookup, audio playback and more. The SDK is currently in the early beta stages, and is consequently missing some functionality when compared to CocoaLibSpotify.

Why start from the ground up?

New Project It’s common to want to start afresh with a project, but with an established API with lots of users, it’s not a decision to take lightly. Our concern with CocoaLibSpotify is the amount of CPU and RAM resources it can use, especially with users that have a large amount of playlists. Indeed, you’ll see a fairly significant amount of work put into reducing CocoaLibSpotify’s footprint on its dev branch, but the fact is that CocoaLibSpotify is a heavy library. This is partly due to the underlying libspotify library, and partly due to the core design of CocoaLibSpotify — managing mutable objects, no ability to “unload” metadata and playlists, internally marshalling a huge amount of calls between threads and so on does not a lightweight library make! It was clear we’d have to change CocoaLibSpotify’s APIs significantly to achieve our goal of a lightweight Spotify API. Once the decision to do this was made, it suddenly opened up a lot of possibilities — why not lose our legacy code entirely and build on a modern, lightweight platform? That’s exactly what we did, and here were are today. Since we’ve started completely from scratch there’ll be a break-in period while we stabilise things and fill in the functionality gaps, but we think releasing a beta publicly will help shape the new iOS SDK for the better.

Try it now!

Remember: The new iOS SDK is currently in early beta and is missing some functionality and may be buggy.

Head over to the project’s GitHub page to give it a try. You’ll need Xcode 5 or higher and iOS 7 running on your device. Don’t forget to give your feedback in the issue tracker!

Update (Nov 2017): We’ve since added playback in the browser through the Web Playback SDK. Check it out!