Library of Math
Online Math Organized by Subject Into Topics
Subscribe to the Library of Math Feed

Cocoa(R) Programming for Mac(R) OS X (3rd Edition)

Cocoa(R) Programming for Mac(R) OS X (3rd Edition)

enlarge enlarge 
Author: Aaron Hillegass
Publisher: Addison-Wesley Professional
Category: Book

List Price: $49.99
Buy New: $28.89
You Save: $21.10 (42%)



New (30) Used (6) from $28.88

Rating: 4.5 out of 5 stars 129 reviews
Sales Rank: 870

Media: Paperback
Edition: 3
Pages: 464
Number Of Items: 1
Shipping Weight (lbs): 1.9
Dimensions (in): 9.2 x 7 x 1.4

ISBN: 0321503619
Dewey Decimal Number: 005.268
EAN: 9780321503619

Publication Date: May 15, 2008
Availability: Usually ships in 1-2 business days
Condition: Ships today!

Accessories:

  • Mac OS X Internals: A Systems Approach
  • Programming in Objective-C (Developer's Library)
  • Xcode 3 Unleashed

Similar Items:

  • Programming in Objective-C (Developer's Library)
  • Xcode 3 Unleashed
  • Advanced Mac OS X Programming (2nd Edition of Core Mac OS X & Unix Programming)
  • iPhone Open Application Development: Write Native Objective-C Applications for the iPhone
  • The iPhone Developer's Cookbook: Building Applications with the iPhone SDK (Developer's Library)

Editorial Reviews:

Amazon.com Review
Suitable for anyone with a little C/C++ programming experience who wants to create software for the newest Mac platform, Cocoa Programming for Max OS X provides a slickly packaged and approachable tutorial that will get you started creating state-of-the-art Mac programs.

The smart presentation style and easy-to-understood code examples help make this text an excellent resource. (It also helps that Aaron Hillegass is a truly engaging writer.) He first explains how the legacy NeXTSTEP platform has evolved into Cocoa on the Mac OS X. Beginning with short examples illustrating the actual Cocoa tools in action, the author gets you started with simple programs for a random-number generator, a raise calculator, and other comprehensible examples. Rather than just listing APIs and classes, the emphasis is on hands-on Cocoa development. An early standout section provides a nice tour of essential Objective-C features you'll need to know to use Cocoa effectively.

This book covers the several dozen built-in Cocoa controls, from basic text and buttons to more advanced widgets (including lists and tables). Subsequent sections look at user interface design (using the Interface Builder to create nib files) and how to add programmatic processing behind the visual layout. Along the way, the author introduces coverage of essential Cocoa APIs for strings, arrays, and dictionaries. Later chapters look at saving and loading documents (and user defaults) and how to tap the powerful graphics abilities available in Cocoa. (Besides image and basic drawing, there are short sections on PDF support and printing.)

More advanced user interface features get their due by the end of the book, including cutting and pasting data through the Cocoa pasteboard and also adding drag-and-drop support. Final sections look at creating new controls for use with the Interface Builder palette, and, briefly, how to use Java with Cocoa (an option that the author doesn't necessarily recommend). Throughout this text, the author provides more advanced, challenging problems at the end of each chapter for the "more curious" reader. This approach keeps beginners from getting lost in the details of Cocoa development, but gives the more advanced reader something more to do.

While there are comparably fewer books on Mac OS X compared to other platforms, readers are lucky to have this one available. Anyone who wants to get onboard with Cocoa development will be well served by this title. It's a fine tutorial that earns high marks for its approachable, clear examples and an excellent presentation by an author who knows his stuff and, better yet, knows how to teach it to others. --Richard Dragan

Topics covered: Brief history of the Mac platform (from NeXTSTEP to Mac OS X), basic Cocoa development in Objective-C, using Project Builder and Interface Builder tools, tutorial to Objective-C (instances, variables, using classes, arrays and other containers, custom classes), the Objective-C debugger, basic Cocoa controls (building user interfaces), tables and data sources, event handling and delegates, archiving documents (encoding and decoding, saving and loading documents), Nib files, window panels, saving and retrieving user defaults (including using dictionary classes), notifications (observers and more on delegates), alert panels, localization (including string tables, a English and French example, the nibtool utility), custom views and drawing, drawing images and mouse events (plus coordinates systems and autoscrolling views), responders and keyboard events, fonts and strings (including attributed strings and PDF support), pasteboards and nil-targeted actions, using Objective-C categories (a code reuse feature), drag-and-drop support, timers, sheets and drawers, formatting strings, printing support, on-the-fly menu updating, text editing with text views, basic tutorial for using Java with Cocoa, and custom Interface Builder palettes (and inspectors).

Product Description

The best-selling introduction to Cocoa, once again updated to cover the latest Mac programming technologies, and still enthusiastically recommended by experienced Mac OS X developers.

“Aaron’s book is the gold standard for Mac OS X programming books?beautifully written, and thoughtfully sculpted. The best book on Leopard development.”

?Scott Stevenson, www.theocacao.com

“This is the first book I’d recommend for anyone wanting to learn Cocoa from scratch. Aaron’s one of the few (perhaps only) full-time professional Cocoa instructors, and his teaching experience shows in the book.”

?Tim Burks, software developer and creator of the Nu programming language, www.programming.nu

“If you’re a UNIX or Windows developer who picked up a Mac OS X machine recently in hopes of developing new apps or porting your apps to Mac users, this book should be strongly considered as one of your essential reference and training tomes.”

?Kevin H. Spencer, Apple Certified Technical Coordinator

If you’re developing applications for Mac OS X, Cocoa Programming for Mac OS X, Third Edition, is the book you’ve been waiting to get your hands on. If you’re new to the Mac environment, it’s probably the book you’ve been told to read first. Covering the bulk of what you need to know to develop full-featured applications for OS X, written in an engaging tutorial style, and thoroughly class-tested to assure clarity and accuracy, it is an invaluable resource for any Mac programmer.

Specifically, Aaron Hillegass introduces the three most commonly used Mac developer tools: Xcode, Interface Builder, and Instruments. He also covers the Objective-C language and the major design patterns of Cocoa. Aaron illustrates his explanations with exemplary code, written in the idioms of the Cocoa community, to show you how Mac programs should be written. After reading this book, you will know enough to understand and utilize Apple’s online documentation for your own unique needs. And you will know enough to write your own stylish code.

Updated for Mac OS X 10.4 and 10.5, this revised edition includes coverage of Xcode 3, Objective-C 2, Core Data, the garbage collector, and CoreAnimation.




Customer Reviews:   Read 124 more reviews...

5 out of 5 stars Not Perfect, But Highly Recommended   February 23, 2002
HiRez (California, USA)
123 out of 125 found this review helpful

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.


5 out of 5 stars Cocoa yes, Objective C no   September 2, 2005
Marc Ruby™ (Warren, MI USA)
28 out of 40 found this review helpful

I picked this book up as my first real effort to learn what developing on the Mac involves. The Mac is pretty complicated under the covers, cocoa is the 'easy' way to gain access to the Mac's power, and I learn best when there are a love of examples and explanation. Since then I've had a love/hate relationship with this book. Some of which isn't Aaron Hillegass' fault at all and some is probably an inherent flaw of a book for geeks by a geek.

In general, the book is an excellent introduction - well-written and loaded with programming exercises, Hillegas provides some introductory chapters on the Cocoa framework and the more common place aspects of Objective C and then you are off on a whirlwind tour of a very complicated country. If you stick to it, this book will teach you a lot. Unfortunately, ne of the things you will learn about is Objective C.

I've gone through the C, C++, and Java stages of software development. While I've forgotten most of what I knew, Objective C has a number of quirky ways of expressing itself. It has a piecemeal style of memory management which I find more leak prone than C++ and an inconvenient grammar that seems to dote on unnecessary numbers of brackets. Anyone who is used to Jave or C++ is going to find Objective C irritating. This isn't Hillegass' fault, but he has a habit of using extra long method names that brings out the worst of the language. I believe it's a modern geek thing to see just how long a name can be.

Hillegas wrote this edition before Xcode 2.0 appeared, and some of the examples, particularly in Interface Builder, don't quite make the transition, which can create some hairpulling. Eventually, you can figure everything out. I also found Hillegass's decidion to not make the source code available from his website a bit petty. While 99.99% of my problems were my own typing mistakes it would be nice to be able to download the source to see if it worked at all. He also includes a number of challenge assignments and refuses to provide more than vague hints. On several occasions my problem was that his assignment wasn't clear, not any real difficulty with the challenge.

I would also have appreciated a more methodical approach to Cocoa's architecture. I would have appreciated a walk of the framework hierarchy, but that has a lot to do with how I best learn frameworks. I'm still giving the book high marks, because it attempts to accomplish a lot, and it comes pretty darn close. But I've decided that learning to use Cocoa from Java would work better for me, even if Objective C is the current Apple standard.



5 out of 5 stars Getting started in Cocoa   September 16, 2002
29 out of 29 found this review helpful

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.


5 out of 5 stars Fantastic Cocoa Resource   January 15, 2002
A. Blair (Seattle, WA United States)
22 out of 25 found this review helpful

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).



5 out of 5 stars THE BOOK Introducing Mac OS X Programming   December 2, 2005
Nolan Whitaker (Louisville, KY United States)
12 out of 12 found this review helpful

Aaaron Hillegass' book, Cocoa Programming For Mac OS X (second edition) is THE introductory Cocoa book. Last year I returned to the Macintosh family with the purchase of an iBook. FINALLY, a mainstream OS with a bullet-proof, proven foundation AND with an incredible graphics engine. 'Nuff said! Cha-Ching on the visa card!

My background includes several years with a large IT consulting firm and some work as a teaching assisitant while in graduate school.

From reading online discussion groups and reviews here at Amazon, I got the impression that most people attempting to learn Cocoa start with this book, so that's where I started. Having completed the book, I am glad that I followed the advice of others in this regard. Here are my comments, kudos and otherwise:

- The book assumes a knowledge of C or C++. Cocoa is written in and designed to be used with Objective-C. Aaron introduces Objective-C concepts and terminology as needed throughout the book, but he assumes that you know C. For instance, he doesn't explain that NSPoint and NSRect are NOT Cocoa classes. He tells the reader that they are structs but does not explain the concept of a struct since experienced C programmers do not need that information. I do agree with the other reviewer that it can be confusing as to what is a struct and what is a Cocoa class if one only looks at the name of the entity, but that fault lies with the framework designers who chose the naming convention, not Aaron. The point is that if you don't know C, LEARN C BEFORE BEGINNING THIS BOOK. (Having taught C++ before, I had no trouble picking up Objective-C without referencing any other material.)

+ Aaron teaches by example. He presents a topic in high level terms and then instructs the reader to follow step-by-step instructions to implement the concept. After writing the code and seeing it in action, he explains how it works and then goes into even greater deal at the end of each chapter with a section titled "For the more curious."

+ Aaron's writing style is informal and casual. If you didn't know better, you'd think your best friend was by your side instructing you in simple, easy-to-understand terms. In fact, he makes Cocoa seem much more simple than it is.

+ Most chapters are short and can be completed in one sitting in 1-2 hours at most. However, there are a couple of exceptionally long chapters-- I think too long. As much as I tried not to do so, I had to break longer chapters into 2-3 sittings. I believe that I, like most people, learn better when given small chunks of knowledge and time to digest it before moving forward.

+ Aaron covers some topics in the book I wouldn't expect to see in an introductory book: 1- creating InterfaceBuilder pallets and 2- creating frameworks.

- I wish there was more information on views, windows, array controllers, bindings, and window controllers. Some views, for example, have flipped origins and some do not. [English: The origin coordinate (x=0,y=0) of some views begins at the lower left corner while other views set the origin to the upper left corner.]

+ BUY THIS BOOK if you want to learn to create MacOS X software!


 
about us contact us privacy policy terms of use mision statement lom help
The Library of Math - Online Math Organized by Subject Into Topics. © 2005 - 2008 www.LibraryOfMath.com All rights reserved.