HellaMad
HellaMad

Reputation: 5374

What factors should be taken into consideration when deciding on a version of iOS to develop for?

I'm currently in the planning stages of developing an iOS app, and I need to decide what versions to support. This is my first app, and I'm leaning towards iOS 5. The app will be pulling most data from the web and won't be very processor intensive. My main concern is that if I develop for iOS 5 or 6 some individuals won't be able to use it. So what factors should be taken into consideration when deciding on this?

Upvotes: 2

Views: 482

Answers (5)

Tommy
Tommy

Reputation: 100652

Apple has dropped the iOS 4 simulator from any version of Xcode used on Mountain Lion and is likely about to drop iOS 4 support entirely. That's speculation but based on the facts that:

  • iOS 4 will probably be almost two years old whenever iOS 6 comes out;
  • iOS 4.3 dropped support for ARMv6 devices, so continuing to allow builds for pre-4.3 adds a significant maintenance cost to the developer tools;
  • iOS 4 has lesser support for automatic reference counting, which is now pretty much a fundamental feature.

These things aren't announced in advance, someone will just flip the switch one day.

I'd also argue that if you're new to it then iOS 4 is worth avoiding because it lacks:

  • story boards; and
  • a built-in JSON parser.

The former is an easier way to design the user interface and the latter is probably what you're going to want for decoding your web results, statistically speaking.

So I'd vote iOS 5.

Upvotes: 4

ColdLogic
ColdLogic

Reputation: 7275

It is true that a number of users will not be fully up-to-date on the current version of iOS. However, that number is very small. The typical user will not immediately upgrade to newest version, but they will usually transition within 1 month.

The users who do not upgrade are very specific. Jailbroken users are the largest community I can think of that will have to typically wait before they can upgrade their iOS version. Other users would be those with older devices such as the iPhone 2g and the 3g, which aren't supported by new versions of iOS.

With this is mind, it is recommended to always program for the highest version number. That code will be the most maintained and the most lasting. Programming for lower versions typically involves many difficult work arounds that are easily accomplished in newer versions of iOS. Also, anytime a new version comes out (think about iOS 7, 8, 22?), you will have to make sure your legacy code still works on the new version. This means you will need access to a device with that version installed.

All in all, the majority of users will be using the newest version of iOS.

Upvotes: 1

MikeS
MikeS

Reputation: 3921

What devices do you want your app to run on? If you want your app to run on older devices, this is going to effect what iOS you develop for.

Also, here is a chart with iOS version usage statistics. This will be useful in deciding what to support and what to ignore. iOS Version Usage Statistics

Upvotes: 1

Bruno Koga
Bruno Koga

Reputation: 3874

1) Do you need to support earlier versions of iOS? If you do, you have to pay attention to NOT use the API's that were realeased before your deployment target (aka the lower version you're going to support).

2) If you don't need/want to support earlier versions, Apple says that you should always target the higher iOS version, so you can use the most recent APIs... There are some stuff that you just can't do using older APIs.

Upvotes: 1

rooster117
rooster117

Reputation: 5552

You should develop for the lowest version possible while taking into account performance requirements and any necessary features that may be present in newer versions. If you want to use iOS5 and 6 features but they aren't necessary to the base line functionality of your app you can still target 4 and just do conditional checks against those features to see if they are available to you.

One of the main reasons you would purposely choose a higher version would be to intentionally leave out devices that won't support it(iPhone 3g or lower and iPad 1st gen)

Upvotes: 1

Related Questions