Tuesday, December 9, 2008

Digging into iPhone Programming: Some Books to Check Out

With Apple's NDA out in force. It was very frustrating to find any information outside of Apple's online documentation on developing software for the iPhone. You want to take classes? Sorry! Apple is great at having all sorts of classes on various Apple software at their stores. Not for programming the iPhone though. What about classes offered by someone else? Sorry! Websites? Books? Buzzzzzz! No dice. Thankfully the super-restrictive NDA has been lifted (of course if you follow iPhone programming development you already know that)!

There are three books that I have had my nose stuck in of late. Let's take a high-level look at each:

Programming in Objective-C
Initially, I got this book pre-NDA. I mean, Objective-C is not just a language for programming on the iPhone or the iPod Touch. It's been around for years. It is the main programming language Apple uses for their apps that run on the Mac.

Considering I had never programmed in Objective-C before much less heard of the language in the first place, this seemed like a good book for me to get.

Turns out this is a pretty good book. It won't actually show you development on an iPhone, but it will teach you Objective-C. It assumes zero knowledge of the language (which is good because that is where I was at)! It allowed me to start to get used to Objective-C's strange syntax of square brackets, declaring object references with asterisks, an initial foray into delegates and more. Don't know Objective-C? Get this book!

Once the NDA was lifted, the following two books became available for purchase:

Beginning iPhone Development: Exploring the iPhone SDK
Of the three books mentioned here, this book is my favorite and the one I have been spending most of my time with. It has spent allot of time with me going to and from work on the train. I've been reading it after dinner. I've been sitting with it and my Mac Book trying stuff out in XCode. It has been my evening reading before going to sleep. It's really a good book.

There are some things I wish were covered in more detail. I wish there was more info on tab view controllers and just more conceptual information on view controllers period. I find it hard to visualize some of the view controller/view relationships.

That being said, the book is chock full of detailed examples. The authors take you step-by-step through each example in a very thorough manner. I love the cheerful banter of the language. It's just fun reading this book! The layout of the book, the illustrations, are well done. I just want to pick it up to look at it. Does that mean I'm a geek? :P

One thing I would mention though, if you never programmed in Objective-C before, this book is not enough. There are syntax things going on that you'll be saying, "what is that for?" Best to get Programming in Objective-C to go along with it.

The iPhone Developer's Cookbook
I actually got this book before Beginning iPhone Development. It is instructional and can help you learn how to program the iPhone, but, just has the title implies it's more of a cookbook type of book. That is, it has "recipes" on how to code different things on the iPhone.

The section on view controllers was helpful to go along with what was said in the Beginning iPhone Development book. It didn't complete the picture for me though.

One thing I like about this book is the recipes included for functionality that does not necessarily show up in Apple's documentation. Like do you want your app to use that cool feature known as Cover Flow? This book has a recipe on how to do it.

Again, if you don't know Objective-C, you best get a book like Programming in Objective-C to go along with it.

Final Thoughts on These Books
If you're looking for information on how to use the Program Portal after paying your $99, you won't find much here. What you will find is a lot of good programming information to kick-start you into the world of iPhone/iPod Touch software development.


  1. Do you happen to have the ISBN identifiers for these books handy?

  2. AARon Hillegass's Cocoa Programming for Mac OS X has been helpful to me. I know it's not iPhone, but there is enough overlap with Tiger and Leopard. I've used it a lot with observers, NSTimers, and NSUserDefualts. Unfortunately his book gets a little bit light on descriptions towards the end. But it is still a good book. Thanks for the recommend on the Beginning iPhone Development book. I've been thinking about getting it.

  3. Awesome collection of iPhone development books. I also recommend checking out iPhone Development For Dummies - its a pretty extensive book that goes over everything you need to know to get starting on programming your first iphone apps.

  4. I think this may be Apples first major flop in recent years. Its just not really needed. Its a great idea and seems like another cool gadget, but I am just not compelled to buy one when I already have an iPhone and a laptop.

  5. If I don't know anything about programming... is it ok for me to start with the first book? (I mean, I know advanced excel and a little of HTML and Java)

  6. The first book is a good book to become familiar with the Objective C language. If you want to jump in and start programming for the iPhone, I would go with: Beginning iPhone Development: Exploring the iPhone SDK

  7. I purchased and used all three books over the last 18 months or so.

    Programming in Objective-C is well written, progressive and comprehensive. It does not, however target iPhone programming. That said, in Chapter 21 there is a token chapter on writing an iPhone app - a good example! If the book was focussed on iPhone api developement using Objective-C then it would be great. Nevertheless, I still use it as a reference book, now and then.

    Beginning iPhone Development is one of so many books which seek to teach you programming through coding apps. The problem generally and in particular with this book is that the apps are so complex or trivial or non-commerical that the first battle is to understand the app and the second battle is to find the principles and techniques which they are meant to be teaching. There is little is any explanation of why or how just page after page of do this and then do that.

    iPhone Developer's Cookbook is technically progressive but hardly a step-by-step guide. It is more for an advanced programmer and all the code resides in the main function - which is actaully a convenient way to learn, but not a convenient way to scale development. Again, the examples are quite complex and distract from learning principles. I had to strip a number of the examples down to the skeleton so as to isolate the principles. All the examples work fine but you will need to download the code. Overall, I have found this book to be the most useful but it is a struggle.

    Two books which I have found very useful and which are not on your list are (i) "Objective-C for iPhone Developers" by James Brannan, and (ii) iPhone for Programmers - An App-Driven Approach" by Deitel and Deitel.

    I hope my reviews assist others.


Note: Only a member of this blog may post a comment.