When I attended NSConference 2010 in Reading, UK I felt really lucky for 2 reasons. First of all I saw some great speakers on stage and I got to meet most of them in person as well. One of the speakers I enjoyed most was Drew McCormack. I felt his speeches were clear, to the point and his Keynote slides were pretty classy, very Apple like.

I had the opportunity to talk with Drew during a break. It was nice to hear his story about going independent. As always I invited him to contact us should he ever want to spend some quality time in Ghent.

A few days after NSConference I saw on Twitter that he had a new book out called Beginning Mac OSX Snow Leopard Programming. At that time I had just finished writing the review of More iPhone Development for the CocoaheadsBe website, so I kindly offered him to do a similar book review. To my surprise, he was happy to comply *and* he told me I could keep the book as well. It’s little things like this that make me proud to be part of such a great community.

Drew, if you’re reading this, thank you very much for the book. Next time we meet, drinks are on me.

Introduction

So far my only experience with Cocoa has been on the iPhone and iPad. I’ve never written a desktop app for Apple computers. I’ve tried though. During a quiet moment I started a new Application project in Xcode to see how far my iPhone knowledge would get me. It wasn’t very far and I pretty much abandoned the project straight away.

Sometimes you need someone to explain you the basics or – if you don’t have that – a good book. And a good book is what we have here, ladies and gents.

First of all, I’d like to get something off my chest. It may seem bizarre to you and I admit I’m an avid reader (well over 100 books in my library) and I enjoy proper books with proper paper. I mean, these things don’t come cheap and I expect quality for my money. Some of Apress’ latest books look and feel like they were printed on a deskjet printer, bound together and then shipped. Paper quality is often flimsy, which – in my opinion – is the only thing wrong with Apress’ books because their content is great.

Not so with this one: Beginning Mac OS X is a solid book with quality paper and gives you a good-value-for-money feeling. End paper rant.

Let’s have a look inside. This is what the table of contents looks like:

Part 1: Mac OS X developer resources

Chapter 1: The Mac OS X environment
Chapter 2: Developer Tools
Chapter 3: Xcode

Chapter 4: Interface builder

Part 2: Application programming

Chapter 5: The application
Chapter 6: The C language
Chapter 7: The Objective-C language
Chapter 8: Introduction to Cocoa
Chapter 9: Document-based Cocoa applications

Chapter 10: Core Data-based Cocoa applications

Part 3: Script programming

Chapter 11: Overview of scripting languages
Chapter 12: The bash shell
Chapter 13: Applescript and ApplescriptObjC

Chapter 14: Javascript, Dashboard and Dashcode

Chapter 1 introduces you to OS X and takes a look at the building blocks that form this great operating system. There’s some history about Unix and the big blocks are explained.

As soon as I hit chapter 2 I was learning new things. A few tools for debugging were mentioned that I had never heard of. I have used the ones that I had heard of for iPhone development so I know how powerful they are. Learning new ones can only be a good thing.

Xcode is the center of attention in chapter 3. I know *some* Xcode but I’m not expert at it. This chapter made me that little bit more confident with it.

The chapter on Interface Builder is a good one. I just spent an entire day working with Xcode 3.2.1 (which was very recently released at the time of writing this article) and with every new release of Xcode I feel Interface Builder is getting better and better. This is an interesting chapter.

Chapter 5 is called “The application” and it explains in detail why we don’t see folders with content when talking about applications but just one single icon. It explains in detail how OSX applications are bundled and what’s inside that bundle.

Chapter 6 takes you through the C language which might seem strange at first, but remember that some frameworks in the iPhone SDK are written in C. This chapter will help you understand more should you ever be confronted with such frameworks. Also remember that C is the base language on which many other languages – including Objective-C – are based.

Speaking of Objective-C, chapter 7 introduces you to OO programming, explains the difference with procedural programming and explains the big chunks of Objective-C.

Chapter 8 gives an introduction to Cocoa. It learns you how to set outlets and create actions.

If you come from a Windows programming background then chapter 9 is basicly a chapter on MDI, or document based applications.

On to chapter 10 then and it’s Core Data on stage. I’ve heard so much about Core Data and I have a few iPhone projects on the way that need to store loads of data locally. Needless to say, it’s something I will eventually have to sit down for and take some time to study.

Chapters 11 and 12 are very theoretical and introduced little new for me.

Chapter 13, however, interested me a lot. I’d heard of Applescript before but had no clue what it was about and how much could be done with it.

The final chapter introduces you to Javascript, dashboard and dashcode.

Conclusion

And if you’re still here reading this, then you must be very interested in this book. So, what’s the verdict then ?

My first reaction was “I expected a bit more from this book”. However, it’s a few days later now as I write my book reviews over several days to let things sink. I don’t know why, but I expected this book to become my bible of OSX development. I now realize that there is no such book for any platform.

Books on topics such as .net, Java or Cocoa programming have to cover a very wide base because the subjects are so wide. It is always a combination of different books … one general book and a few books on specific aspects explained in detail that get me going.

If you’re already into OSX programming then this book will teach you very little. However, if you’re completely new to OSX development, then I reckon this is a very book to get you started. Follow it up with a few classics from Aaron Hillegas and Marcus Zarra and you’ll be up and running in no time.