iPhone Developer’s Cookbook – Review

I originally purchased this book while at BioWare in anticipation of working on an iPhone game and so it had sat on my unread pile for a bit. I finally decided to tackle it, one reason being that I’ll be writing a review shortly for a new book from O’Reilly called iPhone Game Development and thought it would be interesting to compare the two titles.

The author of The iPhone Developer’s Cookbook, Erica Sadun, seems very knowledgeable about the iPhone SDK and the book was organized well and was a good read. It should be mentioned that I do not have a Macintosh and hence couldn’t actually test any of the code samples (you need a Mac to do iPhone or iPod touch development).

The Cookbook is filled with practical advice, lots of little tricks and observations that could only come with much experience, from a discussion about the awkwardness of tethering the iPhone via USB to the computer in order to test applications (and suggestions to help minimize that awkwardness) to how to take a screenshot with the iPhone (hold down the sleep/wake button and tap the Home button — this works on the iPod touch device too).

As someone completely unfamiliar with the process of creating apps for the iTunes store (or using Objective C), I thought the book did an admirable job of explaining the process. I learned how the code projects are structures, how sandboxes work, and the basics of registering as a developer with Apple (this while useful is one section though that I thought could have been expanded a bit). There’s detail on using Xcode (the development platform) and the interface builder… the author explains how to set breakpoints and such.

The chapter on Views, the building block of app development, was well thought out and useful and there’s good discussion of when and how to use multitouch. The book goes on to cover all interface fundamentals (notifications, progress bars, et cetera). And throughout the author is careful to explain the hidden features of the iPhone SDK and when (and when not) you should use them. There’s also a strong chapter on using web services with several examples and alternative approaches. Actually throughout the book the author has been good about offering two or three ways to solve a problem and also explaining the advantages and disadvantages of each approach — this was especially useful in the audio section. The book ends with an explanation of adding Cover Flow to apps — a feature I wished more app developers would consider adding.

Not many negatives overall. I’d have liked to learn a bit more about Objective C as I know nothing about it, but I suspect if I had XCode and a development machine I’d pick it up easily enough. Certain subsections that seemed promising occasionally failed to deliver, like the one about Energy Limits — the iPhone is a portable device and though the author mentions app creators should be aware of battery limitations and should avoid draining power how to do this isn’t really described. And as mentioned above a more concrete walkthru of the whole registration process might have made that less daunting. But overall these are minor nitpicks and after reading the book I feel with a little trial and error I could put together iPhone apps — I think I’ve picked up enough that I probably could try my hand at even making a game.

Check back in a bit for my review of iPhone Game Development and see how the two titles fare against one another.