Fed's New Rate Hike Eye Infections Money-Saving Tips Huawei Watch Ultimate Adobe's Generative AI Tips to Get More Exercise 12 Healthy Spring Recipes Watch March Madness
Want CNET to notify you of price drops and the latest stories?
No, thank you

How to make an iPhone app or die trying

This is a story about two people who joined the iPhone app goldrush to make a million dollars from a game idea. Its developers give their advice on App Store success

Are you sitting comfortably? Then I'll begin. This is a story about two people who joined the iPhone app goldrush and attempted to make a million dollars from a game called Twitch Origins. It's also a story about madness, drink, drugs, prostitution and everything else on the pathway to living this decade's geek dream: having the top-selling app on iTunes.

I am one of the two people in this story, Chris Stevens, formerly of this parish and head of graphics at Atomic Antelope. We made an iPhone game called Twitch Origins (iTunes link). I'm going to tell you everything you need to do to take your idea from a sketch on the back of an envelope to a fully grown app. I'm going to explain what we did right, so you'll know what to do. And I'll tell you what we did wrong, so you don't have to live through it.

Right, now take my bloodied hand, we're going back into the jungle.

1. Get an idea

Everything stems from this moment of inspiration. The biggest problem you'll have at this stage is originality. You'll quickly discover that 99 per cent of the ideas you have for an iPhone app, no matter how wacky, have already been done. It's astounding, but go on, think of a few iPhone app ideas and Google them.

An app that dares you to throw your iPhone as high in the air as possible? Done. An app that encourages you to lick your iPhone screen and watch a graphical ice cream disappear? Done. An app that measures the speed and power of your punch? Done. Done. Done.

Okay, what now? You have two options: keep thinking up ideas until you strike a new one, or develop an app similar to an existing one, but make it better. Both options have their pitfalls.

If you choose to improve an existing app, you may find you're the underdog competing against the existing standard. But at least you know there's a market for it. If you choose to persist with a brand-new idea, like we did, then you're dealing with a complete unknown: will people like your game format?

Here are some of the early sketches we made when we were coming up with the idea for Twitch Origins.


2. Buy stuff

Writing your own iPhone app doesn't come cheap. Registering as an Apple Developer is just $100 (£60) and this lets you do everything from downloading the official software-development kit to actually uploading your app on the iTunes store. This seems like a bargain, but remember, at the very least you'll also need:

  • A recent Intel-based Apple Mac computer
  • An iPhone to test the app on

Some people will tell you it's possible to test your app exclusively on the simulator that comes with the iPhone developer tools. This is wrong. The simulator is great up to a point, but it doesn't simulate the iPhone's specific hardware or any interesting features such as multi-touch, GPS or the accelerometer.

To test your app properly, you'll need a new iPhone and, ideally, an iPod touch as well. Try to get hold of an old 2G iPhone as well, if you can. A game that runs perfectly well on a brand-spanking-new iPhone 3GS might stutter on an earlier-generation device. The older iPhones have less available memory and slower processors. You can ignore this market if you like, but you might end up with bad reviews from owners of older devices.


3. Make sure you know how to program, or partner with someone who does

The app goldrush has given the impression that all it takes to make a best-seller is a few cups of coffee and a weekend with Objective-C for Dummies. Realistically, good programmers are hard to come by, and you shouldn't expect to make the jump to coding an iPhone app overnight.

The language iPhone apps are written in is called Objective-C, which, unless you've done development for Apple computers previously, you probably won't have used. Even veteran coders may find things difficult to start with.

The biggest issue new Objective-C programmers struggle with is memory management -- it's very easy to make an app that 'leaks' memory and eventually crash, leaving the user wondering what happened to their all-time high score.


4. Plan your app

The best way to develop your app is to do no programming at all until the design and graphics are finalised. Don't start coding until you know how every tiny bit of the app will look graphically. Having a clear idea from the start about what you're building, and how you want everything to look, will help you save weeks of painful re-writing later on.

Now is also a really good time to reserve your app's name. You can do this by going through the app-submission process, but without uploading the 'binary' -- the name programmers give to the application code itself. This process has been likened to domain-name squatting, but it's quickly become apparent this is the only way you can use the name you want. If you don't register your name early, someone else might, and you risk losing it into a vague fog from which it cannot be retrieved -- there's no way of contacting the person who's nabbed your awesome moniker. We found out the hard way.

If you're doing something unique or technically challenging with the iPhone, it's worth building a crude prototype to test whether it's even possible to do what you've planned.


5. Prototype your app

