When learning a new language/platform/framework, sometimes learning from a book is a good approach. But that depends heavily on picking the 'right' book. What I mean is that the book contains the 'right' amount of content for the reader's skill level. So when I looked for book to learn more about iPhone development, I have something specific in my mind already.
With Apple's original rather restrictive NDA placed on iPhone developers, all the iPhone development books were placed on hold until Apple changed of mind a few months back. One of the book that I received good recommendation from fellow ThoughtWorkers who were also interested in iPhone development was Erica Sudan's iPhone Developer's Cookbook. I bought it earlier this month along with Christmas presents so I can read it during the holiday vacation.
The book is not thick at all, coming just under 340 pages, and took me couple of afternoons to read through. It is written half in traditional cover-to-cover manner and half in 'recipe' manner where developers can find solutions to problem quickly. Perhaps because I've been part of the iPhone SDK program since the beginning and had seen the evolution from the first beta, most of the book content (I'd say 90%) is not new to me. Particularly the sections on table, advanced table, and UI controls are areas that I am already very familiar with after poking around the SDK for over 6 months. I did learn some valuable tips on media and animation, which I've not spent any time on yet.
I'm kind of disappointed by the book because I was hoping I would learn how to create great iPhone app. Particular I was looking for code examples of common application requirements (e.g. how to implement options screen) with in-depth discussion on the limitations imposed by the public API, alternative ways to work around them using legitimate means, as well as undocumented API. I am also hoping to see some mention of unit testing with OCUnit or Google's unit testing framework, profiling using Instrument, and other libraries that would fill in the API gaps. Instead, the book only provides isolated information on each topic and spends to my mind, a disproportion amount of time on undocumented API thus giving it an implicit approval. (On the topic of private/undocumented API, I am in the camp of John Gruber of Daring Fireball)
In the end, I would give this book 3 out of 5 because it provides a lot of valuable information for any one starting out with iPhone development. But it does not provide any insight into building great iPhone application, which I think is sorely missing in this area.