Search
Follow
Recent Comments

Entries in iOS SDK (12)

Tuesday
Oct042011

iOS 5 apple event

So I guess there were no major surprises in the Apple announcement today. It was mostly a rehash of information we already knew from WWDC. The iPhone gets a useful speed bump, a better camera and dual antennas so that it becomes a world phone supporting GSM and CDMA. The “one more thing” was the announcement of a beta version of the Siri app the voice driven assistant which I will admit looks interesting. The iPod Touch did not get any significant updates at all as far as I can tell other than being available in white.

What always amazes me is the level of interest any announcement from Apple receives. All of the usual tech blogs struggled to cope with the load and even the Apple web site seems to be having problems:

I hope this is not a bad sign for what we can expect from iCloud.

iOS Devices

So what is the state of the iOS nation now after todays announcement? Well the family of current iOS devices is now as follows:

  • iPhone 4S
  • iPhone 4
  • iPhone 3GS
  • iPad 2
  • iPod Touch (4th Gen)

in addition it looks like the original iPad and the third generation iPod Touch will also support iOS 5 so that means there are 7 devices capable of running iOS 5 - though not necessarily supporting all features. I am surprised that the 3GS is still being retained but Apple obviously want an entry level phone. Either way it looks like we can expect to the size of the iOS market to continue growing.

The best news of the day is that the iOS 5 GM seed is now available for download ready for general availability on October 12. So if you want to submit an iOS 5 compiled app for launch day you probably need to get busy.

Wednesday
Jul132011

Supporting older versions of iOS

With the release of iOS 5 expected sometime in September is it time to drop support for 3.1.3 and only support 4.x and later? If so what version of iOS 4.x should you target as a minimum version?

Before deciding on which versions of iOS you should support it is worth reviewing what versions and software features will run on which device since some of the older devices cannot be updated beyond a certain release.

Latest Supported Versions

The original iPhone and the first generation iPod touch can only support up to iPhone OS 3.1.3. These devices never made the transition to iOS 4 so if you need to support these devices your minimum iOS level will have to be v3.1.3. If the List of iOS devices on Wikipedia is accurate the last of these devices was discontinued in September 2008. This means that by the time iOS 5 is released these devices will be 3 years old which is ancient for an iOS device.

The next dividing line comes with the iPhone 3G and the second generation iPod touch which can only support up to iOS 4.2.1. These devices were discontinued between mid 2009 and September 2010 which is pretty recent. This means that a fair number of these devices will still be in use.

Finally the remaining set of devices starting with the iPhone 3GS, iPhone 4, third and fourth generation iPod touch can all currently run iOS 4.3.3 which is the latest released version. They are also expected to support iOS 5 though it remains to be seen how well that will work on the 3GS and third generation iPod touch.

Supported iOS Features

Even though a device can support a certain version of iOS it does not mean it supports all the features of that version. So for example, the iPhone 3G can run iOS 4.2.1 but it does not support multitasking or the Game Center. For details on which iOS features are supported on which device refer to the following Apple articles:

iPhone: Which iOS 4 software features does my iPhone support?

iPod touch: Which iOS 4 software features does my iPod touch support?

Is it Time to Drop support for v3.1.3?

If you have an existing app it is getting very tempting to drop support for 3.1.3. The number of active devices that cannot be upgraded to at least 4.2.1 is getting smaller and smaller as a percentage of the overall device population. Ideally if you are thinking of dropping support for 3.1.3 you should try to survey your users and see how many are still on first generation devices. If you cannot do that you can get some idea by looking at statistics published by some of the more popular app developers. For example, Marco Arment of Instapaper fame recently published some iOS device and OS version stats which indicated that over 98% of his users were running at least iOS 4.0.

Once you decide to drop support for 3.1.3 the logical conclusion is to set your minimum target version to iOS 4.2. Any device capable of running 4.0 is also capable of being upgraded by the user to at least 4.2.x so it seems unnecessary to support anything less than that.

From an app developer viewpoint there are a number of advantages to dropping support for iPhone OS 3.1.3 when iOS 5 ships. The most obvious advantage is that you no longer need to test on 3.1.3 but I think the impact on the application code is even more significant. If you assume a minimum target level of iOS 4.2 you can drop any 3.x conditional code but also you can start to make use of features introduced in iOS 4.0 such as blocks and Grand Central Dispatch (GCD).

In Summary

My feeling is that once iOS 5 goes live the minimum version required for most apps will rise to 4.2 (let me know in the comments if you plan to support something earlier and why). As always there can be no universal answer since a lot depends on what hardware and software features an app needs and what devices the majority of users of the app are running. I would find it hard to justify dropping support of 3.1.3 for an expensive paid app where more than 5-10% of the users were still on old hardware incapable of upgrading. On the other hand it is hard to justify the extra effort of supporting 3.1.3 for a free app with < 1% of users on old hardware. Where you draw the line is in the end up to you but I think the release of iOS 5 sometime in September is a good time to allow 3.1.3 to fade into the background.

Wednesday
Jan122011

iOS 4.3 beta

so I guess we have the answer to yesterdays question - is iOS 4.2.5 Update on the Way? Instead of getting iOS 4.2.5 it looks like we are heading towards iOS 4.3. The SDK beta turned up in the Apple iOS Dev Center today along with Xcode 3.2.6.

You should follow the usual precautions if you planning to download and install it on your one and only iOS device.

Tuesday
Jan112011

iOS 4.2.5 and Xcode 4 Preview 6

iOS 4.2.5 Update on the Way?

one interesting side note from todays long expected Verizon iPhone announcement. It seems that the device is running iOS 4.2.5 which is a jump from the currently released version (iOS 4.2.1). If the past is any guide we might expect to see an updated iTunes and iOS GM seed a few weeks ahead of the February 10 release date.

Xcode 4 Developer Preview 6

For those not paying close attention to the iOS Dev Center a new Xcode 4 Developer Preview release was also posted yesterday. Go check out the release notes for further details (still subject to NDA). The increased pace of the updates is starting to give me hope that we might see Xcode 4 released for prime time in the near future. So if you have been holding off playing with Xcode 4 it might be time to start taking a look.

Tuesday
Nov232010

Xcode Unknown iOS detected

When Apple pushed out the iOS 4.2.1 update last week I did not bother to download it and install it on any of my test devices. I had already installed the 4.2 GM seed for testing so when it went live yesterday I let iTunes update one of my devices to 4.2.1 without any further thought.

Today when I ran Xcode, I still had the device running 4.2.1 connected and the Xcode Organizer popped up a warning window with the message “Unknown iOS detected”. The detailed error message indicated that Xcode did not have the debugging data for 4.2.1 and offered to collect it from the device for me:

Xcode does not have debugging information for the version of iOS on the device named “Dev iPod Touch”. Xcode can collect debugging data from the device to enable development with this version of iOS. This process only needs to be done once per iOS version, and will take several minutes.

I hit the Collect button and as promised Xcode took about five minutes to download and process the data from the device.

Researching this a bit more it seems that Xcode just needed to download the 4.2.1 symbol data from the device since it only had the data for 4.2. I don’t know if this is a new capability in Xcode but it looks like a nice way to avoid having to download a new iOS image each time Apple makes a minor bug fix.