With Twitch Origins, we knew we wanted four players' fingers to interact on a single iPhone screen. We'd seen several existing apps that allowed two-player interaction, but no one had successfully implemented a four-player mode on one iPhone that worked properly. Why was this?

A prototype of our interface showed that the screen had problems working out which of four players had lifted their finger off the iPhone screen, or 'twitched', in the parlance of our game. We came very close to giving up on the project at this point. Then we had a major breakthrough.

We discovered that if the pads were placed in very specific positions, the screen would accurately sense what the player's fingers were up to. In any other position they won't work properly. This is probably a quirk of current touchscreen technology, but it's not documented anywhere.

If we hadn't prototyped on a real iPhone it could have been a disaster.


6. Design the graphics

This stage will depend entirely on what kind of app you're building. The iPhone generally likes the PNG graphic format for everything, although you can use many others. Apple recommends PNG because the iPhone handles this format very efficiently.

If you want to make a complex game run really fast, there are other graphic formats and tricks you can use on the iPhone, but if this is your first app, we'd recommend keeping things simple.

Here's a selection of sketches and graphics as they were developed over the course of producing Twitch.


7. Develop, test, develop, test

Once you've designed the look of the app, how all the screens will relate and the 'flow' of the experience, it's time to start writing code.

Until you've installed your amazing new app on a real iPhone and played it, you have no idea what will happen or how it will perform. It's very easy to get the app you're writing from your computer on to your test devices. Do this. A lot.

Continually testing newly developed features or animations will mean you can catch problems early on. We were sometimes surprised how small changes to the design would slow things down. Failing to check your work regularly on a real iPhone will mean you waste time re-working something you thought worked. Getting your code to run quickly on the iPhone is an art, and when things go right it's extremely rewarding.


8. Set a price

The debate over app pricing on the iPhone App Store rumbles on. You'll find all kinds of weird and wonderful theories on the subject of how you should price your app. The bottom line, to quote William Goldman, is nobody knows anything.

Price your app low, and it'll be more of an impulse buy. Price it too low and you might give the impression of a low-quality product. Price it high and you might sell far fewer copies, but still make more profit overall from the copies you do sell. Or you might not sell any, because it's too expensive.

A similar dilemma hangs over 'lite' versions. These are stripped-down versions of your app, designed to give potential customers a free taste of what you're offering, and leaving them hungry for more. Although they're a brilliant marketing tool, you have to strike a careful balance between how much you give away for free, and what you hold back to entice a full purchase.

Hold back too much and you won't create a good impression with the lite version. Give away too much, and there's no incentive for anyone to buy the full version of the software -- they're already satisfied.

It's all intuition and guesswork. You know your app best, so you're as good a judge as anyone.


9. Get ready for your adoring fans

Before the world gets to see the amazing new app you've spent months toiling over, make sure you have a good Web site. It's important that people buying the app can watch videos of it in action, especially if you don't have a lite version on offer.

For the launch of Twitch we put videos on YouTube as well setting up a forum on our company Web site, built with WordPress. This might all sound really complicated, but setup is simple and, even better, it's mostly free. You spent a long time developing the perfect app: now make the most of it.


10. Launch the app!

You've tested the app, your friends have tested the app, your parents have tested the app, your hairdresser has tested the app, and everyone thinks it's great. Time to let the rest of the world have a go.

In order to get your app on to the iPhone App store there's some mystical hand-waving to digitally sign the app for distribution. Once the gods have been appeased, you can upload the application to Apple for approval. As far as we can tell, this process is taking about 10-14 days for most developers, but some report mysteriously long waits to get approved.

You're now in the kingdom of Apple. The only communication you can submit is via email -- gallons of patience and trying to find answers from other sources such as Internet forums are key to getting through this!

Along with the application, you can also submit screenshots and descriptive text for your app. These are all anyone will see when browsing through apps on the iTunes App Store, so make sure to make them fun, descriptive and clear.

Once the app has been released, you need to get the good news out. There are close to 100,000 apps on iTunes, so there needs to be an excellent reason for people to pick yours.

Apple gives you a number of 'free download' codes you can give out to reviewers and influential Web sites, so they can test out your game. It's worth using these wisely to get the word out about your app.

Now people are downloading it to play on their iPhones in the wild, you must stay on top of all the user feedback. Reply to emails people send you, and read the comments left on iTunes. If there are clear problems with the app, be quick to remedy them and upload a fix.

We were first-time iPhone app developers. From coming up with the original ideas for Twitch to it being available for download (iTunes link) took us about three months.

Good luck with your app, and remember: death or glory.