March 13, 2009

Book Review: Beginning iPhone Development

Back in December, when I jumped into iPhone developing, I searched for books covering this topic. On Amazon, there were only two that addressed the official Apple SDK: Erica Sadun's "The iPhone Developer's Cookbook" and Dave Mark and Jeff LaMarche's "Beginning iPhone Development". I ordered both, with low expectations. Why low expectations? I knew Apple had only recently rescinded their NDA and that would open the floodgate of iPhone development books. I expected a great race to be the first book out, and I assumed this race would result in a shoddy, rushed, poorly edited book. I was very surprised with "Beginning iPhone Development". I was also surprised by Sadun's book, reviewed here. For me--an experienced software engineer with zilch experience with Xcode, Cocoa, and Objective-C--the level at which "Beginning" delivered its content seemed about right. I never felt lost in their explanations, nor did I feel being talked down to. I also found the writing style upbeat but not annoying. I could detect two different writers, but this was not distracting. Overall, the delivery of the material was A+. One thing I noticed immediately was that the usage of Interface Builder throughout the book. It doesn't dominate the book, but most of the coding projects start off with it. I understand that most developers either love IB or they hate IB. Just be aware that this book uses it. It is possible to use the book without using IB, but you will have to start up some of the projects on your own and skip ahead to the meat of whatever the topic was. I think the authors would do their readers a great service by also showing how to build an application from the ground up, without using IB. This really helps one understand how iPhone applications work. There is a good deal of sample code and descriptive text. I have seen books that tipped the scales favoring one or the other, but "Beginning" found the perfect balance. Although the book provides all its source code online (thanks!), it was still helpful to see the code, even only snippets, interspersed with the context of the text. The book has proven wonderful to read straight through as an introduction to iPhone development, but it is not meant as a reference. Having chapter titles like "Whee!" and "More User Interface Fun" do not aid in locating topics quickly. Luckily the index is more serious. Overall, the tone of the book is that of a tutorial, and it does that very well, but this tone does not lend itself well as a reference guide. Understandably, addressing this would greatly increase the size of the book. The breadth and depth of the material is well balanced for a beginner's book. I had no idea developing for the iPhone was so vast and complex. Information on table views and table controllers can easily take an entire book, so I was not surprised to find that material a little light, even though two chapters were dedicated to it. The samples and discussions don't go much into "advanced" territory, but the book can't be dinged on this because, after all, the title of the book begins with "Beginning". I would love to see a follow-up book from these guys covering advanced topics. For quality, I would have to give another A+. I have not found many typos, grammatical problems, or source code issues. This is amazing considering the quality of most software books. If these two guys were in a hurry to get their book out, it doesn't show in the quality. This book is a must-have for anyone serious about developing iPhone apps. However, reading this book alone will not make you an expert iPhone developer. You still need to dig into other resources to fill in the gaps, but "Beginning" provides a stellar introduction to the basic concepts.

No comments:

Post a Comment