Author: Jesse Feiler
Aimed at: Beginners who already program another language, preferably C or C++
Cons: Muddled, requires you to know C before your start
Reviewed by:Harry Fairhead
Objective C is the other object oriented version of C and it's important because it is the main way to create iOS applications. Can you learn it in 24 one hour lessons?
This is a very strange book and there might be readers out there who would like it, but I can't quite imagine who they could be. It attempts to be an introduction to Objective C, and at first you do get the feeling that it is going to tell you something in a way that makes it understandable - only you keep moving on through chapters without ever getting to the "meat" of the subject.
It claims to be aimed at the beginner but the one group it most certainly isn't suitable for is the beginner. You need to know something about programming to get much from this book. My best guess is that the author has a C++ programmer in mind while describing features of Objective C but it is difficult to be certain.
There is also the problem of deciding if you should teach Objective-C as a pure language and ignore its use in iOS app development. This book takes the approach that the two cannot be split up and so Cocoa and the rest of the libraries and tools are featured from the start of the book - but it isn't really a "how to create an iOS app" book.
Part 1 of the book is about getting started and this explains how to get set up and how to use Git and the compiler. There is some discussion of the nature of Objective-C as a language descended from Smalltalk rather than Simula-like C++, but most of this isn't going to make any sense unless you already understand object-oriented programming. It is also worth mentioning that the screen dumps included, despite being in full color, are next to impossible to make any use of. They are simply too small. Not only can't you read any of the text they contain, you can't really see what the important features are.
Part II is about getting to know Objective-C, but it isn't a step-by-step introduction and it isn't particularly logical in presentation. It explains how to declare a class and how to create an instance but without any clear overview of what is going on. As you read, you keep feeling that the book is about to begin and will explain things to you, but no. The book basically never gets beyond explaining a few features that Objective-C does differently from C++ and most other object-oriented languages. It never manages to get down to a detailed explanation of the language. If you are a beginner then it will just seem completely out of reach of your understanding.
Part III deals with Expanding and Extending classes which, given how little you have learned about programming in Objective-C, is about all you can hope for.
Part IV is about exceptions and other slightly advanced topics and this is where the book comes to an end.
As already stated, this is a very strange book. It is as if the author wasn't quite sure what he had to tell a reader to get started in Objective-C. You need already to know about loops and conditionals, because these are not described at all. You at least need to know how to program in C to follow any of the descriptions. Even if you do know the basics of C, what is going on with classes and object is still going to be a mystery to you at the end of the book.
Overall this is a book to avoid as its only real advantage to the average reader is that it is over in 24 hour-long chapters. If you want to program in Objective-C and you are a complete beginner then look for another book. If you are an intermediate programmer, know C and probably C++, then you might get something more from it but I doubt it. There are better books on the topic.
Try: Objective-C Fundamentals or
Objective-C: Visual QuickStart Guide
but bear in mind that neither is up-to-date with the latest iOS development environment. If what you are really interested in is iOS Development see iOS Programming; The Big Nerd Ranch Guide