Cocoa(R) Programming for Mac(R) OS X (2nd Edition)
Aaron Hillegass


Compras Nikon
Bluetooth
There's a reason that a large slice of the open-source movement has defected from running Linux on its laptops to running Mac OS X. The reason is the Unix core that underlies Mac OS X, and the development tools that run on that core. Cocoa makes it easy to create very slick Mac OS X interfaces for software (as well as to create applications in a hurry), and this new edition of Cocoa Programming for Mac OS X does an excellent job of teaching its readers how to put a Cocoa face on top of code (Objective-C code almost exclusively). If you know something about C and/or C++ programming and want to apply your skills to the Mac, this is precisely the book you want.

Author Aaron Hillegass teaches a Cocoa class, and his book reads like a demonstration-driven lecture in a computer lab. That is, the book takes a heavily example-centric approach to its subject, beginning with simple announcement windows and proceeding to cover the more advanced controls and object-oriented features of Cocoa and Objective-C. Throughout, he hops back and forth between descriptions of the goal to be accomplished, listings of the code that does the job, and instructions on how to use the Mac OS X development tools to speed the development process. --David Wall

Topics covered: How to write software for Mac OS X in Objective-C and, especially, with Cocoa. The new edition shows how to use NSUndoManager, add AppleScript capability to an application, do graphics work with OpenGL, and use Cocoa under Linux using GNUstep. As well, all the basic controls and design patterns are covered.


1 Perfect
This was the book I needed, but never knew about. It took a trip all the way to WWDC to find out how great this author is. If you're starting to get serious about Cocoa programming and have a background in computer science or programming, get this book. Aaron knows his stuff and you will get there with his help. I tried a few O'Reilly guides on Cocoa and Objective C, they were useful, but this book helped me get through some issues and figure out this beautiful language. Things made sense, there were a few sections in the book I re-read over and over at 3am until it stuck in my head, but it worked.

I am not disappointed and the book had a lot of hype to live up to. Sorry for not being more specific, but I think you can download a chapter for free online and read more for yourself to make sure this style will work for you.
2 Need more like this
Well done. We need more like this. There are so many resources for windows products but so few quality ones for MAC. This is a very useful resource for anyone wishing to program for a man or to simply understand mac more.

http://poetryring.com/


3 First Edition Most Excellent
The first edition of _Cocoa Programming for Mac OS X_ was pretty damn good. Hillegass knows what he's talking about, and the coding samples are pertinent for developing all aspects of Macintosh Cocoa applications. Highly recommended - if you buy one book for Mac OS X programming, this should be it.
4 Well done step by step tutorial
This book falls somewhere inbetween Beginner and Intermediate. It's a beginners book in that it assumes no background in Cocoa or Objective-C. It's kind of intermediate in that having at least programming experience in some language will be of great help.

The book does not start with a lot of philosophy, instead it goes through a step-by-step process to wrtie the first application. This is done with some good explanations and a lot of screen shots.

The author is a teacher of Cocoa, and he wrote this book to use in his classes. After writing the firt edition he used it for a couple of years, enough to understand where the problems might lie. Now he's done a second edition based on what he learned in teaching the first book, and the changes that Apple has made in the software.

This book is tutorial, not a reference book. It leads you through the process step by step. Then there is a fairly extensive index so that you can look up points later. Highly Recommended.
5 Tough start without prior programming knowledge-
After a quick scan of the work i was about to undertake, i sat with this book in a local bookstore and here's why i bought it. I was looking for a challenge and a new language, plus i had a PowerBook on the way, thus; i bought the book. An absolute beginners introduction to Objective-C this is not, and you would be surprised the amount of knowledge thrown at you in a hasty fashion during chapters 2-4. Though don't confuse this comment: The author verses and reverses in quite a moderate fashion. The material is well planned, and the second edition is well thought out.
Personally, i was grateful that i knew a good bit about programming prior to reading this, bcuz he jumps right in to the good stuff! The code is well layed out, but will do a re-read once i'm through. I feel what i know about Java is quite sufficient and polished,similar for C++, yet the latter was sluggish as i tried to make the connections between the languages. Dominantly, Objective-C is C driven, with the OOP of C++; yet all in it's own syntax and semantics. I learned fast that Cocoa is mostly written using Objective-C.

Bottom Line:
Buy this book if you feel really cozy with OOP in C++ or Java it will be very beneficial, and another IDE (Author lightly covers the readers IDE Usage requests), but the images/figures do well to fill in the gaps. Buy this if u match the above, or want quite an intelligence challenge! Also, the Syntax isn't sluggish, the author keeps the flow as a truly good teacher should. I have no other complaints other than the steep introductory learning curve. I already know 6 languages, two of which really well; i was a bit humbled at the start but pulled thru by chapter 5 thanks to a decent flow of examples. Thanks to this book, i will also be able to easily port alot of these programs into Linux (my favourite O.S.) using GnuSTEP. Preview this in a local bookstore (especially Chapter 2 and beginning of 3) if you can before u buy it.

- hope all this helps
6 Step by step introduction to OS X development in Cocoa
This is a well written overview of start-to-finish application development in Cocoa. It's primarily focused on use of the interface builder and how that maps to the back-end Objective-C objects. The text is light and easy to read, and screenshots are used effectively. There are also some diagrams to demonstrate the relationships between objects at runtime.

I appreciated the walkthrough, but I would have preferred a reference section that provided an overview of the Cocoa APIs. That would make it valuable after you have gone through the walkthrough.
7 Great book
ransom22's review pretty much says it all. I've since supplemented this book with some of the O'Reilly books, and I'm awaiting delivery of Scott Anguish's "Cocoa Programming", but this is an excellent book with which to start the journey into Cocoa.
8 I Love This Book
When I first learned C (ten years ago) I learned from a book (which no longer published). In a year's time that book was dog-eared and ragged I referenced it so much. While I just received Cocoa Programming for Mac OS X (2nd Edition) last week, I think my copy will suffer a similar fate.

