( Originally reviewed 3/20/09 )
This is the most enjoyable computer book I have ever read. That is not a typo, it’s not an exaggeration. I have read more computer books than I can count, spanning decades. I have not had a more fun, immersive, reasonably comprehensive, easy to understand, software development book. This book has taken longer for me to review than any other I can remember. Learning a new platform can be challenging, but with this book, it was incredibly enjoyable. If you are getting started with iPhone/iTouch programming, and you are looking for a book, this one is easily at the top of the list. Start here first, you won’t regret it. Beginning iPhone Development: Exploring the iPhone SDK is outstanding in every way.
So why is this book so great?
The journey is rich. This book has a very clear purpose, to get you up and running with the iPhoneSDK quickly and competently. It succeeds masterfully. If you’re coming from the outside, with no Objective-C or Mac experience, you have a lot to learn. You have a new platform, new language, new development tools, new APIs, new GUI expectations, and (if you are so lucky) a new Mac. With all those challenges, I cannot be more impressed with how well this book handles that potential scenario without losing any focus or trying to do too much.
This book never gets distracted. It has incredible flow. It doesn’t waste time. There is so much to try and explore and understand in these pages, that you just get caught up in it. I have read a lot of books that whole chapters were just fluffy, or there to simply cover the territory. You can skim through the chapter without feeling any sense of loss. This book isn’t like that at all. I found I couldn’t breeze through this book. I was having too much fun.
Comprehension is the key
It’s easy to go over some basic concepts, and apply them with some examples. I’ve read lots of really good books that have done that. If you’re going to really become skilled, you have to have some comprehension of what is going on and why. While it wold be easy to just blaze through all the templates, like a TabBar application, this book has you build things yourself. This way you get to understand what is connected to what, and why. I think this is a critical benefit. I think its more important in the long term to understand what is going on, rather than a how-to of project templates.
MVC and Interface Builder
In order to do any Cocoa programming well, you need to embrace the model-view-controller pattern (MVC). This book does an outstanding job of connecting the objects, where, when, and why. After you get through a couple of chapters, this gets easy, and puts you in a positive work flow. I’ve found in learning Objective-C and Cocoa, that the better you embrace this, the better off you’ll be.
If you are a sloppy, Microsoft Windows kinda programmer, you are in for a rude awakening. Mac-based development requires a high level of discipline and quality just to get successful compiling. As for myself, I completely love it. I enjoy the discipline, and I’m rewarded with performance and stability. This book reinforces everything I love about Mac programming in general, as well as letting me extend it to a new platform. This book keeps you on the right track, out of trouble, and doesn’t let you go astray.
Covering the SDK territory
One of the strengths of this book is how much of the SDK is covered. You would expect a lot less from a “beginning” book. This book is for someone who is beginning, so the title is appropriate. But the reward is how MUCH of a beginning you get from this book. It’s like a collection of goodies being handed to you one at a time, and they just keep coming.
I really appreciated that there was a chapter on Quartz and OpenGL ES. The coverage of themultitouch architecture was well written. I was just engulfed with fun things to test, and it was easy to absorb. Core Location was covered, which gives you all kinds of creative ideas about using the GPS in the iPhone 3G. The Accelerometer chapter is one of the best parts of the book. It also covers the camera, which is another item that relates to the iPhone, but not the iTouch.
The part that was lacking, compared to other iPhone books, is not covering video and audio. But it more than makes up for it in its coverage of localization. With the iPhone in 80 countries now, it’s best to have that understood from your first iPhone app. I’m also glad it didn’t waste my time talking about web apps for iPhone. The mood of the book is not intimidating, which can happen in computer books in general. The prose never gets “nerdy.”
Another comparison I want to make is to the expensive iPhone camps and webinars. Personally, I felt I got a much better experience from this book than the online seminars I’ve been in. The value of this book in comparison is amazing. If you want to do a seminar, great, but bring this book with you.
The strength in Beginning iPhone Development: Exploring the iPhone SDK is how well it covers the SDK from a dead start. It gets you doing good habits now for those things you NEED to know now. This book has style and substance. It’s wonderful, polished, and relaxed. I would compare this book to Girardelli premium chocolate squares. It’s a great experience, that makes you happy, that you can’t scarf down, that you simply enjoy slowly because it’s so rich. For beginning iPhone development, you could not ask for a better book than this one.