Showing posts with label reviews. Show all posts
Showing posts with label reviews. Show all posts

March 17, 2009

Book Review: The iPhone Developer's Cookbook

I purchased Erica Sadun's "The iPhone Developer's Cookbook" at the same time as Mark and LaMarche's "Beginning iPhone Development" (reviewed here). One would expect a lot of common ground and duplicated information in these two books, but that is not the case. Sadun takes a different tack with "Cookbook". "Cookbook" is just that: a book of "recipes" on how to get specific tasks done on the iPhone. "Beginning iPhone Development" introduces topics, explains them in great detail, and provides an example project that demonstrates the topic. But "Cookbook" takes this approach: "You want to do X? Here is some code that does X." Sadun's presentation is terse and to the point, with little explanation of how or why. Given the nature of this book, this approach is not at all bad. Sometimes I don't care about the nitty gritty details; I just need to know how to do X. In this context, "Cookbook" is perfect, and it has served well as a reference. The recipes presented are useful, some are advanced, and there doesn't appear to be much overlap with the content provided by "Beginning". However, don't expect to take the example projects and build them into full-fledged, polished applications without a lot of work. The projects provided build upon the initial hello world project. They are simply there to demonstrate the code, not to serve as a springboard for applications. The code snippets that accomplish X are important, not the projects. One thing I noticed between the two books is "Cookbook" appeared to use an older version of the SDK (pre 2.0?). "Cookbook" also occasionally steps into "unofficial" SDK territory, using undocumented APIs. While these are pointed out, I think a book needs to decide whether it wants to document usage of the official Apple SDK or whether it wants to cater to those jailbroken iPhone developers. All in all, I felt that "Cookbook" complemented "Begining" well with additional advanced topics in a no-nonsense approach. However, "Cookbook" is a relatively short book, considering the magnitude of the topic, and I felt the material could have been beefed up. This may have been a result of getting the book out fast. Certainly, its timeliness was a great help to me at the time, but "Cookbook" will have trouble competing with more polished, up to date, and comprehensive books as time goes on. Hopefully Sadun will provide revised editions. With the OS 3.0 coming out soon, all the old books may be obsolete, or at least incomplete.

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.