This book is well-written, clean and lean. The approach to the subject is right on subject without a lot of fluff. If you want to learn Cocoa, this is the book.


9 2nd edition is even better than 1st!
Just because one is an expert at a given subject does not mean they make the best person to teach it. Aaron Hillegass is in a group of those few rare individuals who knows the subject and can help the reader to better understand it. His book is a well written and thought out tutorial that has been tested and refined by actual teaching conditions. If you haven't had the pleasure of attending Big Nerd Ranch then this is the next best thing. Don't think about it...just buy the book!
10 A gentle introduction, somewhat out of date
Probably the most popular book on Cocoa programming. A somewhat more gentle (but less in-depth) introduction than "Cocoa Programming" by Scott Anguish et al. More of a tutorial and guide than a reference work. Published in 2001, it is probably starting to fall out of date a bit, but most of the changes in OS X 10.2 and 10.3 versus 10.1 will not affect the typical beginner much. It sounds like the next edition, out soon, will update it well; it might be worth waiting for that.
11 Yes, I'm reviewing the 2nd edition
I had the pleasure to attend the April 2004 Cocoa programming class at the Big Nerd Ranch. We used a looseleaf version of the final proofs of the 2nd edition of "Cocoa Programming for Mac OS X". Short summary: Excellent.

I have the first edition of the book, so let me summarize some changes:

The book uses Xcode. Cocoa bindings are covered, including key value coding and key value observing. The document architecture is introduced early, and this is coupled to an early discussion of implementing undo. Topics are developed logically and incrementally. The discussion on Java has been dropped, while class notes on OpenGL have been moved into the book.

An early example has been simplified to flatten out the learning curve in the first part of the book. Code examples that are developed in stages now show the new lines of code in BOLD, a vast improvement when you're typing it in.

This book has been refined systematically based on feedback from real students at the BNR classes. This attention to detail really shows.

I recommend the book very highly. My only suggestion would be to use Apples "Objective C Programming Lanaguage" or "Programming in Objective C" (Steve Kochan) as an adjunct to this book if you need a slower introduciton to Objective C.


12 2nd Edition due out in April 2004 (ignore rating)
I was sooo close to buying this book, and then found out a new edition is due out this month. Looks like I'll need to wait a week or two to get my copy. My guess is that, in addition to other changes, the book will use Xcode instead of Project Builder in the examples.
13 Excellent introductory tutorial
I've never had the privilege of attending Aaron's highly-regarded 'Big Nerd Ranch' training program, but I have to believe that working through this book is the next best thing. The book is presented in tutorial form, with a nice flow between examples, discussion and exercises.

The author doesn't hesitate to share his opinions, good or bad--particularly on subjects like Cocoa Java. The result is a frank, incisive introduction to Cocoa programming that helps beginners understand 'the right way' to do things, and will make Apple's object-oriented environment accessible to people with a wide variety of skill levels.


14 Your Cocoa Must Buy.
This is an excellent book. I looked at some of the others and bought these too. Most are very good; but this IS the definitive guide.

It gets you writing Cocoa straight away, so you do it, it gets explained, and reinforced. I like this approach.

It also emphasizes the need to have a good grip on Objective-C, which I think is vital. It provides a good introduction to Objective-C, Obeject Oriented Programming and Cocoa.

I liked the book so much that I now buy any book by this author.


15 Better than the O'Reilly Cocoa books
After tediously working through two O'Reilly books on Cocoa programming, I bought this book based on review recommendations. I was confused through both O'Reilly books, but Hillegass finally made sense. This book is solid, and made me feel like I was accomplishing learning throughout the book. Hillegass uses great analogies, informative history tidbits, and well thought out examples. Additionally, he puts in programming challenges at the end of many chapters that give the student a new goal to use information learned in the chapter. In short, Hillegass is a great TEACHER, a qualification often lacking in other programming books.
16 this book is pretty good, but...
here's what i discovered while i was trying to learn Cocoa: this book, by itself, was not sufficient for me to really "get off the ground" with Cocoa. Now, don't get me wrong, this really is a good book and, in most areas, Mr. Hillegass explains the material quite well. my problem was that after i had worked --perhaps struggled would be a better description -- through the first 4 chapters of the book i was still left feeling somewhat confused about how to go about writing a Cocoa progam. for some reason things just weren't "clicking" as well as i thought they should be.

not being the quitting type, i began to search for other books on Cocoa programming. i purchased the O'Reilly book "Learning Cocoa With Objective-C", second edition. after reading a few chapters in the O'Reilly book, then going back and re-reading the material in Mr. Hillegass' book, things began to click. since that time, the approach has proven the most useful for me is to read the O'Reilly book until i get stuck on a particular topic, then cross-reference with Mr. Hillegass' book in order to get a different perspective/explanation. in addition, working through *all* of the examples in both books has proven tremendously helpful. if i had my way, i'd combine the material from both books into a single book. :)

in summary, if you buy this book and find that you are having trouble grasping the concepts, try purchasing the "Learning Cocoa with Objective-C" -- make sure to get the 2nd edition -- and see if getting a different perspective/explanation works for you.


17 Excellent tutorial introduction to Cocoa.
This book is an excellent introduction to Cocoa. It is basically what "Learning Cocoa" should have been. It is clearly not the only Cocoa book that you will want, but it will get you to the point that you can read and use other sources. The examples are well chosen and build up incrementally, so you can clearly see that code that is associated with new features as you add them. The book does get to full-up applications, but only simple ones. In this sense, I think this book joins nicely with "Cocoa Programming" or "Building Cocoa Applications". This book does the introductory and tutorial build up better than the other books, I think, although in less detail, and then you can go on to more elaborate applications elsewhere.

