For three successive versions of iOS, starting with iOS4, O’Reilly’s iOS Programming Cookbook by Vandad Nahavandipoor has been (along with Programming iOS by Matt Neuberg) my go-to volume for answering questions about how to accomplish things in the language. I don’t throw this claim around lightly, since there’s a boatload of books these days that claim to do the same thing, which is to provide snippets of information for the novice to intermediate iOS programmer to allow for the accomplishment of a particular goal; unfortunately for my wallet and for my time, most of these volumes fall strangely short of the mark, either by being not comprehensive enough, not using sufficient examples, or by being riddled with typos and errata (something particularly egregious in a book where the actual text of code matters). I’m constantly amazed at how many poorly written, poorly assembled, and flat out bad books are published on the subject of iOS. Granted, this particular operating system changes at a fairly brisk clip and in pretty significant ways, so my guess is that books are rushed to market in an attempt to be sold to readers in a timely fashion, before Apple goes and releases iOS7, starting the whole process over.
I’m happy to say that from the first edition a few years ago till this latest, third edition, the iOS Programming Cookbook suffers from none of these problems. From virtual cover to virtual cover (this review is of the electronic version), I’ve yet to find code that’s incorrect or contains typos. Code is presented as it should be in a “Cookbook”: on its own, with no extraneous information to cloud the detail on the subject. The subject matter runs the gamut from basic information about Objective-C such as syntax and working with data types to more advanced subjects such as the core libraries of iOS. The discussion of Core Data is especially nice, as is the section of Graphics.
The writing style is what you’d expect from a “Cookbook”, succinct and to the point. But if you’re picking up a title like this, you want just that rather than a hundred page treatise on Core Graphics that begins with the history of Quartz 2d. As such, while there’s a lot to learn here, beginning programmers should probably look elsewhere, while seasoned programmers who are new to Objective-C will find a treasure trove of information, as will advanced programmers of all sorts, who will be able to use the book as it’s intended: as a quick reference for how to get X or Y done. You might be like me and have this side by side with the latest edition of Programming iOS to be used in tandem. They complement each other pretty well, with one providing quick detail and the other a more in-depth discussion of the subject matter.
There’s not a whole lot to complain about, either content-wise or specific to the electronic version, which is much improved in format and quality from the iffy first edition. The closest I can come to a complaint is that I wish I didn’t end up having to get a new edition ever time there’s a new version of iOS, but that’s Apple’s problem, not this book’s. There are few books I’ve read that I can unconditionally recommend, but this is definitely one of them. As long as you’re not a completely fresh newcomer to programming, this book will come in handy to you.