Cocoa Programming: A Quick-Start Guide for Developers shows you how to get productive with Cocoa-fast! We won't walk you through every class and method in the API (but we will show you where to find that information). Instead, we'll jump right in and start building a web browser using Cocoa. In just a few minutes you'll have something that works. A couple of minutes more, and you'll have code in your custom controller, listening for notifications and call-backs. Soon you'll have the functionality you'd expect in a full browser. And that's just the first few chapters...
I usually don't read tech books cover to cover. Typically, they're used for reference -- looking up something here or there, finding a technique and reading the chapter, or just giving up because the book is written so badly the more advanced sections are completely impenetrable. This was an exception. I read every chapter, did every exercise, and came out feeling I actually learned enough to be dangerous.
"Cocoa Programming: A Quick Start" is not for beginners. It assumes from the outside the reader has had years of C and C++ experience, is familiar with all of the standard programming techniques and the standards OO development techniques and, near the end, has a good grasp of threading and functional programming. The idea is not to teach /programming/ per se but to get a professional software engineer from 0 to building useful MacOSX, iPhone and iPad apps in a relatively short about of time. Projects begin with the very simple, no code required application using widgets all the way through to writing somewhat complex applications using threading and queuing with all the very important pieces -- delegates, notifications, memory management, persistence, introductions to core data -- in between.
For someone dedicated to working through the book, I found it takes about three weeks to get through all of the tutorials. The tutorials must be completed -- no skipping steps -- because the next chapter often builds upon the first. The text is clear and I found all the code samples in the book to be pretty bug-free. The concepts move pretty fast. Only a few paragraphs are spared for a new concept before jumping in feet first. Since I'm one of those people who "learn by doing" this worked for me. After typing in the tutorials by the end of the book I was comfortable with the Objective C MVC models, I understood how connections and bindings worked, and I could see how to extend my own controllers with new messages to make new event-driven models. I was surprised how many applications fall into CRUD models (create/read/update/delete) but also pleasantly surprised how easy it is to work with Core Data to make data-driven applications.
I only have really two issues with the book. The first is mechanical: the text applies to XCode 3. XCode 4 was a major revision to the GUI interface of the iDE so many of the hot keys and screen shots no longer apply. This was incredibly confusing for the first few chapters until I learned where everything was. The second is finishing the book leaves me with a "what now?" feeling. There's a few days of failing while ideas about projects coalesce.
I would and do recommend this book to seasoned adventurers who are looking for a brave new world to conquer. Objective C, once one gets past the mildly bizarre Simula-based syntax, isn't that bad and there's lots of cool things to build. "Cocoa Programming" is a pretty strong place to start to get oriented and get going causing app-based havoc.
Sometimes ya just have to go back to basics… after a year of forcing myself to understand (and, to a fairly strong extent, actually understanding) Objective C on the Mac, I decided to re-read one of the first books I worked through to see how much of it makes sense. This is a pretty novel, story-like walkthrough the Cocoa framework on the Mac that also covers many of the fundamental basics of Obj-C, object-everything and MVC in an Apple context. It all makes sense now and this book was a big help many times over.
The tone of presentation is good, but the book could benefit from new examples rather than revisiting the same "Hello, World" example from different angles for many chapters in a row. I see how it's instructive to tease out new complexities from the same scenario, but by the last chapter I could barely stay awake.
I've read a numbers of books on Cocoa and this one really stands out in how it successfully walks you through the difficult aspects of the Cocoa platform and brings you up to speed with its idiosyncracies.