I am digging deeper into iOS application coding, and am running across the usual problem of trying to decide what versions of the iOS base I would like to focus on.
The application I am focusing mostly on is an older one of mine, DumTek, a Middle Eastern drumming tutor. It runs currently on anything back to 3.0, and might have even worked further back. I do use iAd but those are easy to enable or disable for different versions.
It's clear that Apple does not want me to make applications that go back too far. I have an older 3.x device which I mostly use for development, but that version of the OS and even 4.x are lacking some pretty cool features I'd like to use. I could enable or disable features depending on OS support, but I fear that will complicate things immediately and make maintenance harder. It also greatly increases my on-device testing footprint.
I am inclined to decide that I should just support 5.x so I can use iCloud for personal data storage, but that is not 100% necessary. I could say for 5.x devices the option to use iCloud is there, but for 4.x devices it stores locally only. I could also continue to support 3.x devices by disabling all of these new features.
So, in summary:
Should I abandon 3.x, even though not everyone has upgraded to 5.x capable devices?
Should I abandon 4.x and focus entirely on 5.x devices?