May 26, 2012, 7:25 AM — In my time at Macworld, I’ve reviewed and tested numerous iOS apps. I’ve also reported on the challenges that iOS developers face. But it was only recently that I built my first iOS app, along with developer (and frequent Macworld contributor) Marco Tabini. The experience left me with insights into the iOS development process that I probably would never have otherwise discovered, and a better understanding of what the developers of many of our favorite apps go through on a regular basis.
[ Free download: How to craft a mobile-application strategy ]
The app that Marco and I built is an iPhone game called Let’s Sing, available in free and $5 ad-free versions from the App Store. Here’s a behind-the-scenes peek at just what goes into building an app.
It’s awfully hard
Don’t let anyone tell you otherwise: Building iOS apps is hard work, for a lot of reasons.
Perhaps you’ve come across the occasional awful app. Perhaps you’ve even spent time telling anyone who will listen about the incredibly lousy experience you had with that bad app. (Heck, it’s part of my job description.) But let me assure you, even the lousiest app is the result of some serious time and dedication to the craft of developing it.
Testing, testing: All programming presents challenges. But iOS programming adds in several added layers of complexity. One big challenge is testing your in-progress app. You can run the app you’re building on the iOS Simulator, a virtual iPhone or iPad that runs as a standalone application on your Mac. But—as any developer will tell you—the Simulator isn’t a substitute for the real thing; you need to test your app on actual iOS devices, too.
That’s a challenge in its own right. Apple limits iOS developers to testing their apps on 100 devices. That might sound like plenty, but keep in mind that you want lots of folks to test your apps, on multiple iOS devices and models, running different versions of iOS. That way, you can work out early bugs, interface issues, and settle on features. What’s more, you want those testers to span a wide range of experience levels to ensure that they mirror your potential App Store customers.