Learning Cocoa with Objective-C, 2nd Edition
James Duncan Davidson | Inc. Apple Computer


Compras Nikon
Bluetooth
1 OK...
While this book is very detailed and has a lot of information in it about Cocoa programming, it starts off too quickly. You might be discouraged by the assumptions the author makes about how much C (and programming in general) you know. If you are experienced in computer programming, then you will find this book to be a blast and will learn objective -C in no time at all. However, if you aren't too good with programming, start off with some online tutorials or other books, as you will get lost after reading the first two chapters or so.
2 A good book, but not the best book
A very popular book, and greatly improved in its second edition. Very example and tutorial oriented; somewhat out of date at this point, however.Ê Helps the user learn Interface Builder, ProjectBuilder and Objective-C, too. Possibly a bit shallow to get the reader writing their own Cocoa programs from scratch, but a good introduction. Ultimately, probably not as recommended for a first purchase as Cocoa Programming by Scott Anguish or Cocoa Programming for Mac OS X by Aaron Hillegass.
3 Indispensible Guide for Moving from C to Object Orientation
Being an old Pascal and C programer from the earlier Mac OS (systems 6 and 7) I was finding 1) that Carbon documentation was a mess, and 2) that Cocoa's object orientation was incomprehensible. So, in deciding which environment to work in to upgrade my old scientific apps, I felt stuck between two impossible choices. I wanted the power of quartz and the familiarity of C in a format I could learn. This book provides the indispensible introduction to object orientation that is a prerequisite for Cocoa and ultimately Apple's latest and greatest stuff under the hood. From there, the developer documentation and Garfinkel's or Hillegrass' books can take you the rest of the way. But, this is the place to start if you're conversant in c but not objects.
4 Good try, but needs a bit more work
This book needed one more pass by the proofreaders. There are an annoyingly large number of typographical errors and other mistakes. What surprised me is that after introducing a number of features of Interface Builder, the author tends to manually write code (e.g., outlet declarations) then load the results into Interface Builder to make the various object connections. It would have been better in my view to simply use Interface Builder to perform these tasks (certainly less error prone).

Overall, the book is helpful in explaining a lot of issues, but I would have like the book to touch more in internationalization issues, such as how to handle input method editors and product localization. In real world programing, I'll need internationalization and input method editor handling before I need to worry about speech synthesis.


5 Lacks detail
I thought the examples throughout the chapters and follow-up exercises were good. However, the author's explanations leave much to be desired. I'm very experienced at object oriented programming languages, yet there are passages within this book that make little sense to me. Basically, I felt as if the author sacrificed completeness for brevity. This is pretty much what other reviewers have said. I wish I would have heeded their warnings prior to buying this book. My advice is to pass on this book for something better.
6 Super Introduction
When I started this book, I had no knowlege of Cocoa (aside from the first version, which stank(stunk?)), or any programming besides Applescript.
This book seemed to know that, and didn't pretend that I had been a programmer for five years. The book got me familiar to Cocoa in probably the best way, and it's short, allowing me to find my next source of info. In short, whether you've programmed before (you probably want to have done some Applescript or BASIC first, though) or are a novice, this can get you started with a very powerful, easy language. it was kinda fun, too. I am not an adult.
7 Excellent Beginner Book
This book is very good. It is much, much better than the first edition. It is very well written and easy to read. The examples are clear and their appear to be no major mistakes at all. The book does an effective job of introducing the reader to the major points of Cocoa programming. It gives you enough information to start writing simple programs by yourself. I believe this book is excellent preparation for the more advanced Cocoa books.
8 yeah woo ha
This book is a clear learn by example introduction to Cocoa but is neither complete nor exhustive (which is obvious from the title keyword "Learning xyz"). You will not become a master of cocoa nor totally understand all aspects of Project Builder or Interface Builder. That will take time, patience and more books. This is a good introduction.

Do not pay attention to the reviewer that suggested that the Davidson could learn something from Steve Oualline's Practical C++ Programming (O'Reilly). That book (which I also learned to program from initially) is quite bad and is filled with errors in examples and a very poor introduction to object oriented programming. What the reader should keep in mind is that this is an introduction a development system which is very complex and offers a great deal of power. Learning C/C++ is fairly straightforward. As an application framework I feel the learn by example format provides the fastest possible way to learn what the setup is. If you are unable to develop at least simple programs after this book then you may have to face the fact that the fault may not lie with the book but with your progamming knowledge in general.

One more thing, if you are serious about learning cocoa then I can't recommend highly enough getting one of the class browser programs AppKiDo (which i prefer) or Cocoa Browser. They will only bring you joy.


