You are using an outdated browser. Please upgrade your browser to improve your experience.

From the Diary of an App Developer: Features

May 3, 2010
From the Diary of an Application Developer is a weekly column where I will share my experiences, tips, and overall expertise on application development with you. This is only the third column, so you aren't too far behind, but you'll probably want to start out with the first article. By now you should have a general idea of what your app will be. At least you should know the big picture — your app's category, its main purpose, the void in the App Store it fills, and what makes it an app that people will download and care about. But, you aren't out of the idea woods yet; we still have a lot of idea-generation left. Now that you have a general idea for your app, it's time to hone in on the specifics.

Step One: Your Features

Anyone could tell you that the most important part of any application is its features. You may have the best programming and design in the world, but without a solid list of features, you do not have an app fit for anyone's Apple device. So that's where we'll start. Make a list of your features. Start out with a simple overview. For example, if I were developing a racing game, the first draft of features might look like this: -10 race tracks -5 cars -Free-style or 5 different tournaments the player can participate in -Tilt or on-screen directional pad to steer -Soundtrack -Authentic racing noises -Options: Accelerator sensitivity, car color, mute audio, toggle vibrations, etc. Stay loose in your decisions. This is not a final or in-depth list. Generate new ideas. Get creative. Just get a workable list of at least 7 workable features.

Step One and a Half: Deeper into the Features

This is the time to look hard at your list and dig into the nether regions of your mind. Everything about this app you know or have an idea about should be on this list. Everything. If it is in your head and is related to your application in some way, it should be related to one of your features, and should be on this list. Back to our example: -Icon is a combination of BMW and Ferrari logos -There will be a store where users can purchase new tracks and cars based on points gained by winning tournaments. -10 race tracks: each named after a U.S. President, each a different length and difficulty. Difficulty based on obstacles, narrowed track, jumps, and distractions. User will pick the track on a screen after the home screen, but before each race. Tracks will be rated between 0 and 5 stars based on their difficulty. -5 cars: 1965 BMW 1800 TISA "Neue Klasse", 1980 Chevy Corvette (5 points), 2004 Dodge SRT-4 (10 points), 2004 Ferrari 360 Challenge (10 points), 1969 Triumph GT6 (20 points). Each car has different levels of speed, rate of acceleration, and control. -Free-style or 5 different tournaments the player can participate in. Free-style gets the user 0 points to use in the store to purchase more cars and tracks. -Tilt or on-screen directional pad to steer: edit through the Options menu on the home page, directional pad will be located in the lower left of the screen. -Soundtrack. Original music produced by me with GarageBand. -Authentic racing noises: royalty-free sounds (note: -Options: Accelerator sensitivity, car color, mute audio, toggle vibrations, etc. Edit through pause menu, or Options menu on home page. And there you have it. A features list for a fictional racing game, that, actually, I wouldn't mind playing. This could of course be much longer as the developer of this made-up app kept thinking of new and better things to add to his app. So, I recommend making the creation and finalization of this list take at least a few days, because you will always be thinking of things to add. But, don't worry, you'll be able to add and subtract things later on, too. App development is all about evolution and revising and bettering your app.

Step Two: Back to the Ol' Paper and Pencil

Once you feel comfortable with your features list and think that it's full and complex enough to support an App Store app, it is time for some more pencil and paper! Hooray! Since you have all of your features figured out, it's now time to think about how they will all be put together in an artful, functional way. The best way to figure this out, is by drawing each screen of your application. First, I'd recommend downloading this PDF and printing off about 10 of them (give or take a few depending on how complex your app is). (Note: If you are developing for the iPad, use this printable template.) Now, get your features list, and go! Make your app. Draw out the very first screen of your app to start. Put the buttons on the screen and have those lead to new screens, which you will also draw. Label what buttons go to which sheet. Don't care about design now, just focus on translating your complete features list into an iPhone-screen format. During this process, I guarantee that you will both remove existing features and add brand new ones that you hadn't thought of before. This is not a bad thing—on the contrary, it's a great thing! The more you revise your app, the better it will be. Make the necessary edits to your features list along the way, and keep sketching. Also, be sure to make great use of all of that note-taking space in the margins of the template. And that's all there is to developing a great list of features for your app! Well, your app is certainly starting to come together. You have a complete set of features, and details about each of them. You have also translated them into a familiar, workable format perfect for Well, your app is certainly starting to come together. You have a complete set of features, and details about each of them. You have also translated them into a familiar, workable format perfect for iPhone development. Next week, we'll focus on turning your sketches into something your designer and programmer can actually work with.