The book presumes knowledge of C and the rudiments of object-oriented programming. You can get this as go, from Apple's "The Objective C Programming Language" but you'll need to go slower and be prepared for some puzzles along the way. Also, you really need only minimal knowledge of C, mainly understanding of pointers, to work through the examples in the book.

There are a few weaknesses in the book. The description of the tools, Interface Builder and Project Builder, is sparse, and the book is now a bit out of date with the current incarnation of the tools that Apple is actually shipping. The differences are minor, but can sometimes be perplexing for beginners. Also, the tools (IB in particular) can be set up in various window "modes" that totally change the layout of parts of the tool. This isn't mentioned here, or in any other Cocoa book I've seen.

These however, are minor quibbles in an excellent introduction to Cocoa programming. I highly recommend this book to anyone who wants to start programming under Mac OS X.


18 Excellent Introduction
Cocoa Programming for Mac OS X is a GREAT way to learn the basics of programming Mac OS X! I've been a Mac user since 1988, but have always been terrified of programming it. Instead I'd gone the evil route and programmed Delphi for Windows. NO MORE. I'm excited about programming my Macs!

THE BAD
The title is probably a misnomer, which is causing a lot of the negative feedback here. "Complete Introduction to the Power Of Cocoa" would have been more appropriate. This book isn't any type of reference book. Nor is it a text on programming philosophy. Nor is it a "Learn Objective-C" manual. And it's not a comprehensive "learn everything about Cocoa" book. My positive remarks about these perceived liabilities are in "THE GOOD" paragraphs below.

There ARE some typos in the book, but no real errors in the code that I've discovered. In many chapters, you're adding to a program you've built from an earlier chapter. On two or three occasions, variable names in the "new" chapter are different from the "old" chapter. But when doing the build, it became quite obvious and wasn't really much of an impediment -- if you can't follow the program flow and detect the problem by time you reach these chapters, you probably rushed or shouldn't be programming! Still, though, it IS a legitimate "bug" in the book.

It's probaby useful that you know something about object-oriented programming. I don't mean knowing C or C++ or Objective-C -- just know a little about object-oriented concepts. Chances are, if you're a modern programmer, you already know enough to make this "bad" point meaningless. If you're a very advanced object-oriented programmer, you may want to FORGET some of what you know to appreciate the pure simplicity of the Objective-C/Cocoa object model!

THE GOOD
It's an in-depth introduction to programming Cocoa in Objective-C. It will get you excited. It will spark your imagination as you work through the example code. You will want to learn Cocoa and forget everything else.

If you know programming in general, you probably DON'T need to know C or C++ or even Objective-C prior to working with this book. I came to it with an Object Pascal background with no working knowledge of C. If you can THINK then you can pick up Objective-C as you work through the book. It's REALLY very simple, even in comparison to Object Pascal.

The book is very well supported on the website. There's even a page-search function with errata and user-feedback in case you get in trouble. I've used it for help with a couple of the chapter "challenges."

RECOMMENDATIIONS
Buy this book, and work through it, and try the challenges. You'll often HAVE TO work through the Cocoa documentation to do the challenges, but this is good because you'll need to learn how to use the documentation to do any serious work.

