|This book is the perfect place for an experienced developer to start with iOS programming. I say experienced developer because this book does a great job of showing you the basics of C and the Objective-C language, but if you don't understand the basics of programming, you are probably going to get lost. Maybe not, but I found myself saying, "I am glad I already know what that is" about quite a few topics that were used to explain the subject matter. If you are experienced with C#, C, Java, or C++, you will be fine.|
This book does a great job of showing you what you need to know to get started with iOS. When you are done with it you should be able to easily move into learning more by reading more books, like iOS Programming: The Big Nerd Ranch Guide (4th Edition). You will need to learn a lot more to be proficient in Xcode and iOS.
The book is broken down into 5 parts. I have summarized each below:
Getting Started (Chapters 1-2)
This first part explains what you can expect from the book, and what the author's expect of you. It then takes you through the steps of creating your first application with Xcode.
How Programming Works (Chapters 3-12)
In this part you get an overview of C. The authors take you on a tour of some programming concepts using the functionality provide by the C language. Topics they cover include Functions, Variables, Types, if/else, Loops, Numbers, Format Strings, Pointers, the Heap, and Structs.
Objective-C and Foundation (Chapters 13-30)
In these chapters the authors take you on a tour of object oriented concepts and Objective-C. Topics covered include Objects, Messages, Memory, NSArray, NSString, Classes, Inheritance, Instance Variables, Leaks, Collection Classes, Constants, Reading and Writing Files, Callbacks, Protocols, and Property Lists.
Event-Driven Applications (Chapters 31-32)
In this part you write an iOS and a Cocoa application. While building the applications the authors introduce the Model-View-Controller pattern, setting up views, wiring up buttons and table views, loading and saving data, Interface Builder, and they discuss the role the application delegate plays.
Advanced Objective-C (Chapters 33-37)
Here the authors cover init, more about properties, key-value coding and observing, and categories.
Advanced C (Chapters 38-42)
In these final chapters the authors cover C strings, bitwise operators, C arrays, and using the command line and command line arguments.
How are the code samples? Well that will be up to you because the author's policy is this - "Given that the code samples are short. And that they often go through a few revisions. And that if I publish the code some people will read it instead of typing it in. I'm not going to make the code available."
You will need to type the examples if you want to see them in action. That is not such a big deal because the way the authors use the samples throughout the book is add this ABC code, and then in the next example delete ABC code and add XYZ code, and then leave XY, but delete Z and add DEF code. The authors tell you at the beginning of the book you are going to want to read this in front of a Mac. They aren't kidding.
Coming from a long career in C#, and before that C and C++, this was the perfect place for me to start with iOS programming. I have this second edition and the first edition. I never got around to reviewing the first edition, but wanted to make sure I reviewed this one because I feel it is an awesome asset to the experienced programmer looking to get into iOS programming.
The book also makes a good reference. Topics are short and to the point. There isn't any filler in this book, so when you need to look something up you have a nice concise explanation at your fingertips.
All in all, if you are looking to get into iOS, this is a great place to start. If you are an experienced iOS developer, it makes a nice reference for the features only used once in a blue moon.
Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition)