Google+ Badge

Friday, April 15, 2011

First iOS app accepted and available on App Store

After a full week Apple has approved version 1.1 of our application and published it on the App Store. Very happy to have it make it through the process without a rejection. I did not work on 1.0 version and was not employed by the company at the time of its release. The person who wrote it is not around so I was going into the whole process blind. I made significant code changes to the 1.0 code base, this was not a minor bug fix release.

Before submission I read a lot of sites covering rejections. I found out RegexKitLite usage could kick you out for private API usage so I pulled its needs from the product. Turns out the one area I was using it I really did not need for users in production meaning I could pull it without replacing it. I also found an on-line tool that scans your code looking for private API calls and it found none so I felt pretty good about this area.

I located the list of icon sizes for both iPhone and iPad and I included every one of those. Since I was in the graphics area I also updated everything for the Retina display which I was able to test in the simulator and then on the new iTouch we purchased.

Even though the 1.0 version was already out in the store we did not feel the network handling code was the best. This is an area Apple can get picky about so I gave it a solid once over and cleaned up areas that did not handle network connection loss. I also dealt with multi-tasking as your data could be stale if you pushed the application to the background for any length of time. I auto refreshed the appointment list when the app came back to the foreground.

I ran the memory analyzer and cleaned up all the potential memory leaks found by the static checker and then ran the application multiple times to make sure no leaks showed up during run time analysis.

Our QA team gave it a beating too finding a few issues but it was pretty clean overall.

The confidence level was high at submission but so many have been rejected for oddball reasons I was still worried. The big one could be the new "limited audience appeal" rejection. Would they need to know how many doctors were going to use it? How many is too few? Could they force us into the ad hoc model? Glad that did not come into play.

Still don't care for it taking a week to get a 1.1 version posted. I guess you can try to have them push updates quicker when you run into critical bugs. That was not the case here, this was really a functionality improvement along with UI clean up getting it ready for the 2.0 release I am working on now that will add a lot of new functionality.

Back to work on the 2.0 version for me including new SQLite usage. I have already refactored that area twice and just now have it back up and running. I had to use NSZombieEnabled = YES to figure out that I was releasing an object too early. I also can't run my test code in the profiler and I need to figure out why that piece is annoyed. Xcode is a real PITA most of the time.

The Android version of the product, that I also wrote basically from scratch as there was no 1.0 version of that, released to the store in all of 20 minutes including account sign up. Of course we can update that pretty much instantly too. It just happens to be of less importance as most Doctors use the iPhone. We will release the 2.0 version to both platforms once I get it completed.