Author: Steven Holzner
Publisher: Peachpit Press
Aimed at: Those who can program already
Pros: Fast-paced introduction to object-oriented ideas
Cons: Short on motivation and explanation
Reviewed by: Ian Elliot
An introduction to Objective-C is what you need to start programming for the iPhone - but is this the one you need?
Objective-C is suddenly more important than it used to be for one simple reason - it is the language that you have to code iPhone and iOS 4 apps in. Many books on programming the iPhone or the iPad include a short section on learning Objective-C, which is often sufficient if you already program in another object-oriented language. If you don't then you probably need a book like this one - but is it exactly this one you need?
The treatment starts off simply enough with the usual Hello World program. From this beginning we work our way towards object-oriented thinking in Chapter 5. This means that flow of control and data types are introduced in roughly 79 pages. You can guess from this that the pace is fairly fast. Each main idea is introduced in fairly simple language but other connected ideas are often just mentioned in passing. The author also chooses to introduce some advanced ideas early - pointers for example.
Object-oriented ideas are also introduced quickly. Within four short chapters we have gone from "this is an object" to inheritance and on to advanced concepts such as posing and protocols. The final three chapters are basically a collection of more general advanced topics - arrays and dictionaries, memory management and exception handling.
You will find few references within the book to building applications or using libraries - this is about learning the Objective-C language most in isolation from any bigger issues. Each of the ideas is introduced with a very short explanation and an example - there is a lot of white space. The language used is short and to the point and more like a well-written manual than the sort of book that tries to motivate you with bad jokes every paragraph. It also doesn't really treat Objective-C version 2.0 as some of its advertising blurb suggests - the book doesn't actually list which version it is working with. This isn't too much of a problem as version 2 most just adds some additional facilities.
The conclusion has to be that if you are a complete beginner this book isn't going to get you very far - its pace is too quick for most. Similarly if you need a gentle introduction complete with lots of encouragement and jokes - find another book as this one is to the point and brief. If you know enough programming already - say know how to write and use a loop and know what an object is - then you might find this a good and fast introduction to Objective-C. Recommended but only to the right reader.