Iphone – Which iPhone “Active SDK” version should I use

iphonexcode

The current (as of Dec 2008) iPhone SDK allows me to pick between 3 versions when I want to build an app: 2.0, 2.1, 2.2. — I'll ignore 2.1 below.

My assumptions:

  • 2.2 has more API functions available than 2.0,
  • 2.2 has fixed bugs since 2.0,
  • 2.2 is backward-compatible with 2.0 (both for building and running),
  • If I build with SDK 2.0, my app will work on iPhone 2.2,
  • If I build with SDK 2.2, my app won't work on iPhone 2.0.

I would think that using the earliest version that can build the app would be best, this way it will run on iPhones running older OSes.

But is there a risk that my app would be missing something if I built it with 2.0? Maybe some speed or nicer UI elements. But maybe there's not that much difference between 2.0 and 2.2 to even worry about it?

So my question is: Which SDK should I select?

  1. The earlist SDK I can build with, to broaden my target market.
  2. The latest SDK always, so that my app benefits from improvements — at the cost of potentially reducing my market.

(And if the answer is obvious, why do I have a choice?!)

Best Answer

I'd pick option #1 - compile it to 2.0. This is what we do for our app. There are still a lot of people running the old 2.0 O/S and if you compile to 2.2 your app won't run on their device.

That said, if you develop your app and run into a bug and find out that it's been fixed in a later firmware version, you may not have much of an option unless there's a workaround. There are also new features added to each new version although I do not know of a comprehensive list of what those features are (at an API level).