When you're done with the book, you'll be confident and thrilled, and be ready to buy a true reference book (which I'm just getting ready to do!).


19 Getting started in Cocoa
First, I have to say I loved this book, I actually read half of it on a trip, not being in front of my computer, and still enjoyed the clear style and the gradual addition of new concepts and tools, chapter after chapter. Then I could hardly wait to be back home and start doing it for real.

Now for the potential buyer.

WHAT IT IS NOT: a reference book (no list of classes etc...) or a technical book for advanced programming; a book about Java or Carbon; an introduction to object-oriented programming; an introduction to C.

WHAT IT IS: an excellent introduction to programming in Objective C in the Cocoa environment of Max OS X, provided you know enough about
object-oriented programming (some basic understanding of C++ is preferable too).

WHAT YOU LEARN: Objective-C in Cocoa; using Apple Developer Tools; building an application in Mac OS X; how to make optimal use of Cocoa classes and API, knowing how they were conceived and meant to be used; a number of basic concepts and tips that really get you started.

THE PLUS that make this book so interesting: very good and clear writing; some amusing brief 'historical' insights; you really feel the author knows what he is talking about; the author gives personal views (clearly stated as advices, not rules); follow-up, errata, examples, comments, and more on his web site; still completely useable with OS X.2 (a couple or very minor changes that are listed on the web site anyway), so that's the good time to buy it (price is down, but content is still up to date).

Final comment: Objective C in Max OS X is very powerful and enjoyable.


20 A valuable addition to your programming bookshelf
An essential book if you are serious about programming on OS X. If you already possess a background in Objective-C and wish to demystify Cocoa, this book is for you.

The author's style and delivery are very clear and the explanations and examples are well thought out. Hillegass' experience as a teacher shows in this book and it is obvious he has tested and refined this text in a real classroom situation.

I'm looking forward to an Advanced Cocoa Programming for OS X book in the near future.


21 The most illuminating book on Cocoa
I already understood object-oriented programming and was eager to learn about Cocoa. I read this book and the O'Reilly books. "Cocoa Programming for Mac OS X" was clearly the best. Judging from the Cocoa mailing lists, everyone seems to agree that this is the best place to start with Cocoa programming.

I was worried that it might not be ready for Mac OS 10.2. A few of the screenshot are clearly dated, but overall the book is completely 10.2-compatible. Also, there was extra information at the Big Nerd Ranch website to ensure that I had no problems using the book with Mac OS 10.2.

I like the clear, readable style, and I thought the material covered was truly useful. I actually emailed the author, and I found him quite pleasant and helpful. I hope he writes an advanced book.


22 The one to get
Absolutely great programming book for learning Cocoa. In my opinion, this book is much better than the one written by Apple. The examples are easy to follow; the text is well written and entertaining in places; the figures and illustrations are clear and add to the text; the general layout and formating is attractive; the supporting web site includes errata. All in all, Apple should give Hillegass an award or something for his contributions to the Cocoa cause. I hope he follows up with "Advanced Cocoa Programming".
23 Skimps on details
If I could I would have given this book zero stars, but at least the publisher used recycled paper. The author briefly covers Objective-C, but doesn't delve very well into the differences between Objective-C and C/C++, Java or for that matter SmallTalk (on whose syntax Objective-C is based). That is my biggest gripe. Objective-C is C in name only. There was no discussion of the pitfalls of Objective-C. I had to dig on the net to find out you can't create Objective-C objects on the stack. I would be reading the book and be thinking about how I would solve a particular problem in a different language, and there would be no discussion along those lines. You can program in Java to create a Cocoa app, and Apple provides its tutorial to get a programmer going, but the author actually tries to dissuage his readers from using Java. It doesn't even serve as any sort of proper Cocoa API reference. I guess I'll just stick with Apple's documentation.
24 Fabulous for anyone with less-than-recent experience
I came into this book from the standpoint of a long time ago having done some degree of programming in Java and a larger degree in C and other languages, carrying a basic understanding of object oriented programming, never having done Mac development. I'm 1/3 through this book and am finding it just about perfect. From little things like a quick reminder of what @ means in C (yes, it has been a while), to very good work-through examples and effective textbook-style 'challenges' at the end of each chapter. This book is far superior to 'Learning Cocoa'. Buy it.
25 Outstanding introductory text
I have been through, in detail, the three Cocoa programming books that I know to be available currently. This text, by far, offers the most elegant and usable approach to Cocoa development of the three.

I particularly like that the focus remains on Cocoa. The other texts focus too much on ancillary topics, better addressed in other sources, e.g., object-oriented programming, and the Apple Developer tools.

Mr. Hillegass also provides clear and concise explanations, that proceed logically, but without hindering the reader wishing to jump to specific topics. The written explanations and source code are supported with object diagrams, providing a clear representation of the object models under discussion.

Unlike many examples in the other two texts, the writing style allows one to feel almost a part of the design process. The end-of-chapter exercises push you to experiment with the ideas presented, while still providing enough guidance to keep the level of frustration low.

I sincerely hope that the author publishes a follow-up to this book addressing intermediate and advanced topics in Cocoa programming.


26 A Touch of Frustration
In trying to use Interface Builder (as it came with MacOS 10.0) to follow-through some of the book's early examples, the Interface Builder did not behave the way the book describes. I abandoned the project created by my first attempt and started a second one - being very careful to do exactly as the book says. IB's responses still were not as the book describes. Made me wonder whether the book was describing a beta version of IB. I found the O'Reilly book "Learning Cocoa" more accurate in this respect.

Must give it another try, one of these days. I'll update this review if I figure out what I must have missed the first two times around the block.


27 A really good investment...
This is a great book. The Author mixes good tutorial manners with humor and intuitive, bug-free examples. A great guide to Cocoa and Objective-C programming. I've taken several programming courses and I've read a few programming books. This is by far the best book for learning a programming language that I've ever read...
28 Eclipses the O'Reilly Books
This book is the essential book for learning Cocoa. While it doesn't cover Objective-C in detail, the small chapter that does cover it shines light on key aspects of the language that is just too hard to pick up from Apple's online documentation or the O'Reilly Cocoa books. Also, this book demystifies Project Builer and Interface builder. This allows the reader to absorb the Cocoa APIs and patterns without wondering how the tools work or what the icons mean. This book doesn't cover advanced topics such as threading or advanced graphics, but it is essential to get started in Cocoa programming. I can only hope that the author publishes a second volume on more advances techniques and perhaps even a WebObjects book.
29 Best of the Cocoa books
I have purchased and read all of the books on Cocoa that are currently on the market and consider this the best. Aaron's background with Next and Apple is evident as he guides the reader through a well thought series of explanations and examples that build throughout the book. After reading the book I signed up and took Aaron's course on Cocoa at the Big Nerd ranch which is also highly recommended. The coding and teaching style of the book is more object oriented and cleaner than some of the examples in other Cocoa books that I have read. This book will allow someone with basic programming skills to come up to speed on one of the most significant programming environments that is available. Buy the book and then take the class!
30 A Fantastic, Must-Get book
If you're wanting to ramp up quickly on Apple's OS X Cocoa technology, Hillegass' book should be the first one you get. It starts off assuming you know nothing about Cocoa and Objective-C, and ends up introducing and exploring all of the concepts you'll need to know when writing Real Applications. How to manage documents. Saving and loading your user's data. Managing preferences. Drawing on the Screen. Printing. Lots and lots of good stuff.

The pacing of the book is fantastic. The chapters aren't too short, and aren't too long. Many end with "Challenges", like little homework problems which encourage the reader to explore in more depth the topics desribed in the chapter.

In short, get this book.


31 OK, but not great.
I was expecting to get a lot more out of this book then I did due to the author's background at NeXT. I found it to read very easily and explain things clearly but not things that I really wanted to know. This book should of been the first 3 chapters of a cocoa book in my opinon, and about 150 pages shorter. The author went overly into basic details, and did not provide enough tech details. Well I guess that's what I get for not buying oreilly though.
32 A good book to learn from
This is /the/ book from which to learn Cocoa programming. The author writes in a clear, friendly, and engaging style. There is a minimum of typographical errors. The end-of-chapter challenges are challenging, but not so much so as to be discouraging. The book really keeps you going, and you feel more confident and capable as a Cocoa programmer as you progress. And once you've finished this book (and, preferably, the Objective-C Programming book from Apple available on the vervante.com website), you'll be ready to write non-trivial Cocoa programs on your own.

From there, you'll be able to learn more by reading the documentation Apple includes with the free developer tools, by searching Apple's cocoa-dev mailing list archives, and by visiting the various Cocoa-oriented websites. Unfortunately, at the time of this writing there are no other worthwhile Cocoa books.

On the other hand, this book is great. The only nit I can pick with it is the way the last several chapters seem to have been hurriedly written (or edited poorly), as they have little or no detail given in some cases. But, overall, the book is well worth the time and money.


33 A must-have book
If you're serious about programming on Mac OS X and have at least some experience under your belt already, then you really owe it to yourself to get two books:
(*)"Building Cocoa Applications: A Step by Step Guide."
(*)"Cocoa Programming for Mac OS X"

I started tinkering with Mac OS X a few years ago by reading a hodge-podge of incomplete Apple docs, sites like Stepwise, and archives of Omni-Group lists. These sources are great for reference, but it can be difficult to get answers you need unless you already have enough experience to know what questions to ask. Tough luck, newbie. O'Reilly's "Learning Cocoa" felt like an extension of Apple's docs - minimal on concepts and not entirely clear on some of the objectives of the examples. It's difficult to get an bigger-picture view of some of the capabilities offered by Cocoa and how you _could_ be doing development without a good explanation of concepts, clearly written example exercises that follow a sequence of topics, and additional information on how to make the best use of the Apple-provided developer tools.

The authors of both books take great pains to explain concepts to you in basic terms and then reinforce them with very well designed examples that really make you think. They then approach component problems from varying angles in order to help you understand the different options you have for tackling them. The chapter summaries and additional follow-up exercises were a very nice touch. Best of all is the idea that these books are not teaching you how to use particular classes in a restricted situation - they're teaching you how to understand _solutions_ in terms of Cocoa and then equip you with the skills required to plan your entire development approach and execute your project. The pointers on where to find additional documentation and some very, very cool tricks on how to use the development environment really made these books worthwhile.

I now feel more comfortable with Cocoa and more confident in my abilities to program on Mac OS X. Thanks, guys. :)


