Author: Craig Hockenberry
Publisher: Pogue Press
Aimed at: Fantasy programmers
Pros: An easy read
Cons: Never tackles programming issues
Reviewed by: Harry Fairhead
This is a gentle introduction to iPhone development - so gentle that it's arguable that it never really gets into the topic at all.
The book is divided into three parts - Getting Started with Cocoa Touch, Development in Depth and The Business End.
It starts off with a discussion of how to get the SDK and how to get a development machine - basically buy a Mac. The chapter ends at page 28 where you have just created and compiled your first default application. This is a good way to get started. The instructions are already a little out of date but if you don't have the sense to modify the instructions to use the SDK in front of you then you probably aren't going to make it as an iPhone developer.
Chapter 2 dives into Objective-C which is a brave move. The level of introduction is a little strange in that it assumes that the reader knows a little C and has some vague ideas about programming and just needs to have the basic ideas of objects introduced. However, the writing style suggests that you need a gentle spoon feeding of the ideas but the speed and complexity of the ideas gives the opposite impression.
Some readers are going to be left completely behind without realising that this is tough stuff that is being introduced at a breakneck speed. If you really can cope with such advanced ideas at this speed you probably don't need the baby talk. It might suit as a refresher course if you already know C++, Java, C# or some other object-oriented language.
From this point on the rest of the first section uses Objective-C to extend the basic project. We have a lightning introduction to the MVC model, we build controls in code and then use Interface Builder to create something more advanced.
Chapter 4 is, to my mind, very strange but it's an attitude I've noticed from other iPhone programmer book. It starts off explaining how the iPhone is small and fingers are big and so the UI has to take this into account - well yes. Then we enter a world of childhood with sketches and cardboard cut-outs to mock up the UI. Well what can I say - I'm a programmer not a four year old in kindergarten. If I want to mock-up a UI then I'll use software not scissors. If you prefer glue, crayons and paper then you might like the chapter a lot more than I did.
The second section consists of just two chapters and I'm not really sure why it's marked out as a section as it just carries on with the project development started in the first section. However, if you are expecting to learn how to use the iPhone's additional features and facilities first you have to go through some minor fiddling with the UI, set your product name, get an icon, join the iPhone developer program and basically do anything other than get on with programming.
Chapter 6 finally starts to tell you more about programming but it's over almost as soon as it starts. It is also fairly thin on explanations that help and you don't really get an overall feeling for what the API provides.
The third section is basically about how to get your app into the app store. It is about beta testing, how to sell your app, advertising your app, looking after your customers and so on. It clearly isn't about creating a killer iPhone app but if you did succeed in creating such a thing then you might have the problems and tasks that this section talks about.
There just isn't enough about iPhone development in this book. It will get you started but you won't get much beyond a very basic app without more detailed, and probably difficult, information. This is one way to make a book on a technical topic simpler - just avoid anything difficult and write about peripheral aspects that the majority of readers can cope with. It seems to be aimed at the sort of reader who is going to fantasise about creating an iPhone killer app and make a lot of money in the app store. It doesn't seemed to be aimed at the programmer wanting to create something that does something new or different. It also isn't suitable for the complete beginner - you need to have some idea about Objective C to follow much of what is going on.
Only buy this book if your real objective is to day dream about managing an iPhone app business and don't really want to do any real work towards programming it other than making cardboard cutouts.