Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Cocoa Programming Developer's Handbook Book Review

January 31, 2010

With the announcement of the Apple iPad, even more developers are turning their interest toward learning and mastering the Cocoa framework required for Apple application development.  How does this latest Addison-Wesley Developer's Library title stack up to other Cocoa programming books?  Read on to find out.

I have a fairly agnostic view of Apple products.  On the one hand, Apple creates some of the most elegant consumer electronics products that the world has ever known.  On the other hand, their closed, locked down approach to data and applications makes me shiver.  I enjoy developing primarily on the Linux platform because of that community's respect for open platforms and protocols.  Apple's strategy of living in an Apple world is  at times too constraining for my adventurous coding ways.  Nevertheless, one cannot deny the simplicity and high level of non-technical user satisfaction Apple products bring to the masses.  Apple's iPhone has garnered such an overwhelming response that deciding not to look at it seriously is to miss a potentially huge market opportunity.

And so it goes with the iPad.  While some may argue that this first generation device is nothing more than a jumbo-sized iPod Touch, it could still capture a profitable marketshare of users eager to purchase quality applications optimized for that portable, large screen, multitouch platform.  Committing to such development requires a major investment in time, knowledge and practice.  One of the major components of this investment is learning the Objective-C programming language and Cocoa frameworks.  While I would love to be able to develop iPhone and iPad applications using the PyObjC or MacRuby bridge technologies, these options don't appear to be a choice any time in the near future.  Developers interested in creating iPad applications will have to learn Cocoa, buy into Apple's Xcode environment and purchase a iPhone developer license.

With that preamble out of the way, the Cocoa Programming Developer's Handbook is a companion book of sorts to Addison-Wesley's Programming in Objective-C 2.0 by Stephen G. Kochan.  Reading a book like Cocoa Programming Developer's Handbook without fundamental working knowledge of the Objective-C language will most certainly result in an exercise in frustration.  

Assuming this prerequisite has been met, readers seeking a broad knowledge of the numerous Cocoa libraries in action will be highly satisfied.  Author David Chisnall does a superb job of explaining and demonstrating the most common and interesting Cocoa function calls and constructs that are being used in a number of commercial OSX applications today.

Part I of the book begins with an overview of Cocoa and how it relates to other technologies hosted within the OSX environment and concludes with a discussion of the various Apple developer tools.  Part II covers the foundational aspects of the Cocoa framework, starting with basic data types, collections, enumerations, property lists, filesystem interactions and notifications.  GUI elements such as windows and menus are explained in exquisite detail, and these presentations helped make a lot of Cocoa's GUI conventions click for me.  Part III covers Cocoa's document model and data model (Core Data), while Part IV and V cover structured data, custom/dynamic views, audio-visual aspects and HTML (Webkit) and PDF support.  Part VI delves into UI integration aspects including searches, filters, contacts, calendars, pasteboards, services and adding scripting abilities to applications.  The last part of the book concludes with networking and concurrency considerations.  The Appendix contains several brief 'Advanced Tricks' that can help elevate good OSX developers to 'insanely great' ones.

In addition to a healthy helping of source code snippets accompanying various important explanations, the book's code and complete project files can be downloaded from the book's website.

Overall, anyone committing themselves to developing for the Apple platform and already comfortable with Objective-C will find David Chisnall's book an excellent reference for all things Cocoa.  The author's breadth and depth of knowledge are astounding, and the fact that he shares this education so thoroughly and effectively are testaments to his developer and communicator abilities.  Every OSX developer should have this book on their desk.


Title:  Cocoa Programming Developer's Handbook
Author: David Chisnall
Publisher: Addison-Wesley
ISBN: 978-0-321-63963-9
Pages: 936
Price: $59.99 US


Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.