Cocoa Programming for Mac OS X
When learning a new programming language or technology, I learn best by working through a book with lots of examples and tutorials. I learned HyperTalk by reading Danny Goodman’s The Complete HyperCard Handbook, I learned C by reading Dave Mark’s Learn C on the Macintosh, and I learned C++ by reading his Learn C++ on the Macintosh. (Actually, I didn’t really learn C++ until I read Bjarne Stroustrup’s Design and Evolution of C++.) So, when it was time to learn Objective C and Cocoa, I looked for a book. I bought Aaron Hillegass’ Cocoa Programming for Mac OS X
and I was not disappointed.
I felt that Aaron did an excellent job covering Objective C and Cocoa at the proper detail for someone new to both. The tutorials were clear and correct. I found the challenges at the end of most chapters especially valuable since they cemented what I had recently learned by requiring me to apply that new knowledge without step-by-step instructions. Furthermore, the book is supported by a helpful web site. In addition to the usual errata and solutions to the exercises, there is a database indexed by page number where readers have posted questions, answers, and comments.
While the second edition was published a couple of years ago and, therefore, doesn’t cover Tiger-specific technologies, I didn’t feel as if I missing out on learning the latest and greatest. Perhaps the third edition will have a CoreData chapter and cover Objective C 2.0 features. I did feel that Cocoa Bindings, for which a chapter was added in the second edition, were somewhat stuck on rather than integrated throughout the book. As a result, while I think I now understand bindings, I don’t have the deep comprehension necessary to know when they should and shouldn’t be leveraged. Perhaps after reading Apple’s Cocoa Bindings Programming Topics, I’ll be fine. Another critique is that the chapter on AppleScript seemed cursory. A lot of code was provided without much explanation. This is particularly unfortunately since, apparently, making an application scriptable is hard.
Despite these minor critiques, I highly recommend this book if you’re just learning Objective C and Cocoa. Once I finish reading Apple’s documentation on bindings, I’ll be firing up Xcode and putting all this new information into practice.