34 Fine training for intermediate or advanced programmers
This book really is one of the best technical training books I've seen. The development is logical and clear. The detail level is good for anyone with a bit of basic C/Objective-C/C++/Java experience.

At the same time, while by no means a complete reference manual (those are on-line anyway, bundled with the developer tools), the book is very usable for the more-experienced developer. I've been programming professionally in C/C++/Java for 15 years or so, and found myself leaping ahead to advanced chapters (for example, to add a "sheet" to my growing app). This worked very well, and it's unusual for one book to work both for novice and expert, both sequentially and by random access.

The style is personal and personable. Possibly just a shade too much so: the principal flaw of the book is that Mr. Hillegass is still a bit caught up in some "object oriented" turf wars of a decade or so ago. If you want to learn to do object-oriented programming, or even what it is, this is quite the wrong place to go. And the worst of that problem is that the presentation seems to claim to be "OO" without either mentioning or demonstrating the modularity and suitability of design that are the actual roots of "OO".


35 Outstanding teacher, writer
Aaron Hillegass is clearly an experienced, skillful teacher, and has used his many years of teaching real students to shape the outline and content of his book. Good writing from a great teacher.

As others have pointed out, this is not a comprehensive, soup-to-nuts reference for Cocoa programming, but a book that will take you from complete beginner to solid intermediate Cocoa / Objective-C programmer. It will *teach* you Cocoa.

You do need to have C programming experience, and some modest exposure to object-oriented programming, but you don't need to be a Mac or Next (or Java or C++) expert to get a whole lot out of this book.

Like others, I am eagerly awaiting further books by this author, and will buy them in a heartbeat.


