Cocoa Programming Developer's Handbook Book Review
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
Price: $59.99 US