Yesterday I tweeted that I was dropping iOS 3.X support from my iOS app Lafayette Traffic. This prompted a tweet from a friend and local developer Matt Turland:
@criscokid Cool. Out of curiosity, that going to make long-term maintenance easier? If so, how?— Matthew Turland (@elazar) April 30, 2012
I gave him what answer I could in 140 characters but I wanted to elaborate on it. This will be stuff that most iOS developers already understand.
The number one reason I’m dropping iOS 3.X is because I can’t test apps on that version anymore. I have an iPod Touch (3rd Generation) around for older hardware testing, but at some point Apple no longer showed any 3.X version as valid for it. (iTunes/Xcode actually pings Apple to make sure versions of iOS are still valid before installing them.) Lafayette Traffic 1.0.2 seems to have had some iOS 3.X issues that I cannot test anymore.
During presentations I give locally about iOS development, I always stress that you should test on a device before shipping your application. I’m sticking to my word and dropping an iOS I can’t test for anymore.
Block And GCD Support
For developers not familiar with GCD, it as an abstraction for writing threaded applications as queues of tasks. It tends to make writing code that does not block the main thread much easier. I’ve always done my best to be sure my applications felt responsive, so it’s pretty natural for to want to take advantage of GCD.
Automatic Reference Counting was a new feature released with iOS 5. It handles some of the simpler memory management tasks for you. Memory leaks tend to be a common problem with iOS applications and a fair amount of time is spent profiling an application to make sure that memory leaks aren’t occurring.
The good news is ARC is backward compatible with iOS 4. If ARC allows me to deliver a better application to my users, I would prefer to begin using it as soon as possible.
While continuing to support 3.X might be good for a small percentage of Lafayette Traffic’s user base, I would prefer to deliver and better and more stable application to a large percentage of users.