Making the jump from user to developer isn’t always an easy thing to do, and usually requires some specific motivation — a problem to solve, or a market to satisfy. I’ve dabbled with various kinds of programming for years, but have never really considered myself a developer. Apple’s iPhone and Google’s Android platforms are, I think, making really compelling platforms to entice people to make the jump to start creating their own programs. The barrier to entry is low, the distribution is handled for you, and the cost to potential customers is cheap.
Over at The Guardian there’s a story titled How to become an iPhone developer in eight easy steps that attempts to show how easy it is to get started, implying that anyone can write an iPhone app that becomes wildly popular and nets the author buckets full of cash. It’s true that anyone can take a stab at writing an app, and it’s true that your app just might hit the jackpot; but the reality is more sober. How many apps are there on the App Store? And how many of these have you actually heard of? And of those, how many are actually making big profits?
I think steps three (Learn Objective C) and four (Start Writing Something!) greatly oversimplify the issue. Learning how to write a program takes a specific way of looking at problems, and thinking about data, that does not come naturally to most folks. I haven’t looked at the iPhone Software Development Kit yet, so maybe that helps get new coders up to speed, but my natural skepticism leads me to believe that developing anything not specifically covered by the SDK would be a challenge. And if that’s the case, then writing an application for the iPhone is little different from writing for any other platform: you’ll still need to teach yourself a lot on your own.
Finding some creative new application to write isn’t likely to happen for most folks, either. How many applications are there on the Apple App Store that all do, essentially, the same thing? And how many applications are there that stand totally alone, offering something unique? If you do come up with something unique, is it something that you think lots of people would want to try? (Remember, the implication of the Guardian piece is that anyone can write an app that garners them lots and lots of money.)
Step eight (Adapt, market and survive!) is, I think, where the real long-term struggles will be seen. Writing an application is fun. You use your creativity and problem solving to create something. Supporting something is a much different task: it’s far less exciting, it’s usually harder to do, and it involves people complaining to you. Troubleshooting bugs in your software that you can’t reproduce can be a maddening experience. Chances are you’ll feel at least some modicum of responsibility to your users, so you’ll have pressures on you that weren’t there during the development stages.
As critical as I am of the rosy picture painted by the Guardian story, I am hopeful for iPhone (and Android) development on the whole. The mobile computing features offered by these new devices means that applications can be location specific: I could write an app that’s only useful to my local group of friends, for example. I think Apple’s $99 developer tax is probably a barrier to entry for many would-be developers. Hopefully that’ll get relaxed eventually.