36 An excellent first book
Comparing this (Hillegass's book) to ADC's "Learning Cocoa" which was the first book out: This book is far easier to follow, in that it's written at the level a programmer needs; giving enough of an overview of what it's doing that you can better understand every detail/aspect of the code it shows you. Clearly, Hillegass has taught many programmers, rather than being a system engineer who's never taught anyone. (Unlike ADC's book, which makes you run through examples but scarcely explains what it's doing, leaving you to infer the logic behind everything -- and sometimes is quite ambiguous.)
--- ... You should be aware, that Hillegass's book is not a comprehensive book about *all* of Cocoa. It focuses on the big, obvious aspects of Cocoa, the really neat stuff Cocoa has to offer, but if you're looking up, say, specifics of how drawing takes place, you won't really get a full overview. No book yet does that, to my satisfaction. (Cocoa is quite big, and no single volume can cover it all.)
Between ADC's Learning Cocoa, and Hillegass's book, I use Hillegass's book as my primary source, the first place I look things up, and 80% of the time it's superior to ADC's book.
37 Not Perfect, But Highly Recommended
This was the book I had been waiting for, or at least ONE OF the books I had been waiting for, to really get started with Cocoa programming. The O'Reilly book, as has been mentioned plenty of times here, leaves a lot to be desired, and while it was better than nothing, a wall still remained between me and Cocoa after finishing it.

After reading Cocoa Programming for OS X, I feel I can say I "get" Cocoa finally. That's not to say I'm an expert, but that I can complete a simple program now, on my own, using the Cocoa frameworks and concepts. As Aaron says in the book, learing the Cocoa APIs will take much longer. I come from a Java background, with only marginal C and C++ experience. Although Aaron does not speak much about the objective-c language itself, that's ok. Apple's PDF is more than adequate to get that background.

There are some things that get glossed over that I wish had been more fully explained, and some things left out altogether that I would have liked to see, such as:

-- Spawning and managing multiple threads, thread safety issues

-- exception handling, debugging and assertions

-- Cocoa "primitive" objects (NSPoint, NSRect, NSRange, etc.), why they apparently don't need to be retained or released, and why they are "NS" objects but don't really behave like them.

-- Calling Toolbox routines or those from APIs that have not yet been "Cocoa-ized" (and integrating the Old Way into the Cocoa Way), with examples. Cocoa is nice but once you get away from building a text editor, you will need to dig into this ugly and unfriendly world at some point (unfortunately). For instance, how do I access the Airport card, how do I open and use a network socket, how can I read a DV-encoded stream from a FireWirePort and save it to disk as a QuickTime movie, how do I access a database, how do I use an OpenGL view?

-- How to customize Cocoa UI elements. Like if I wanted an NSSlider with TWO sliders, a minimum and a maximum. There is an example of subclassing an NSView in the book, but that's just a drawing panel.

To be fair, I'm not really criticizing Aaron for these things. The book has plenty of useful stuff, and I'm sure Aaron wants to write and sell more books, so some advanced Cocoa books that address some of these things as well as others will be welcome...I hope someone is writing them right now. I also hope someone is writing a comprehensive Cocoa API reference, as Apple's is somewhat lacking (Have you seen the phrase "Description Forthcoming" more times than you care to remember? I thought so.)

The bottom line is that this is a great book that is a must-have for anyone interested in Cocoa programming. I'd probably rate it four or four-and-a-half stars, but I'm giving it five for being there when I needed it, and being the first really useful book on the subject. The best thing I can say about it is that I can now do things there is simply no way I could have before.


38 A programming book that neither condescends nor complicates
Hillegass' debut book is one of the best balanced programming texts I've read.

Many reviewers have complained that the book is either too difficult (I need to learn a programming language/Obj-C first) or far too difficult (Cocoa demos with out exceptions). The fact that the limited negative reviews show this prove that this book accomplishes what it sets out to do. Teach _Cocoa_ programming.

As other's have commented, I also have not let this book get far from my possession since buying it a month or so ago. I also proudly admit that I am now scheduling to take Hillegass' class at the BNR.

I came to this book from a limited but intense history of Cocoa experience (< 6 serious months; working on a Cocoa app from scratch for a major commercial package; having a copy of the O'Reilly book since WWDC in May 2001) To this point, I was limited to picking out code snippets from the O'Reilly book, the cocoa dev mailing lists, and the rather barren documentation supplied with the developer tools.

Where as these sources made me an 'acceptible' Cocoa programmer. Hillegass' text has allowed me to 'wrap my brain' around concepts that have not had strong documentation elsewhere. With a slow, steady, and progressive 'demo creation' approach, this text takes the reader through wirey Cocoa concepts like, "NSDocument", "FirstResponder", Event Modeling, View Subclassing, IB Palettes, Multiple Nib usage...

Hillegass' teaching style asks you to try something before explaining the details or theory. This method is often successful if the author can give supporting explanations. Hillegass usually does so within (as he comments in the first chapter), "...only a paragraph or two..."

The book is extraordinarily helpful and I would eagerly buy any other book that Hillegass releases on the topic.


39 Great intro, a few nits
First my background. I'm a very experienced C++ programmer who is also very experienced with Carbon.

I found this book to be a great intro to Cocoa without a lot of preaching about how Cocoa will change the world. Carbon vs. Cocoa seems to be an almost religous debate, and I'm glad this book didn't try to overpromise the benefits of Cocoa.

The book is well organized, very readable, and has good examples. It is *much* better than the O'Reilly "Learning Cocoa" book.

After reading this book, you'll be able to start writing applications in Cocoa, and you'll know where to go for more info.

Now, my nits:

* The book explicitly stated that it was for people with a C++ or java background, but I think there should have been more direct comparisions between C++/java and Objective C. For example, saying that class functions (the ones with +) are just like static functions in C++ would have helped.

* This may be an introductory book for people moving from other platforms to the Mac, but the UI for most of the applications violated Apple's UI guidelines in many ways. I think the book should have promoted following Apple's UI guidelines.

* There was no discussion of exceptions, and much of the code was not exception-safe and didn't do much error checking. There wasn't even the usual disclaimer about leaving that out for simplicity.

* I would have liked a quick overview at the end of some of the classes not discussed in the book with a couple of sentences about what they do. This would help to learn what's out there.

I hope to see more books on Cocoa by the author. There's still lots of room for books on more advanced Cocoa topics.


40 Aaron Hillegass is a great writer
Most serious tech types can't write and need to team up with a less technical writer. When this happens the meaning is often muddled. Aaron covers all the important topics in an easy to read style. This just might be the best book ever.
41 Same approach...better wording...
The primary problem with Aaron's excellent book is the same problem every Cocoa book thus far suffers from. You have to read at least three other books in order to fully grasp just what in God's name he's talking about.

While the book will work wonders for you if you have a mid-to-heavy foundation in either Objective-C or Java, it does little good for would be developers who are approaching the library from a zero entry point. To begin to even consider programming in Cocoa, you'll need to skip right over this book for now, and instead read through Apple's developers documentation, and then revisit this, and other Cocoa works, once you understand the foundations and theories behind object-oriented programming.

Aside from the above flaw, Aaron's book is the best available for Cocoa, although you will need to augment it with a few other books to have a real Cocoa reference library.

Aaron approaches you as though he were right there with you as you read the book, giving the text a personal, and less intimidating feel then O-Reilly's Learning Cocoa. He attacks each topic one by one, and attempts to get you to understand each topic thoroughly before you move on. Every chapter builds upon the previous, thus creating a flow that many Dev books lack.

All in all, a definite must for the mid-level developer approaching Cocoa, useless of a newbie, and probably equally useless for a seasoned pro.


42 Great book from a great teacher!
Incredibly comprehensive... absolutely all you need to learn Cocoa and start building OS X applications now...

Hillegass's book makes it obvious that classroom testing is the best way to produce good learning material. It also has a cool on-line tool, Techstra. If you run into problems or questions, plug in the page numbers you're dealing with, and you get additional information, comments, etc. about that area of the book.


43 Best way to learn
While I'll agree you need some programming experience to learn from this book, it says you need to know C++ or Java. I don't know either (I know VB and RealBasic) and yet am learning Cocoa very easily from this book.
Like the two guys that reviewed before me, if you need your hand held to use the online documentation after the book teaches you how to put everything together for yourself (and tells you to look at the online docs) then you'll become frustrated with this book.
You NEED this book if you want to learn Cocoa quickly and efficiently. I'm half way through the book and I'm very excited to use Cocoa thanks to Aaron and his book.
44 Pointless waste of my time
This book was not what I was looking for. I was looking for something a little more advanced than "How To Write Demos in Cocoa" (see "Programming in Cocoa" for an introduction to writing demos in Cocoa).

I am very dissapointed, plus, the writing style was annoying.


45 You couldn't even call this Cocoa 101
I was really hoping this would be an in-depth and insightful book on the AppKit framework and Objective-C in general.
It doesn't go much further than "Learning Cocoa" and the examples are so simplistic; reading the documentation would give you the same results.
Oh well......I guess we'll just have to wait for someone else to come out with something geared more towards professionals.
46 wonderful
this book is wonderful. I suggest it to every one who want to learn what is cocoa, how to develop with it and how to fall in love with Objective-C
47 If you buy one Cocoa programming book, this should be it
Aaron has the experience in programming Cocoa (Objective-C and Apple's dynamic runtime environment), and it clearly shows. While his book doesn't answer every question, and doesn't provide an extensive reference of the API's provided by Apple, it does cover all the essentials of style, thought, and idiom commonly used by Objective-C programmers.

Aaron's book is also backed up with a website which is honestly helpful, and I hope to see more technical books follow his lead in providing an ongoing resource that matches, and even exceeds the book. I've asked and received several answers through the site, and it makes a perfect complement to the book, increasing it's value significantly.

This is the first one to get. Complement it with online information created by Bill Cheeseman and his "Vermont Recipies", and you'll be fully cooking in Objective-C/Cocoa programming.


48 The Spirit of OPENSTEP Programming
This book reflects the spirit of the NEXTSTEP and OPENSTEP programmers perfectly. It starts very informally and goes on to proper applications. Along the way the author talks to you at the level of a casual friend and gives good anecdotal introductions to a lot of the ideas explained within. And he ends with telling you to be proud. Now, I'll admit I had a background in Objective-C programming and various NeXT objects, but I can see how this book could easily be used to learn ObjC along the way. And of course you have to be using the Apple Developer Tools with this book and it comes with the entire Apple book on Objective-C online and printable. That is in fact a clearly (both from my experience and from what the author tells readers) an essential companion to this book, the excellent online help Apple has provided. Despite having not written a proper NeXT app for _ages_ (though I have kept my ObjC skills in use as a general OO tool), I was able to write a functional application from the ground up the first night I read this book, and that is its true value. Overall it's a friendly tutorial on making use of the excellent tools Apple has provided to make quality programs on their excellent new old operating system. And that's why it works.
49 Fantastic Cocoa Resource
Before reading this book, I highly recommend you read the "Object-Oriented Programming and the Objective C Language" document from developer.apple.com. Forcing myself through the concentrated, dry spec made it easier to understand, enjoy, and appreciate Mr. Hillegass' wonderful explanations.

My favorite aspect of this book is that the author gets you into writing sample apps right away. After the 3rd chapter I felt like I knew the tools and environment well enough to write a very simple Cocoa app (like beginning programming excersize type things). I love how he takes you through the tools and shows you how to use them in the context of writing the sample program. When he explains concepts I feel like he does a very good job of giving concrete examples of when you would use such concepts in code.

The author's writing style felt like he was talking or lecturing to me, but without making me feel like a little kid.

A little about my background: I have a computer science degree, I know Java, and I've done some C++ programming as well. This book is NOT for you if you do NOT have any background in Object-Oriented Programming or if you do NOT have any background in C or C++ (you need to understand pointers and memory management in order to learn ObjC from this reference).
50 you need this book
It's books like this that make you realize that you want several books like this.

There's really no such thing as an introductory Cocoa book - Cocoa is something for C programmers who have a desire to write GUI based apps from an object-oriented perspective. Cocoa's grad school; there's no particular undergraduate degree required; just good test scores and a desire to learn from people who have thought about hard problems longer than you have :-)

Cocoa is a big, sprawling subject. This book is a great slice through a complex subject. A really great slice. The best slice thus far.

But we still need about 2 or 3 more books at this level, and 2 or 3 more at a more advanced level.

Want to learn about Cocoa? Then buy this book. Now. Start programming with it. And when you realize that there are other books you still need, Aaron will have done his job. Hopefully he'll have another book ready by then :-)


51 you need this book
It's books like this that make you realize that you want several books like this.

There's really no such thing as an introductory Cocoa book - Cocoa is something for C programmers who have a desire to write GUI based apps from an object-oriented perspective. Cocoa's grad school; there's no particular undergraduate degree required; just good test scores and a desire to learn from people who have thought about hard problems longer than you have :-)

Cocoa is a big, sprawling subject. This book is a great slice through a complex subject. A really great slice. The best slice thus far.

But we still need about 2 or 3 more books at this level, and 2 or 3 more at a more advanced level.

Want to learn about Cocoa? Then buy this book. Now. Start programming with it. And when you realize that there are other books you still need, Aaron will have done his job. Hopefully he'll have another book ready by then :-)


52 Very well done!
Mr Hillegass did a great job with Cocoa Programming for Mac OS X. This is a great book - well worth every dollar complete with examples that make sense.
53 Great coverage of Cocoa
This a a great book. I highly recommend it. Great coverage of all the most common topics. Easy to read.
54 Excellent book!
I've been programming for nearly 5 years and I thought Cocoa Programming for Mac OS X is a well thought-out book. The examples are great, the writing and coverage of the topics is top notch and the illustrations are valuable. You'll get exposure to the most common areas of Coccoa and be developing real applications quickly. I only wish there were some coverage of more advanced topics. I learned a great deal with this book and I look forward to "Advanced Cocoa Programming".
55 Teaching experience shows
I was halfway through the O'Reilly book on this topic, and just stopped when I started the Hillegass book. (And my opinion of O'Reilly books is generally very high.) His experience as a teacher really shows. Each time a question arises in my mind, he answers it in the next paragraph. Perfectly targeted for the experienced programmer who simply doesn't know the Cocoa framework. Pretty hard to improve on this book.
56 Marv
Simply the best book for learning OS X Cocoa programing on the market today. Written in a chatty, easy to read style with lots of pictures by a bloke that knows what he's talking about. Much easier to read than "Learning Cocoa" from Apple.

Working through the books chapters and accompanying programming challenges you actually learn and understand step-by-step. You will quickly have your own OS X programs up and running based on the examples in the book.

A great starting place for new Cocoa programmers.

Four stars not five because there are a few errors in the printing that I have - however the BigNerdRanch web site has all corrections online.


57 The Best Book Ever
I'm slightly biased, because I am the author, but I think this may be the best book ever. I've read the book dozens of times, and each time I find something new and delightful in it. It is useful, clear, timely, and even humorous at times.
58 rehash of online documentation and biased against java
When I first learned about this book, I was eager to get my hands on a copy. Now that I have, I'm disappointed. The content is mostly a rehash of the documentation that Apple has made available online (for free!). But what bugged me the most was the author's recommendation for developers who are interested in Cocoa NOT to use Java, because "Cocoa was written in and for Objective-C". He argues that Cocoa applications written in Java take longer to load, are slower, and use more memory than if they are written in Obj-C. Well, if I was going to write the software to control the next probe to land on Mars, then those would be major concerns. As it happens, today's Macs have more memory than most applications know what to do with and also they're sufficiently fast that half-a-second or so longer to load an application is imperceptible to the user. And most applications are not so mission-critical, anyway, for those concerns to be truly valid. Apple's decision to make Cocoa available to Java programmers was a smart one and the author of this book should have supported, not undermined, it. I hope Apple will keep working hard to integrate Java and Cocoa. I also hope to see more books on Cocoa from the perspective of a Java programmer. Feiler's book is a good start, but is far too verbose on issues that are not so relevant to the programmer who wants to start coding right away.
59 Wonderful Reference Book as well as Tutorial
This book is absolutely fabulous as both a tutorial when you first start working with Cocoa and Objective-C and a reference guide for later on. Aaron covers the basics as well as more advanced topics equally well. His writing is as easy to understand as it is to read. Anyone even thinking about working with Cocoa HAS to have this book!
60 Learn from the master...
I actually carry this book with me to and from work. I have found it essential in getting up to speed in Cocoa programming quickly (I had a Java background). Apple's documentation and examples leave much to be desired, and this book fills the gaps.

All of the code snippets are easily reused (like the printing example), which allows me to concentrate on the more important aspects of my application's logic. Each chapter introduces a new topic, most of which build on previous examples. I don't think I can praise the book enough for it's value.

I was fortunate to learn from Aaron personally at the Big Nerd Ranch. If you can't make the pilgrimage to the BNR, this book is the next best thing.


61 Learn from the master...
I actually carry this book with me to and from work. I have found it essential in getting up to speed in Cocoa programming quickly (I had a Java background). Apple's documentation and examples leave much to be desired, and this book fills the gaps.

All of the code snippets are easily reused (like the printing example), which allows me to concentrate on the more important aspects of my application's logic. Each chapter introduces a new topic, most of which build on previous examples. I don't think I can praise the book enough for it's value.

I was fortunate to learn from Aaron personally at the Big Nerd Ranch. If you can't make the pilgrimage to the BNR, this book is the next best thing.


62 Cocoa Programmming by Aaron Hillegas
This is the first Cocoa book I have found that comfortably leads the reader from Objective-C and Cocoa concepts to lots of understandable working code.

The examples illustrate the power of Interface Builder but the interfaces are, refreshingly, only complex enough to illustrate concepts. Much of the book covers the essential Cocoa concepts that make the interfaces run and the tight integration of the code with IB.

The documentation required to create the examples is all within the book. References to Apple documentation are there to lead the reader beyond the content of the book.

The writing is not only understandable but very efficient. As a result even more material is covered than might be expected from the healthy 432 pages.

Don't start underlining! Every word is important.


63 The most comprehensive text available for OS10
After floundering through the available on-line resources and the other texts available from... (well lets just say the other publisher), it was refreshing to thumb through the pages of a book that actually explained what was being done. If you're simply looking for step-by-step examples, I say go with the other book. But if you want to understand Cocoa programming get yourself a copy of Cocoa Programming for Mac OS X
by Aaron Hillegass

Sunday, 06-Jul-2008 15:23:08 CDT
Quote of the Day:


The only function of economic forecasting is to make astrology look respectable.

-- John Kenneth Galbraith

"There are three principal ways to lose money: wine, women, and engineers.
While the first two are more pleasant, the third is by far the more certain."
-- Baron Rothschild, ca. 1800