9 A significant improvement!
After reading the first edition, I wasn't at all interested in buying the second edition until I read a review that indicated that the second edition wasn't just an updated rehash of the first. Indeed, this book is completely different. Where the first book was little more than Apple's online examples in print, this book incorporates step-by-step examples of simple applications that are used to demonstrate numerous Cocoa programming topics. I got almost nothing out of the first book. I am actually feeling somewhat confident and I am making progress on a couple of projects with the knowledge I have gained from this edition.
10 Good Introduction/Tutorial
Learning Cocoa with Objective-C presents a clear series of short examples that demonstrate many key aspects of Cocoa. The writing style is direct, and free from distracting stories or other fluff. I first purchased Hillegass' book, but started to become flustered with some of the examples which implemented concepts that had yet to be explained.

I then purchased Cocoa Programming by Scott Anguish which gave me great insight into the Cocoa concepts. After reading about half of Anguish's book I returned to the Hillegass book to get me hands dirty with some of the tutorials again, but I just couldn't get into the style of the book.

I then picked up Learning Cocoa and found great relief in the clean format of the book. While the topics discussed aren't explored to a great depth, I feel that such brevity is appropriate for a tutorial book. Davidson does a good job of keeping the examples short and to the point (shaving literally pages off the Currency Converter example which is also presented in Apples docs).

My recommendation would be to buy this book as a tutorial and buy Cocoa Programming by Scott Anguish for reference and deeper exploration.


11 This book does not leave you with more than examples.
I have seen what is to be had from a good programming book in Steve Oualline's Practical C++ Programming (O'Reilly). One who works himself through a book such as this will find that he is able to move immediately beyond the scope of the textual examples into programs which he himself finds useful. The material is well-taught, in normal English, and confusing issues are solved by reviewing the text. Unfortunately, this is hardly the case with Learning Cocoa. Having read this book, I find that J.D. Davidson explains things poorly, speaks too often in a manner which some might consider advertisement of Apple's tools, and does not prepare one to apply what he has learned to his own purposes. I could not, as a result, recommend this book to anyone of my background (I learned to program C++ by Oualline's book, then came to Learning Cocoa).

Davidson has a habit of "teaching" Cocoa in the following manner:

1. Create a project named x.
2. create these header and implementation files.
3. Copy the code I have written here in this book.
4. Read the explanation line-by-line which I have given you.

The result of this system is that Davidson has successfully explained why his example programs run, but he has utterly failed to teach the reader to create a program which applies the topics he just touched on. Line-by-line explanations are only useful if they serve the purpose of abstraction, to create a model which can then be applied to a specific case. Davidson's explanations serve only his individual examples, as is obvious when a beginning programmer attempts to create his own application.

It is also altogether too clear that Davidson is working under Apple's hand. At every opportunity, the phrase, "Apple has provided," or, "Apple's engineers created," is concatenated at the front end of a sentence for no reason other than to irritate the reader with what amounts to advertisement in a textbook. For example, at the beginning of the novel, Davidson attempts to explain objects. What does he use as a decidedly abstract example? An "Apple" iPod. This may seem nitpicky at first, but I find it very distracting and detrimental to the content.

Lastly, it bears mentioning that this novel does not provide one with the means to move on. Halfway through the text, I was still not able to create my own programs, even of the most rudimentary kind, without intense difficulty and little help from the novel. Re-reading explanations is not helpful, as few of them are made abstract enough to assist a body in any of his own pursuits. Davidson must have understood this when he created the novel, because none of the exercises he provides go beyond one-line modifications. In effect, this book provides no semblance of applicable knowledge.

A book that provides neither content nor focus nor a place from which to move on does not deserve the exhaustive hours required to read it. I have not yet explored other alternatives in the Cocoa programming world, however I strongly suggest that others look elsewhere.


12 Overall, this book provides an adequate introduction, but...
...for me this book, by itself, came up a little short in certain areas. The first book on Cocoa programming that I had purchased was Aaron Hillegass' "Cocoa Programming for Mac OS X". After reading and working the examples from the first 4 chapters of Mr. Hillegass' book, I was still having difficulty grasping the concepts -- or at least more difficulty than I thought I should be having -- of Cocoa programming. That's when I discovered Mr. Davidson's book at my local bookstore. After reading the first few chapters, I was able to grasp the concepts that had eluded me whilst studying Mr. Hillegass' book. Put simply: it all started making sense.

In my opinion, neither book, by itself, provides a complete introduction to Cocoa programming; rather, it is the combination of *both* books that truly provides the introductory material that's fundamental to understanding Cocoa and Objective-C programming. In addition, Mr. Davidson has provided, in my opinion, a more logical and easier to follow progression of topics. Unfortunately, he also fails to provide sufficient depth on some topics after their introduction. Two examples that readily come to mind are the collection classes and memory management. On these two topics, I tip my hat to Mr. Hillegass for providing the better instruction because he: 1.) also explained and gave an example of using enumerators (think C++ interators) to traverse a collection, and 2.) because he gave a very good explanation of where and how to use autoreleased objects in functions.

