Posts Tagged ios

Spotify iOS token exchange service in python

On the very same day that Spotify announced its acquisition of The Echo Nest they released a brand new Spotify iOS SDK.  Trying this new SDK out has been high on my priority list, and finally after a few crazy weeks I’ve had a bit of time to take it for a test drive.  I walked through the beginner’s tutorial and was up and running with an iOS app running in the simulator in about 30 minutes. Easy Peazy! The bit that took the longest was setting up the token exchange service. This is a service that you need to run on your own server as part of the authentication process. The tutorial provides such a sample service written in ruby, however I’m not a ruby programmer so I had to go through all the gyrations of installing ruby, figuring out how to install gems and getting the required gems installed. Once I had everything installed it worked fine and I was able to get the tutorial running. However, I figure that I’ll be working with the iOS SDK a great deal in my future, and I’d rather not have to deal with a ruby server every time I create a new app, and so for my Sunday morning programming project I’ve re-written the ruby swap service in python. The service is on github here: spotify_token_swap

If you are going to be using the new Spotify iOS SDK to create apps and you’d rather deal with python than ruby, then you might find it useful.

, ,

Leave a comment

Hear Here update

A bit more coding this weekend on ‘Hear Here’ my iPhone app that plays music by nearby artists.  It is now feature complete.  The list of features is rather small – it really is a ‘do one thing well’, kind of app.  It plays music by the nearest artists that match your filter. You can filter currently by the popularity of the artist.  If you are adventurous, you can listen to music by all nearby artists, but if you are not so brave you can just listen to music by mainstream or popular artists.   The app shows you how far away the ‘now playing’ artist is and shows you how many artists are within a 25 mile radius.   All music is streamed from Rdio and of course you’ll need an Rdio subscription to hear full streams.  I made my own icon – it is pretty ugly – if you have design skills and want to contribute a logo I’d be very pleased to use it.   Here’s a video of the app in action for a user who happens to be in Cupertino:


Next steps for the app are lots of testing, especially with poor network connectivity.  After that, I’ll make sure I’m following all the rules for Rdio and Apple – and once I’m conforming to all the TOS’s and UI guidelines  I’ll submit it to the App Store (as a free app).

, , , ,


Hear Here version 0.1

My weekend programming project was to build a bare-bones version of Roadtrip Mixtape that runs on an iPhone.  This is an MVP (a term I learned from my Product Management buddies at work) – with only 5 basic features:

  • You can press ‘next’ and the app plays a song by the nearest band to where you are right now.
  • You can press ‘pause’ to pause/resume  the playing
  • You can login to Rdio so you can listen to full streams
  • You can look at the album art
  • You can simulate moving to another location (I was getting sick of listening to just Nashua music).
Here’s the app in all it’s designer beauty:

This is the first significant bit of iOS programming that I’ve done.  It is a lot of fun. Xcode has tons of features that make working with all the idiosyncrasies of the platform manageable.  There’s a huge amount of documentation including many tutorials, examples and recorded WWDC talks, plus tons more info on Stack Overflow.   To stream music I’m using the Rdio iOS SDK. It is very easy to use, very well documented, with lots of good examples. I thought that getting music to play was going to be the hard bit of this project, but it was actually really easy. Well done Rdio programmers!

Tomorrow I’ll take V0.1 on its maiden test drive on my commute to work to see how well it works on the road. I suspect that the playlists will not be the most listenable since they are often filled with very long tail artists.  On the list for V.2 will be the ability to add popularity and style filters to make it more likely that music that I actually like appears in the playlist.

Oh and I came up with a new working title for  the app = ‘Hear Here’.  Not sure if I’m 100% on board with the name though.  No one likes puns anymore.

, ,


Amazon strikes back

Last month we saw how Amazon had to change its Kindle iOS app to comply with Apple’s TOS.  Amazon eliminated the ‘Kindle Store’ button making it harder for Kindle readers to purchase books.   Today, Amazon has fought back by releasing the Amazon Kindle Cloud Reader – A pure HTML5 web application for reading books.  The cloud reader lets you do anything that the native Kindle app does, including offline reading. And,  since HTML5 apps are not subject to Apple’s TOS,  the Kindle Cloud Reader  brings back integration with the Kinde Store.

This may ultimately become the most viable route for music subscription services as well.  Instead of creating native iOS apps, music services may look to create rich web apps instead. HTML5 is certainly capable enough, and soon audio support and local caching will be mature enough to support even the most sophisticated music listening app.  MOG has already converted their main application to HTML5.  I suspect more will follow suit.  As HTML5 improves,  we may see an exodus away from iOS.   The more you tighten your grip, Apple, the more applications will slip through your fingers.

, , , ,

1 Comment

How are music services responding to Apple’s new TOS?

There’s been quite a bit of turmoil around how IOS developers can sell products and subscriptions within their IOS application.  Apple says, essentially, if you sell stuff within your app you have to give Apple a 30% cut  and you can’t try to pass costs onto the customer by charging more for items purchased within an App. The cost for an item must be the same  whether  it was purchased through the app or through some other means. Update: In June, MacRumors reported that Apple updated its TOS so that content providers are now also free to charge whatever price they wish for content purchased outside of an App.   Apple also says that you can no longer have a button or a link in your app to a website where a user can purchase content without giving Apple their 30% cut.

