Supporting iOS 3.1.3

Being the elitist/purist that I am, I look down my nose at people who aren’t using iOS 5, Lion, etc and usually blame them when stuff I write doesn’t work. There is, however, one exception to this rule.

When Apple releases a new OS, some older hardware usually gets shafted. With Lion, it was anything that didn’t have a 64bit Intel chip in it. In real world terms, that means any Mac that came out during the summer between my sophomore and junior year of college, or 2006. As a developer, the idea of nice clean 64bit only binaries sounds great. The Macs I have from before then can barely browse so no big loss. Sure it sucks if you got one of those first Intel machines with the CoreDuo but Apple’s market share was a “rounding error” back then so that’s a small number of people.

No so with iOS

While I doubt there are any people with an original iPhone out there, people still use the 3G and the first two generation iPod touch. They’re still great MP3 players. Unfortunately, 1st gen devices are marooned at 3.1.3 and 2nd gen at 4.1. Among supported devices, iOS 5 adoption is only around 40%, but an alarming 12% on iPods.

Since Auto Adjust started way back in the day there isn’t too much critical code that requires newer iOS’s, but one new feature did. In iOS 5 Apple finally let developers have access to screen brightness. This is a big deal. Most people are taught early on that “you can increase battery life by lowering your screen brightness”. While technically correct, it often leads to people incorrectly using photography apps because they have no idea how bright their photos already are. Over brightening and over saturating is usually the result. I decided that rather than hide the feature if not available to nag to set their brightness using the settings app.

Missing features is one thing. The If’s and tests are annoying but doable. The reason iDecorate by contrast requires iOS 5 is because iOS 5 requires a device with 256MB of RAM. In my testing, iDecorate was barely usable on my worst-case iPod Touch 1 with iOS 3.1.3. I could get back some drawing performance by dumbing down the image resolution but scrolling through the amount of stamps was simply unwieldy. If anyone remembers, back then Safari would often show unloaded squares if you scrolled too fast. Not because of network speeds but because the hardware couldn’t keep up. I decided this wasn’t the performance I wanted iDecorate to have and instead made it iOS 5 only.

So why not iOS 4 if the hardware is the same? Because people should update if their hardware is capable. Maybe seeing apps starting to demand it will help them get over the annoyance of not having your device for 10 minutes – although I must say that the 5.0.0 to 5.0.1 update was a very painless experience.

1 thought on “Supporting iOS 3.1.3

  1. Pingback: Still not “porting” | Rants

Comments are closed.