We’ve completed the initial development phase for our first iOS application and have started beta testing it in preparation for submitting it to the Apple App Store. The app has received a lot of internal testing throughout the development process and we anticipate a fairly short beta test phase that will focus on running it on a range of the supported device types. With a little luck we won’t turn up any significant new bugs and will be able to get this out to the public as soon as possible.
In preparation for getting things ready for beta testing we did several rounds of profiling using Instruments in Xcode to search for internal problems such as memory leaks and performance bottlenecks. This was an important step in the development cycle and the process did turn up a couple of memory leaks in unexpected places. The biggest problem was eventually traced back to an issue related to the Core Graphics library ‘CGContextDrawPDFPage’ function. It turns out that the content of some PDF files will cause the function to leak depending on the information encoded in the file. While simplifying the graphics contained in the file could circumvent the issue, it didn’t seem like a reliable long-term solution so we moved the vector images to another format and stopped using PDF. Performance profiling turned up some areas we were able to tweak to gain higher animation frame rates for some of the sequences in the application although we ended up settling for lower performance than we wanted on older devices like the original iPad.
Generally speaking we’re very pleased with how well the development process went. This was our first major app development project on iOS and the process was smooth, the tools worked great, and we have really come to appreciate the breadth and depth of the functionality in the iOS development platform. We’re looking forward to an uneventful beta test process followed by a successful release to the App Store.