Wednesday, March 25, 2009

Planning an iPhone Application

My first few attempts at iPhone apps kind of went like this:
  • Had great (to me at least) idea.
  • Fleshed out maybe a page worth of notes on it.
  • Started coding so I could learn Cocoa Touch, Objective-C and XCode.
  • Got some stuff working well, some stuff not working so well, and some stuff just plan not working.
  • Got to a point where I needed to drop in a lot of artwork and then the project stalled.
So, I still have those projects ready for another day when I sit down to plan them out a little more. With new ideas I am starting to put more thought (there's a novel idea) into the design of the application before I write any code. This time I have pages and pages of notes for the ideas including:
  • What purpose does it solve for the user?
  • For games, how do I build a sense of community around the game?
  • Rough sketches of the screen layout (this has helped me realize some of the layout ideas are bad and hence I am working that out on paper first instead of coding stuff that I then go and say, man that sucks, end up depressed at the lack of progress, and then the project stalls).
  • How would I test this? How can I break this into manageable chunks that allow me to a) learn the APIs, b) unit test the code?
  • Writing down features including a Narrative or Use Case for that feature. This has helped a ton to point out ideas that might need more thinking or maybe should just be dropped.
  • Figuring out feature sets for releases. Once I have Narratives for a feature this helps me see which Narratives group together into a useful set of features for a release. Some of the features, though sounding cool, are also more difficult to develop and test, so I want to group those into future releases which I would implement if the initial application does well. No sense in trying to build a city if all people wanted was a rest-stop on the side of the highway.
  • Allows me to keep track of ideas that might need more work but at least it is on paper so I can go back later and resurrect the idea if it has merit.
So, the work continues. What am I working on now? Like everyone and their dog, I have some game ideas. One of those I am actively working on (pen and papering it to work out the design) and it was something that would not have been possible (ok not easy) before the iPhone OS 3.0 release. Hence, with the release of the new OS in mid-summer and this idea having floated around for a while I am actively working on it so that I might be able to get something working for shortly after the 3.0 release.

The work continues...the learning continues...the journey continues.

No comments: