My first iPhone app

UPDATE, 2 July: the app has been added to Apple’s ‘Staff Favourites’ list, and is currently no. 2 in the Business charts for free apps!

Over the weekend, my first iPhone app went live on the App Store. A free download, it’s a simple little app that allows users to browse The Stage’s jobs and auditions that are advertised online (and, in most cases, also in our weekly print edition).

The Stage Jobs and Auditions app (which we call just Stage Jobs for short) is free to download and use (save for your own 3G/internet connection costs). It briefly hit number 3 in iTunes’ chart of free business apps, which probably says more about the small number of downloads in that category than any soaraway success.

The bulk of the app takes the data from The Stage’s recruitment section, served up as XML via a private API (thanks to our web developer James, who implemented the server side of the API). This is converted to the iPhone’s standard drill-down format of clickable lists which, when clicked, slide off to the left to reveal more information – either a list of subcategories, a list of adverts, or the advert detail itself.

Going from proof of concept to a workable prototype was remarkably quick – a matter of weeks – thanks to a few things.

First off, we developed everything in house rather than going to an outside agency. Subcontracting this sort of work isn’t in itself a bad thing – I have plans for future apps on the iPhone and other platforms that we may subcontract – but keeping everything in house meant that the back-and-forth between project owner, specifier and developer was kept to a minimum. Partly because each role was (completely or in part) fulfilled by me.

In -house development is something we could never have achieved if I hadn’t previously been exposed to Objective C, the object-oriented C variant favoured by Apple for Mac & iPhone development. Back when I was working at Direct Image, which is over eleven years ago now, we looked at the viaibility of using Apple’s (formerly NEXTStep’s) WebObjects framework. Back then, it was one means of developing intelligent, interactive web applications, but it never took off the way that Microsoft’s ASP did. Since then both have been wildly overtaken by lighter weight, open source languages such as PHP, Python and Ruby and the frameworks such as Django, Rails and Sinatra that make web development far easier than it was over a decade ago.

We never actually got to the stage where WebObjects was viable for any of our projects, but the Obj-C knowledge never left me. And since I bought my Powerbook G4 six years ago, I’ve tried to keep my hand in, thanks to OSX’s inclusion of XCode and the rest of Apple’s developer tools for free with every install.

The third component that helped us develop the app in such a short space of time was Facebook’s open source Three20 library of Objective-C code. It’s not perfect by any means: the documentation is of the usual open source standard – i.e., it’s fine once you get to a standard where you don’t need it, but before then you’re pretty much on your own. But it does provide enough code to able to do some common tasks, such as caching XML feeds and converting them into useable objects to populate a table view, very easily.

I’m not sure it’s the right fit long term for this project, though: internally, we’ve discussed where the app could take us in future, and some of them will involve moving away from Three20’s structure for at least some of the tasks we have in mind. It may end up easier to develop our own code, ultimately removing the Three20 libraries altogether. But that won’t come until at least version 2.0, and the convenience Three20 has given us allows us to take our time with that one.

Author: Scott Matthewman

Formerly Online Editor and Digital Project Manager for The Stage, creator of the award-winning The Gay Vote politics blog, now a full-time software developer specialising in Ruby, Objective-C and Swift, as well as a part-time critic for Musical Theatre Review, The Reviews Hub and others.