Random thoughts from an unusual company

Adventures in iPhone development, Part 1

Tim Davis  6 October 2008 13:06:57
Every year we do the Lotusphere Sessions app for the BlackBerry and this year we're also thinking about doing one for the iPhone. Actually this is almost purely for selfish reasons, as I now have an iPhone and I fancy having the sessions on it.

I've started putting together a simple version in Xcode and it's coming along, but I wanted to sort out how I'd go about distributing it. I figured the simplest way was to just stick it up on the App Store and make it a free app. The thing is, I can see a few downsides to this:

- The first is whether Apple will approve it. I don't know why they might not, but they do get twitchy about some things.
- Second, maybe IBM would be unhappy about it being published in quite so open a forum. It is public info but you never can tell what's going to happen when corporates collide.
- Thirdly, should I care if any old iPhone user can download it? Probably not, but it might be weird to have the app hanging around on the app store forever.
- Lastly (and this is the biggie), it can take up to two weeks or more for Apple to approve an app and release it on the store. And that's if they don't find any problems. That's a really slow turnaround for a Notes developer who is used to quick development cycles. Just imagine fixing a bug sometime around New Year and then having the thing not even ready for Lotusphere?!

So, how else could I do it?

There are two other options:

The first is 'ad-hoc provisioning'. This is intended for beta testing, where you create a signed package based on the unique id of your iPhone and install it directly to the device (eg by iTunes). Its all very manual, and apparently you are limited to 100 per app, so that's a bit of a show-stopper. I am of course assuming there will be more than 100 interested iPhone users at Lotusphere, and in any case I am sure they can't be bothered to send me their uids.

Secondly, there is the 'Enterprise Developer' program, which allows you to distribute your app 'in-house'. I spent a while being passed around various Apple departments before I found someone who seemed to know how this works and it turns out that this is very similar to the ad-hoc model, in that you need to get the uid of the phones you want to install on. I would hope that they have some kind of automated process to handle this for enterprise solutions, but based on the fact that everyone I spoke to seemed to only have vaguely heard of the entire program, I doubt that very much. Also, they do a check on your company based on your Dun & Bradstreet number to ensure you have 500+ employees, so unless I can pretend to be one of my customers I think they'll kick me out the door.

This ends me up back with submitting it to the Apple store after all. I guess the key is going to be to get the thing ready way in advance, as there'll be no time to do bug fixes or feature updates near to the event. It will still have the ability to refresh the session data (as per the current BlackBerry version) so I'm hoping it will work out ok.

I will post more soon about how I'm getting along with Xcode and Objective-C.

Boy, I love learning new programming languages  :-(  


1Jeff Gilfelt  06/10/2008 13:48:14  Adventures in iPhone development, Part 1

With the ad-hoc provisioning, AFAIK there is nothing stopping you creating a “new” version of your app every time you hit the 100 device UUID limit, then the limit will reset to zero for the new version. Having said that, this is exactly what the developer of the app store blacklisted “Podcaster” did before apple flipped the kill switch on it.

I think once everybody has received the new relaxed NDA, hopefully the app store submission and vetting process will become much more transparent.

2Jason  06/10/2008 14:20:36  Adventures in iPhone development, Part 1

I haven't found a reason to buy an iPhone yet, but I am interested in Mac development generally. So I'm looking forward to the series of blogs.

By the way how does the learning curve compare to Java (for example)?

3Tim Davis  06/10/2008 14:41:01  Adventures in iPhone development, Part 1

It's too early to tell about the learning curve. I guess it would help if I even knew c++, but my last experience with c was back when it was just 'c'.

I am hoping my OOP knowledge from java and design patterns will transfer over once I get used to the new syntax.

So far the work has been pretty much gluing together Cocoa objects, with little real coding. That'll come when I want it to actually do something.


4Declan Lynch  06/10/2008 14:48:51  Adventures in iPhone development, Part 1


Why not a nice simple webApp. No need for the app store approval hassles and the data is always realtime and up to date.

You could provide a registration/login part if you want some sort of 'add to my schedule'.


5Bob Balaban  07/10/2008 01:12:45  Adventures in iPhone development, Part 1

Objective C??!!??

Be afraid....

6Tim Davis  07/10/2008 11:17:49  Adventures in iPhone development, Part 1

@Declan: I wanted it to have an offline model, e.g. so I can use it down in the showcase without having to rely on finding a decent wi-fi connection. The iNotes Ultralite is very nice, so for other uses I'd agree its a good model to adopt.

7Greg Evans  09/10/2008 16:38:30  Adventures in iPhone development, Part 1

Hi. Just throwing in our 10p, we think the App Store represents a great route to market and very good vfm. Two week turnaround seems reasonable.