Some Problems of Developing for iOS

I sort of fell into iOS development by chance and ended up being the primary maintainer of an iPad app that is a little unusual as far as iOS apps go. It is not available on the App Store, rather it's distributed via the Enterprise program. I've often wondered if it would be rejected by Apple if we tried to put it on the App Store.

Anyway, I joined the project just after iOS 5 was released, but didn't really get into the thick of it until just before iOS 6 came out. Most of the code that I contributed was written for iOS 6. When iOS 7 was released I was anxious to see how the app would work. My first move was to update an iPad to iOS 7 and run the app. Everything seemed to work but there were some problems. Primarily that an alert view with a progress bar added as a subvew was not showing the progress bar. Apparently iOS 7 does not allow you to add subviews to alert views. After some research, it appears that my only option for now is to create a custom view (but apparently you are not able to sub class UIAlertView in iOS 7, so I guess I'll have to concoct something from UIView). Other than that, the app still worked for the most part.

My next move was to download XCode 5 and compile the app using the iOS 7 SDK. More problems began to appear. Buttons we not appearing as buttons (they looked like labels), the layouts of some of the views were out of wack.  I quickly decided that my only option, for the time being, was to continue using the iOS 6 SDK to compile the app until I sorted out the issues with the iOS 7 SDK.

I assumed that there would be no problem getting the iOS 6 SDK and using it in XCode 5. But apparently Apple does not offer downloads of the iOS 6 SDK. I learned that in order to get it, I would have to extract it from a version of XCode 4. I had just gotten a new Mac that did not have XCode 4, so I had to download and install it, just to get the SDK. I noticed a few strange conflicts in play after having both XCode 4 and XCode 5 installed on the same machine. But I was able to sort it out. So for now I can compile the app in XCode 5 using the older SDK and the app is still usable.

Now, this app that I've been describing is not a primary offering of our business. So there has always been a lingering question of how much time we can afford to commit to it. If we had known about the cost of maintaining it with the release of each new version of iOS, I'm not sure if we would have chosen to build it. Or we may have looked to build it on a different platform.

So my whole point is that you should be aware of the backward compatibility issues of iOS before you endeavor to build an app.