I’m about halfway through a relatively recent book, Mastering Xcode 4, that you might be interested in if you want to learn to program for the Mac or any of the iOS devices. Xcode is the development environment provided by Apple for writing, compiling, and testing your code. The latest version, Xcode 4, has quite a few changes over the previous version (which I never really mastered, but I knew enough to get by). In the past, I mainly used Xcode for school projects, writing C and Java programs with it (and it worked out quite well). I always wanted to learn more about it in depth to use it for Mac programming, but there’s too much there to just go poking around.
With the previous version of Xcode, I bought a book titled Xcode 3 Unleashed. Personally, I just couldn’t follow it. The book used very complex code examples to show off the many Xcode features – but if you didn’t understand the program, then in some cases it was hard to understand what you were supposed to be learning about Xcode. I never did finish that book.
Mastering Xcode 4 seems to me to be much better at teaching Xcode. You still will be typing in programs, but they’re very small, and so you’ll be able to understand what’s going on – and what part of Xcode you’re supposed to be learning. I also think this newer book is written in an easier to understand style (at least for me). I’m about halfway through it now, and it only took me a few days. It took me considerably longer to make considerably less progress with the other book.
Xcode isn’t the only environment for creating Mac or iOS programs, but it’s loaded with features to make it easier to submit your programs to the Mac or iOS App stores (if that’s what you’re aiming for). Some of the other tools from third parties still require you to do at least a few steps in Xcode in order to get your app into one of the stores, because they can’t/don’t replicate some of Apple’s tools (that talk directly to Apple servers).
Even though this book came out just a couple of months ago, some portions are slightly out of date – it’s based on Xcode 4.1, and 4.2 is out (with 4.3 in beta!). So a few of the screen shots don’t match up exactly (but they’re close enough). Also, I noticed in a couple of lessons, when’re the author was trying to show the steps required to do something, where Xcode now automatically did some of the steps for you. That’s a bit confusing when you go to add some code and it’s already there! But it’s nice to see that Apple’s making Xcode even easier to use by automating more repetitive tasks.
This book will not teach you anything about programming in Objective-C (the main language used for programming the Mac and iOS devices). But it will give you a good grounding in the tools. I myself have done very little with Objective-C (or “Obj-C” for short), programming mostly on the Mac in RealBasic, which is a great cross-platform language (you can write programs for OS X, Windows, and Linux with only minor changes for each). But I want to move up to native Mac programming and maybe start doing some iOS programs.
So if you want to get a grounding in Apple’s programming tools, you should consider getting Mastering Xcode 4, available in paper and on the Kindle.