Dear Aunt TUAW: How do I get started programming for the iPhone?
I have some free time this weekend to try messing around with development and see if it's something I might be able to do. Where's a good place to stick my toe in and see if the water's good for swimming? Should I buy an Objective-C book and spend the whole weekend with that, or is it worth it to put down the money on a dev kit and see what I can make my iPhone do?
Your devoted nephew,
My Darling Mikey,
No need to spend that $99 when the SDK is free. You can go ahead and sign your soul away to Apple without paying a penny by joining the free online developer program. If you decide that iPhone programming is "your thing," you can join the paid yearly developer program when you're ready.
As for programming, not having a strong C background can certainly be an obstacle. C, specifically Objective-C, is the iPhone core programming language. Knowing Objective-C and how to use Cocoa are the development keystones.
Amazon has Steven Kochan's excellent Objective C book for sale -- but the new version will be out in a matter of weeks. If you can, grab one from your local library. This allows you to hold off on buying until you can get the new shiny version.
Hillegass' Cocoa Programming just went into its third edition and is nicely updated. It's the standard Cocoa "bible" that many developers recommend.
Unfortunately the news is not so good on the iPhone-specific front. Jonathan Zdziarsky's Open Application Development book does not go past Firmware 1.1.3 (it was written in the Fall of 2007) and it covers none of the SDK. Many of the firmware calls listed in that book are obsolete, and since you have an App Store goal in mind, you will find yourself going down the road of unsupported or private APIs.
You can't buy an SDK development book because the NDA prohibits those books going to press. Apple's official Cocoa Dev mailing list regularly reminds participants that iPhone specific discussion is off-limits. (Be aware that the noise quotient on CocoaDev is pretty high and that tempers often flare.)
You can also search online for one of the many private forums, IRC servers, and mailing lists that developers have established despite Apple. Many local dev organizations have sprung up, particularly in the Bay Area but how each group handles the NDA issues varies.
Apple does provide lots of yummy sample code. Download and adapt that code however you wish. These are great starting off points for people well-versed in Objective C and Cocoa. They're not such great starting points for anyone not fully conversant with those skills. The code is not written pedagogically. There are tons of classes, the comments tend towards administrative rather than tutorial, and you have to get your mind into the Apple Engineer mindset -- which can be an uncomfortable thing but is easily treated with ointments and creams.
Between Kochan and Hillegass and sample code, you have a good chance of figuring it all out in time -- but probably not over a weekend and probably with a certain degree of discomfort.
I wish I had better news for you, Mikey but good luck all the same.