After reading many books about iOS development, these are the ones that I found most useful and enlightening. Apple documentation is very good as well, but, unfortunately, they don’t have an easy progressive path. It’s more like a modular, self contained reference repository.
Learning how to program for iOS is a huge topic that not only requires understanding of a concrete programming language and a framework, it also requires the understanding of the philosophy behind Apple products. Coding of iOS devices also opens the door to learn how to program for MacOS X as well. If you are a Windows developer, this is a great opportunity to learn how to code on a powerful UNIX platform.
I strongly recommend to read these books or at least, try to use them as a point of reference to understand what you need to learn to create a strong base that will help you, coding any application you want, and also saving a lot of time while being more productive and taking advantage of this technology.
Programming iOS 4 is, by all means, the best book I’ve ever found about iPhone/iPod/iPad development. It covers almost everything. For more esoteric stuff you have to search your way in Apple documentation, but this book will give you a clear understanding about the whole picture. It’s a dense book, with a lot of content. If you are looking for a quick guide, this is not the book for you. Anyway, if you plan to do something serious quick guides or for dummies series are not for you either.
For a more practical approach, Beginning iPhone 4 Development is like a quick reference and a learning guide at the same time. It’s really practical and has ready to use code recipes for most common patterns, such as: navigation controllers, pickers, table views and so on. This is not the book that will give you a strong understanding. For that you have Programming iOS 4, which is much better, in that sense. Anyway, I recommend Beginning iPhone 4 Development, I used it a lot and I still use it when I forget how to use common controls.
You have to read Programming in Objective-C period! The content of this book or an equivalent is essential. You can go ahead taking a dummies series and build an View Based app or a Table View app, but if you want to do something different, you will have no idea about what’s going on without Objective-C.
Learn Objective-C on the Mac covers the same content as Programming in Objective-C, but from a more practical approach. I recommend both. In fact they complement each other. Anyway, Programming in Objective-C gives a more deep theoretical explanation of the language. Believe me, you’ll need it!
If you only plan to code for iOS, you won’t need Cocoa Programming for Mac OS X. This is the best book to learn Cocoa I’ve ever read. It gives a little approach to iPhone development as well, but its main purpose is MacOS X platform. The App Store is available also for Mac, so it’s not a bad idea to learn how to code for Mac as well. Anyway, you need a Mac to develop for the iOS, so I think it’s a good idea to master these skills as well.
To be honest, Head First iPhone and iPad Development was a very big deception for me. The Head First Java and Head First Design Patterns are amazing books. But don’t let the reputation of those books influence your judgment if you plan to buy Head First iPhone and iPad Development. The book is too practical, so practical, that it’s like a funny recipe book that you can use to build apps similar to those explained… but nothing more. Table Views are a topic of tremendous importance. It’s a pattern that you can use to build countless applications but, for some reason, the topic is not deeply covered. Just to mention an example, the book spends several chapters talking about a Table View based reference application (a drink mixer) but it didn’t cover how to create hierarchical tables in a proper way. I expected more from this book, based on the great reputation that Head First series has. I found several erratas as well.
To end with this post, here you have these good online references. The one that always you have to give precedence is Apple official documentation, so I suggest you to read as much Apple docs as you can. Specially HIG (iOS Human Interface Guidelines). If you don’t follow what the HIG says, don’t complain later if your app is rejected in the App Store.
iPhone SDK Articles One of the best code examples and references out there.
Stackoverflow well, you know it! :-)
To conclude. If you plan to develop and sell apps for iOS, you will sooner or later join the Apple Development program. The forums in the portal are a huge, amazing source of information. It’s an amazingly active community. I’m sure you can find an answer for your problem in those forums.
Let me know if you have more suggestions, links and books you would like to mention.
I would love to hear about good book titles for developing games by the way :)