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.