This summer I’ve had the mixed pleasure to get acquainted with the iPhone development platform. I have an iPhone, I enjoy using it, it seemed like the logical next step. I’ll share some tips so that if you feel like diving into it, you’ll know where to start, and also what you’re getting into.
* some preliminary objective-C knowledge is useful. The [Apple doc](http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html) gets you up to speed. Objective-C is an object-oriented language, and if you've done a strongly typed OO language like Java it shouldn't be too hard. Some attention should be paid to memory management - if you've got some C in your past, that helps. * Then, get a book. The Apple documentation is boring, it's a reference, but not a tutorial. I used ["Beginning iPhone Development"](http://www.apress.com/book/view/1430216263) from Apress. This is pretty good: very hands-on, every concept is illustrated with a small project, so you can test yourself. * Just so you know, you need to install Xcode to develop for iPhone, in other words, you need a mac. Really ? Really. The development tools are quite good, but there's no way around the Apple universe.
- Plan for your first real project as soon as possible. You’ll need a decent app in your portfolio if you want to start developing commercially anyway. It’s the best way to learn.
If you want to release your application to the AppStore, you need to subscribe to the iPhone Developer Program, which, the last time I looked, cost $99. Wait, scrap that, if you want to install your app onto your own iPhone you paid for yourself with your own hard-won money, you need to subscribe to the Developer Program. The iPhone will only admit executables which have been signed by Apple with what’s called a ‘provisioning profile’. That’s to keep people from circumventing the AppStore. Also, the best code samples, download and docs are only available to people who are registered.
- Be aware of the rules and regulations (PDF). Apple reserves the right to reject your application.
Don’t get me wrong, it’s relatively fun to develop for an iPhone. But it’s vendor lock-in raised to a whole new level. Unless there’s suddenly an enormous demand for iPhone applications, I’m not sure I’ll be pushing that part of my skills (after I finish developing my current application, to which I agreed). We’ll see.