I found a great book this weekend. It’s Cocoa® Programming Developer’s Handbook, Second Edition, by David Chisnall, published by Addison-Wesley Professional. It provides a very complete coverage of this broad subject but, unlike many of the other books I’ve read on the topic, it assumes that the reader is already a competent programmer. The author tells how Cocoa started life as NeXTStep on the NeXT computer and follows its evolution through a collaboration with Sun Microcomputers which resulted in OpenStep until Apple bought NeXT and adopted OpenStep as the heart of it’s development of OS X.
The book is wide, deep and fast paced. Don’t be frustrated if you find yourself having to read some sections more than once. It includes an historical overview, a survey of the languages that have interfaces to Cocoa and why you might want to consider using each of them, an overview of the Developer Tools that Apple supplies to write applications with Cocoa, and of course, in depth discussions of how to use all of the various frameworks that comprise Cocoa (e.g. Core Framework, Core Graphics, Core Data, Core Audio, etc.) It also discusses the philosophy of Document-Driven Applications that was pioneered by Apple on the Mac. It frames these discussions with plenty of code examples that help place them in a practical context.