For most media industries,there is not enough left of the profit pie to allow Apple to take 30% of it.  This has left most media companies in a quandary of how to continue to give their users a good experience, without bankrupting their company.   Many folks looked toward Amazon to see how they would react. Amazon’s Kindle reader is used by millions of iPad and iPhone readers to purchase and read digital books.   Amazon’s solution was simple. Last week they issued an update to their Kindle Reader IOS app that removed the  Kindle Store button. After the update, The [Kindle Store] button is no longer present in the app. This means that users of the Kindle IOS app can no longer launch a book shopping session from within the Kindle app.  Here’s the update:

Before the update, the Kindle app looks like this, with a very visible Kindle Store button that will take you to the Kindle web store, where you can buy Kindle books:

After the update, the Kindle App looks like this.  The Kindle Store button is gone.

What are music services doing?

I was curious to see how various music subscription services were dealing with the same issue.  I fired up the apps, checked for updates and this is what I found.


Spotify updated their app to get rid of any in-app purchases or subscription links just like the Kindle. You can only listen to Spotify mobile if you already have a Spotify mobile account.

When you login to Spotify there is no option to register an account. Spotify just assumes that you have already registered and are ready to login in and start using the app:

Curiously, there is a ‘Get help at’ button on the More page of the app. This will open a web browser and bring you to the Spotify Help page, which puts you two clicks away from a ‘subscribe’ button. This must cut pretty close to Apple’s rules about links to web sites.


As with Spotify, SiriusXM, removed any links back to their site. Only people that already have a SiriusXM account can use the SiriusXM app.


Same story for Rhapsody, there’s no way to get a subscription for Rhapsody within the Rhapsody Application.


MOG issued in update in July that removed links to the MOG subscription portal.


Interestingly enough, the very latest version of Napster happily allows you to register for Napster through the application. On the Sign In page there is a prominent Register for Napster button.

Pressing the button brings you to a Registration page where you can sign up for a 7-day free trial

I wonder what happens if a 7-day free trial user converts to a paying subscriber.  Does Apple get 30% or is Napster hoping that no one notices?

Update – A Napster update was released one day after this post was published that eliminates the direct signup link:


Slacker’s $3.99 a month Radio Plus product is included as a prominent upgrade in the Slacker app. If you hit the upgrade button you will get a form to fill out with all of your credit card info so they can start charging you the 4 bucks.  The question is whether or not Apple is getting $1.20 of that 4 bucks.


With Pandora you can create a free account through the mobile app, but there is no mention of a premium account, nor are there any links to as far as I can tell.

Just like Pandora, the app will let you sign up for a non-premium account via the app and makes no mention or attempt to upsell you to a paid account:


Rdio takes a similar approach to Pandora and It allows users to sign up for a 7 day free trial account via the app. It makes no mention and has no links to a premium subscription page.  It is not clear to me what happens at the end of the trial period, whether they will prompt you to visit Rdio, or if they just say “Your free trial is over, thanks for listening”.

Update  – It is a moving target out there. Rdio issued an update yesterday that now allows you to purchase a monthly subscription in the app.  With the new version you can now click on the ‘Subscribe to Rdio Unlimited’. When you do you receive this confirmation dialog:

This allows you to purchase the Rdio subscription for $14.99, which just happens to be 33% more than an Rdio Unlimited subscription would cost if purchased directly from the web.  Rdio is taking advantage of Apple’s recent relaxation of the rules and seeing how effective in-app subscription purchases stack up against cheaper out-of-app purchases.  There’s a good  LA Times article Rdio attempts to survive Apple’s subscription tax that describes Rdio’s approach to dealing with this issue.

A monthly Rdio Unlimited subscription is 33% cheaper when purchased on the web.


The latest version of Playme doesn’t have a button or link that brings you to the Playme subscription page.  It does, however, display prominently on the sign in page so you can type the URL directly into your browser.  I guess technically the words are not a link if you can’t click or tap it to go there.


Grooveshark has never been timid of walking up to the line and stepping across it. The only way to get Grooveshark on an IOS device is to Jailbreak your device.  With a Jailbroken version, Grooveshark doesn’t need to pay anyone for anything.

Apple has always been a company that prides itself on encouraging an excellent user experience. However, when Apple had to weigh a good user experience against potentially making 30% of every music subscription they decided to screw over the user and go for the pot of money.  The reality, is, however, that no music streaming company will ever be able to afford to give Apple a 30% cut. The result is that these apps have to work around Apple’s rules, the result being a poor user experience, and no money for Apple.   Hopefully, by the end of the year, Apple will look at the bottom line and realize that they’ve made no extra money from the 30% rule, and instead have encouraged the creation of a big streaming pile of  music apps that make the user jump through all sorts of unnecessary hoops for no good reason.  Note however, that the story isn’t over. Rdio is experimenting with in-app subscription purchases. If they  are successful at this, in a few months time, perhaps we’ll see Spotify, Mog, Rhapsody and the others try the same thing.

, , ,