Overall, I think my biggest compliment about this book is that it maintains a high degree of consistency in the way topics are presented. My biggest complaint is that, in certain areas, the depth of the presentation is simply too shallow. With a little more sustenance, this book could easily become the de facto standard for an introduction to Cocoa programming using Objective-C.


13 GREAT Book To Learn Cocoa and Objective-C Programming From!
I have both this book (Learning Cocoa with Objective-C) and it's predecessor (Learning Cocoa). These are two completely different books. The first book wasn't hardly worth the paper it was printed on, as it was mostly just a thrown together collection of rag-tag tutorials from Apple's web site. Thankfully, this book is NOT the first book!

Fast forward to verison II, Learning Cocoa w/ Objective C. This book is great! It covers a whole slew of topics ommitted by the first version. Thankfully the content is NOT the same as before. A tiny bit of it is similar, but for the most part one person took it upon themselves to make sure that all of the material was presented in a consistent manner. By the end of this book you'll walk through all of the steps required to write an application similar to TextEdit (provided with Mac OS X). This application will support Rich Text Formatting, save and open capabilities, spell checking and much much more. You'll be impressed with what you build in this "Learning" book. If you've ever done the REALBasic tutorial you'll find that this creates a very similar application using the Cocoa Framework and Objective-C.

All the basics of learning to write MAC OS X applications with Cocoa are covered here. Unlike the first version of this book it doesn't assume you already knew Objective-C or have had exposure to NextStep. If you're looking for a good book to expose you to Cocoa and Objective-C programming buy this book and work through it all. It's worth it!

This book will also guide you through using the debugger in Project Builder. You'll learn how to use the debugger print-object command and other useful debugging techniques. This book does more than just point out the fact that the debugger exists. It shows you how to apply it usefully.

Another thing I like about this book is the fact that it covers NSString's in more detail than other books of the genre. You'll see examples on how to pull substrings out of NSStrings and use NSRange. You'll also see demonstartions of using NSMutableString as well. Several other books merely mention that NSMutableString exists, but then fail to show what is different between the two.

The excersises at the end of each chapter are very helpful in learning Cocoa Programming too! They're not too difficult, but not too simple either. They'll make you dig and think a bit to find a solution, but not so much that you'll want to pull your hair out and give up. AND If you go happen to get stuck you'll find answers revealed in the back of the book.

This book is for the most part geared towards Mac OS X 10.2, but I did manage to do all of the examples in 10.1.5 (except with the programming example that made use of the Jaguar's Address Book, of course.) This is a bonus, for some of the earlier Cocoa Programming books do not take into account newer versions of Mac OS X and thus are now a bit out of date.

Surprisingly, this book is thicker too, but only because it's now on quality paper. The book actually contains fewer pages (by only a dozen or so) than the original, but Cocoa programming is covered much more thoroughly. There's not much textual fluff or irrelevant screen shots to gobble up pages; --just the right balance of what is needed to cover Cocoa and Objective-C programming for the beginning or semi-intermeddiate programmer.

If you already own the first book don't worry about buying this one and receiving repeat material. These two books are not the same animal (even though the dog on the front cover is the same). They are two totally different creatures with internal organs unique to themselves. In fact, after working through the second edition you might find the first edition more useful; --as you will have gained knowledge from the second version to more completely comprehend chapters in the latter part of the frist version.

One more note: THANK YOU O'REILLY & ASSOCIATES! You're breathing new life into books for the Macintosh! Be it mac-only books (like this Cocoa Programming book) or just the fact that you include MAC OS X specifics in books like "Managing and Using MySQL (2nd Edition)". Myself and I'm sure many others appreciate it. Thanks!


14 Best cocoa book for newbies
This is a note I sent to the author:

I've spent the last year hopping bewtween intro C and cocoa books. When yours came out I almost didn't buy it, fearing yet another bout of
confusion. Thankfully, I made the purchase. I'm halfway through and confident I will not only finish but actually walk away with skills. Thanks
for remembering the beginner as well as your clear examples that provie detailed analysis each step of the way. If only all programming tombs were so well written.


15 One of the best Cocoa books available...
This book was one of the best programming books that I have ever seen. While it had a lot of basics, it went completely through the Cocoa application development. I completed the entire books in less than a week work on this part time. The examples were complete and had very view mistakes.

I would recommend this book to anyone who wants to get started programming for OS X using Cocoa. This book si good for almost any level programmer.

The only reason I did not give it 5 stars was because it had a couple of mis-prints and could have added a few more chapters going into more deoth in a few areas...



Sunday, 12-Oct-2008 12:21:33 CDT
Quote of the Day:


Nature always sides with the hidden flaw.

Wonder is the feeling of a philosopher, and philosophy begins in wonder.
-- Socrates, quoting Plato
[Huh? That's like Johnson quoting Boswell]