Preface to the Second Edition
I once studied with a wise mathematician named Soo Bong Chae.
Dr. Chae had written a few really good books, and one day he told
me his secret: "After I write a book, I put it away for two years.
After avoiding the book for two years, I read it and rewrite the
parts that need work. Then I publish it." The idea was a good one:
By ignoring the book for two years, he could revise it with fresh
eyes.
But that's not what happened in my case.
It has, indeed, been two years since I wrote the first edition
of Cocoa(R) Programming for Mac(R) OS X. In that time, however, I
have taught 20 classes using the book as a text. Overall, the first
edition was a good book, but it was far from perfect. Where the
book was weak, I have suffered. It was with great relish I
eliminated these sore spots from this edition.
During these two years, Apple has continued innovating upon the
strong base that Mac OS X created. Hundreds of tiny improvements
were made, and two large changes occurred: Project Builder was
replaced by Xcode, and Cocoa bindings were added to Cocoa.
Throughout this book, you will use Xcode, and Cocoa bindings are
covered in Chapter 6.
Also, during these years, I continued my work as a programmer.
As my clients asked for certain features to be added to their
products, I came to realize that several topics needed to be
addressed in a new edition the book. Besides many new "For the More
Curious" sections, the second edition has five entirely new
chapters:
- Chapter 7 describes how to add undo capabilities to an
application using NSUndoManager.
- Chapter 28 demonstrates how to make an application
AppleScriptable.
- Chapter 29 shows how you can use OpenGL calls within a Cocoa
application.
- Chapter 30 gives the necessary steps to create a reusable
framework.
- Chapter 31 will get you started creating Cocoa applications on
Linux using GNUstep.
The final improvement is a physical one: The second edition has
a layflat binding so that it can sit at your elbow as you work
through the book. Although a subtle change, I think it will make
your experience with the book and its ideas a little bit more
pleasant.
I don't get to ignore this book after it has been published-the
quality of the book has a direct influence on the quality of the
courses I teach. Is it a good book? Let me put it this way: I am
looking forward to going through it with my students a dozen times
this year. I guess that says something.
Preface to the First Edition
Cocoa is a powerful collection of tools and libraries that
enable developers to write applications for Mac OS X. iPhoto,
iChat, iCal, iSync and Safari were all written using Cocoa. Why
Cocoa? Because it allows programmers to develop fullfeatured
applications faster than ever before.
The increased speed does not, however, come for free. The new
technologies have a steep learning curve. This book will guide you
through the ideas and techniques that separate the great Cocoa
programmers from the wannabe's.
This book is written for programmers who already know some C
programming and something about objects. The reader is not expected
to have any experience with Mac programming. It is a handson book
and assumes that the reader has access to Mac OS X and the
developer tools. The developer tools are free. If you bought a
shrinkwrapped copy of Mac OS X, the developer tools CD was in the
box. The tools can also be downloaded from the Apple Developer
Connection Web site (http://connect.apple.com/).
-Aaron Hillegass
0321213149P04152004