Programming iOS 5: Fundamentals of iPhone, iPad, and iPod touch Development Book Review
I have read several books on programming with Objective-C, but this is by far the most comprehensive and well put together. One book I would recommend to anyone coming from the .NET world is Migrating to iPhone and iPad for .NET Developers.
After advising the reader to brush up on their C by reading certain parts of C Programming Language, and then spending a chapter showing how C relates to Objective-C, the author has a really nice overview of Objective-C. The overview is Part I of the book and it is 5 chapters long. The chapters include Just Enough C, Object-Based Programming, Objective-C Objects and Messages, Objective-C Classes, and Objective-C Instances.
Part II IDE includes chapters on Anatomy of an Xcode Project, Nib Management, Documentation, and Life Cycle of a Project. In part II the author goes into detail about the architecture of the project and the files included in the project. He does a great job of explaining nibs, the coding environment, testing, debugging, and provides an overview of the steps taken when submitting your app to the app store. The author also points out and shows you how to take advantage of the Xcode documentation.
Part III is all about Cocoa. It includes chapters on Cocoa Classes, Cocoa Events, Accessors and Memory Management, and Data Communication. The author does a great job of explaining Automatic Reference Counting (ARC) in this section.
Part IV Views contains chapters on Views, Drawing, Layers, Animation, and Touches. This part is all about paths, clipping, gradients, colors, patterns, transforms, shadows, points, pixels, layers, sublayers, hierarchy, resizing, positioning, depth, borders, everything about animation, touch events, gestures, and hit-testing. In other words a ton of information about views is covered in this part.
Part V Interface includes chapters on View Controllers, Scroll Views, Table Views, Popovers and Split Views, Text, Web Views, Controls and Other Views, and Modal Dialogs. The understanding you gain of view controllers in this part of the book is amazing. The author did an awesome job explaining them and how they relate to rotation.
Part VI introduces some of the other Cocoa frameworks available including Audio, Video, Music Library, Photo Library and Image Capture, Address Book, Calendar, Mail, Maps, and Sensors.
Part VII is called Final Topics. In this part of the book the author introduces Persistent Storage, Basic Networking, Threads, Undo, and includes an Epilogue.
The downloadable code is very well organized and usable. It is broken down into folders by chapter and page number which makes it very convenient to find the sample you want.
This is by far one of the best programming books I have ever read. The author's approach and writing style made it a pleasure to read. He does a great job of explaining complex topics and always covers everything in depth.
If you are an iOS 5 developer, you owe it to yourself to buy this book and keep it at arms length!!!
Programming iOS 5: Fundamentals of iPhone, iPad, and iPod touch Development