iPhone is the new indie development platform

By larsbergstrom

Almost every developer I talk to these days talks about the same thing. It doesn’t matter if they’re a Windows developer, a UNIX developer, or an IT script writer. They all are looking into writing iPhone applications. Why? Because it’s the new indie platform. It’s filling a long-gone niche: it’s one place you can go as a single developer or a small team of developers, put together an application quickly, and get paid very well for doing it.

Without a huge marketing budget. Without layers of management and release process. And – most importantly – without a huge amount of business infrastructure around sales and installation support.

The Apple App Store has many issues, as does the iPhone SDK. But it solves the problems small development shops have – targeting multiple platforms, easily selling a product, and getting placement in front of users. So it’s okay that that the tool stack feels like it was written in 1997 and that the approval process takes seven to ten days (even for a bugfix!).

This is a huge platform, and it will dominate and accrue developer mindshare until another single platform provider makes it this easy to sell software.

With that in mind, I’m providing some info on making the shift from being a Windows developer. I worked as a developer at Microsoft on Visual Studio for quite a few years (though not as many as this guy!), so I can provide some perspective.

Getting things set up

This is actually trivial. Get a Mac and install XCode. I highly recommend avoiding the hackintosh experience. People are doing it left and right with the popularity of the platform, but I have yet to meet anyone who did it in less than three days of systems administration hacking. It’s giving me flashbacks to early 90s linux configuration.

Then go to to the iPhone Dev Center, register for free access, and download the SDK. It’ll update XCode, install the simulator, and a decent number of samples. It’s a small number of samples by comparison to a Microsoft platform, but the SDK surface area is pretty small and the samples do a decent job of covering most of it.

Learning the tools

There’s a blog with a good number of tutorials – http://icodeblog.com/. I highly recommend you start at the beginning and do even the Hello, World sample. Putting together applications for the iPhone requires a level of work similar to Visual C++ 5-era MFC. All of the UI layout (think resource editor) is separate from the code hookup (think your dialog classes and ::GetDlgItem), and there’s even an additional step you have to do to twiddle all of the hookups and handle creation. Don’t skip any steps or you’ll miss some very basic concepts.

I also recommend the book Cocoa Programming for Mac OS X. It’s a walkthrough of the different technologies, and is a good guide to the tool and the general architectural Zen of Cocoa. Even though it’s develpment focused, the iPhone classes are basically a subset of what’s available on the desktop, with the addition of a few things like the spinner control.

Then just try out the samples and get going! The simulator is reasonably good, though the performance characteristics and a few UIKit controls behave differently (so don’t try to ship without buying a device and trying it on there directly!).

Future posts
From here, I’m going to cover a top-ten style list of things that annoy me and things that I love about the iPhone SDK and tool experience. I’m also planning to post some numbers from my sales and Top-100 rankings for one of my applications, WiFinder just so you can have a better idea why I consider this the premier indie development platform!

One Response to “iPhone is the new indie development platform”

  1. How to program for iPhone « PCH’s Stuff Says:

    [...] How to program for iPhone http://larsbergstrom.wordpress.com/2008/09/03/iphone-is-the-new-indie-development-platform/ [...]

Leave a Reply