In this article I want to give some advice as to which books will help you greatly in getting up to speed on iOS development. I browsed through many books while preparing the iOS development curriculum.
First things first: Objective-C
By far the best book I’ve seen is this one: Learning Objective-C 2.0 by Robert Clair. It covers in depth the programming language you will use to do iOS development. It contains many good and clear examples as well as exercises.
The next thing you will need to get your head around is the iOS SDK. I’ve used two books to learn this. The first book I recommend is Beginning iPhone 4 Development. The book is built in tutorial form while explaining the concepts and introducing the SDK. The examples will bring you up to speed in a very hands-on way. You write lots and lots of code, and I think that is important to get to know the new environment. The book comes with sample code that you can run as well. The version I had used XCode3. That is a big disadvantage, you’ll still need to find your way around the IDE yourself.
The second book I recommend is iOS 4 in Action. This book is quite high-level, and gives you a good overview of the capabilities that exist. It is not very hands-on however. Some of the examples and sample code are somewhat superficial and only scratch the surface, but nonetheless it is a very pleasant read.
Another great resource to learn iOS development is the Stanford CS193P course on iTunesU. You can watch it for free, and the lector explains in detail, and at a good pace the ins and outs of iOS development. It is not the easiest resource, because it is mainly targeted at the Stanford college students, but once you have a good understanding of the basics, it will get you to a higher level of understanding.
The other kind of material you should be using all the time is the official apple documentation. The quality of the documentation is great, but it doesn’t replace the books. This is the real reference material that you need when discovering new and unfamiliar api’s. There are some User Guides that you should be reading.
If you don’t feel like spending too much time reading all these resource, following a training will certainly get you up to speed a lot faster. Seeing an instructor demo the programming language, environment and explaining how to get things done is just a very efficient way to learn.
Where to go next?
Once you have a good understanding of the technologies and tools to build applications, the next step would be to consider the application development lifecycle and communicating to a back-end with REST+Json services and have a CMS in place to manage the back-end data as well.
Hope this helps.