Thursday, June 24, 2010

RadioKit SDK demo project now includes support for iOS 4 background audio play

I've update the RadioKit SDK demo XCode project so it now also demonstrates how to perform background audio play and audio control under iOS 4.

Source code for the sample project can be found here:

The key point to adding support for background audio play under iOS 4 is to add a new entry to your app's info.plist file. You must add a new key called UIBackgroundModes and add the value audio.

If you want you app to also support remote control of the background audio (either via headphone controls or the audio controls on the background app taskbar) you must also add support for remoteControlReceivedWithEvent:. You can see how this was done in the sample MainViewController.m file in the RadioKitDemo XCode project.

Please note: background play is not supported under the simulator. This is a limitation with the simulator, not the sample XCode project.

If you are unfamiliar with the RadioKit SDK, you can read more about it here. It is a static library which greatly simplifies the process of handling streaming audio on the iPhone and iPad including support for pause, rewind and fast forward of the live audio stream. It is licensed on a per-project basis with single project licenses priced at $100 (US dollars). There are no royalty fees. Volume discount pricing is also available.

Wednesday, June 9, 2010

Steve Jobs opinion on Analytics on iPhone

I just watched an interview from D8 in which Steve Jobs answers a question regarding the use of analytics within iPhone apps. You can watch the video yourself here, but the short of it is Steve Jobs said Apple is banning some analytics companies because they are collecting user data without notifying the user first and this is in violation of the developer agreement.

I was very surprised to hear him say this, because I don't believe it to be true. Unless an iPhone developer posts their own EULA for their app, an app is distributed under Apple's default EULA, the terms of which (in the US store) can be read here:

And a link to this text appears on the bottom of EVERY iPhone app page (in fine print) within the iTunes app store.

Now, take a close look at this agreement, specifically clause b.

b. Consent to Use of Data: You agree that Licensor may collect and use technical data and related information, including but not limited to technical information about your device, system and application software, and peripherals, that is gathered periodically to facilitate the provision of software updates, product support and other services to you (if any) related to the Licensed Application. Licensor may use this information, as long as it is in a form that does not personally identify you, to improve its products or to provide services or technologies to you.

This seems pretty clear to me that according to this default license agreement for every iPhone app, the potential an app is collecting user data is disclosed and is permitted.

Of course, I'm not a lawyer, and I'm sure Steve Jobs must have a reason for feeling this clause does not permit analytics within apps. But, at least to a layman such as myself, it seems pretty clear that the standard agreement for an app does in fact allow such capturing of user data and is disclosing to the user (via this license agreement) that such data collection may occur (which in turn meets the conditions of the developer license agreement).

All content copyright © 2009  Brian Stormont, unless otherwise noted.   All rights reserved.