Advanced Search
Start Your Free Trial

Overview

This is the Safari online edition of the printed book.

“Next time some kid shows up at my door asking for a code review, this is the book that I am going to throw at him.”

–Aaron Hillegass, founder of Big Nerd Ranch, Inc., and author of Cocoa Programming for Mac OS X

Unlocking the Secrets of Cocoa and Its Object-Oriented Frameworks

Mac and iPhone developers are often overwhelmed by the breadth and sophistication of the Cocoa frameworks. Although Cocoa is indeed huge, once you understand the object-oriented patterns it uses, you’ll find it remarkably elegant, consistent, and simple.

Cocoa Design Patterns begins with the mother of all patterns: the Model-View-Controller (MVC) pattern, which is central to all Mac and iPhone development. Encouraged, and in some cases enforced by Apple’s tools, it’s important to have a firm grasp of MVC right from the start.

The book’s midsection is a catalog of the essential design patterns you’ll encounter in Cocoa, including

  • Fundamental patterns, such as enumerators, accessors, and two-stage creation

  • Patterns that empower, such as singleton, delegates, and the responder chain

  • Patterns that hide complexity, including bundles, class clusters, proxies and forwarding, and controllers

And that’s not all of them! Cocoa Design Patterns painstakingly isolates 28 design patterns, accompanied with real-world examples and sample code you can apply to your applications today. The book wraps up with coverage of Core Data models, AppKit views, and a chapter on Bindings and Controllers.

Cocoa Design Patterns clearly defines the problems each pattern solves with a foundation in Objective-C and the Cocoa frameworks and can be used by any Mac or iPhone developer.

Amazon.com® Reader Reviews (Ranked by Helpfulness)

Average Amazon.com® Rating: 4.5 out of 5 rating Based on 6 Ratings

Finally a central repository of Cocoa Patterns - 2009-09-30
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
This book is a handy pattern reference. Now there are many pattern books out there, be it authored by GOF, Fowler and so on, but this one focuses on patterns from a Cocoa Objective-C perspective. That's a big plus, since certain patterns use language idioms and trying to "translate" these idioms from one language to another is often tricky.

Develops a good foundational understanding - 2009-10-26
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
This book is not for beginners to Cocoa. I would only recommend it folks that have a reasonable amount of experience with Cocoa / Objective-C. Don't take this the wrong way; I'm only defining the target audience. This book details the patterns at work in Cocoa's architecture. While this text may confuse those new to Obj-C or Cocoa, it provides valuable insight into Cocoa usage patterns.

Cocoa Design Patterns explains techniques commonly used throughout the Cocoa architecture (Model-View-Controller, Release/Retain Counting, Delegates, etc.), and provides concrete implementation examples in the frameworks. For each pattern it also describes the scenario that you may use it in, and the consequences, good and bad, to using the pattern. I would recommend this book to anyone after they've cut their teeth on Cocoa, after writing their first couple simple applications. This book shines light on some of the design decisions Apple made with Cocoa, and helps the reader understand how to best leverage the patterns utilized in the Cocoa frameworks.

Unlocking Cocoa Programming - 2009-10-29
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
This superb book has finally unlocked Cocoa programming! Let me explain.

In most subjects we learn by acquiring a little bit of knowledge and, once that bit has been understood, we move on to the next little bit, until the bigger topic is understood. First we learn A then we learn B. Unfortunately, this method of learning does not work well with application frameworks such as Cocoa. These frameworks usually consist of a number of complex idea that are strongly interrelated. You cannot learn A then B, since A requires B and B requires A. Instead you must learn topics A..Z all at the same time! Cocoa is especially difficult for most programmers since it is based on using Objective C, and Objective C is based on Smalltalk. Smalltalk is an extremely dynamic language whose principles are significantly different than those of current popular languages. Thus, most programmers must learn zilllions of elements of the Cocoa framework and also the unusual ideas behind Objective C (Smalltalk). These are essential since Cocoa works differently than other popular frameworks and cannot be understood without understanding Objective C's dynamic approach to programming.

Up until now we have had Objective C books which help learning Objective C, and the excellent Hillegass book (Cocoa Programming for Mac OS X) which is a tutorial on Cocoa. The Hillegass book does help the reader understand many principals behind Cocoa, but it stops short of giving in depth knowledge of the design patterns that Cocoa uses. Thus when the user tries to go beyond the Hillegass book he/she is frustrated because they were not taught the full idea behind each element of Cocoa and their connections to other elements. There is not enough information for the reader to branch out to develop their own programs.

Cocoa Design Patters, on the other hand, presents, in a very professional manner, the most important Cocoa patterns, in depth, and how they are all inter-related. Furthermore, it presents details how how to use the patterns, examples of where they are used in Cocoa, and includes extremely valuable and unbiased information on the pro's and con's and pitfalls of using each pattern. Although this is certainly not tutorial/beginner information, the book is extremely well written and enjoyable to read (especially for those of us who loved Smalltalk and other dynamic languages). It is one of the best written highly technical books I have ever read (and I have been programming since 1970).

In my opinion this book will save the prospective Cocoa programmer many, many, many hours of frustration. I only wish it had been available several years ago when I first tried to learn Cocoa (I did not succeed then, but I am succeeding now).

One final note. The authors could do the Mac Developer Community, and the wider developer community, an enormous favor. In this book they demonstrate an impressive depth of knowledge about Cocoa, Objective C, the Mac development world, and the XCode tools. It would be fabulous if they were to develop a professional unbiased critique and comparison of the pro's and con's of the Objective-C/Cocoa approach to development with other framework/development environments (e.g. Microsoft's). I think this is especially important since the dynamic language approach to programming has fallen out of favor, yet I think it has many benefits that are seriously under appreciated. This document would:
Clearly show programmers the benefits of the dynamic language / Cocoa approach to programming. Perhaps it would reawaken interest in dynamic languages!
Point out the areas where Objective C/Cocoa/XCode has weakness and should be improved. This may inspire Apple to improve their development tools at a brisker pace.
The development world has had few breakthrough improvements over the last decade or two. I think that much can be learned from Cocoa/Objective C, and I hope That Cocoa Design Patters is just the beginning of a renewal of interest in this too-long-neglected approach to software development.

Should be on every Cocoa developer's desk - 2009-10-31
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
This book, together with Cocoa Programming, which was written by these two authors together with Scott Anguish, are excellent ways to save yourself many months of trial and error in becoming a proficient Cocoa/Objective-C developer.

Best Deep Technical MAC Book - 2009-10-21
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
One of the best books on MAC OS X. If you are a beginner or an Avid MAC developer you need a copy of this book for your library. Excellent book.

Browse Similar Topics

Top Level Categories:
Programming

Sub-Categories:
Programming > Cocoa

Some information on this page was provided using data from Amazon.com®. View at Amazon >


About Safari Books Online • Terms of Service • Privacy Policy • Contact Us • Corporate Licenses • Help • Accessibility | See us on FacebookSee us on Linked InSee us on TwitterRSS

Copyright 2009 Safari Books Online. All rights reserved.