Author: Dan & Tracey Pilone
Aimed at: iPhone beginners
Pros: An easy read
Cons: Not comprehensive
Reviewed by:Ian Elliot
Head First books are aimed at people who don't really like traditional "textbook" approaches to learning something. Will it work for you?
This is the second edition of a book originally just on iPhone programming. Now it includes 100 more pages and covers iPad programming as well. Given that iPad programming isn't all that different from iPhone programming this isn't unreasonable - perhaps the title should be changed to iOS programming, but this would risk its intended audience misunderstanding what it was about.
This is a fairly basic introduction to iPhone/iPad programming but it still isn't suitable for the complete beginner. To get much out of it you need to be able to program, preferably in Objective C, but at the very least an object-oriented language such as Java, C# or VB .NET. Of course, you are also going to need a Mac and a development environment but the book tells you how to get everything organized.
Roughly speaking if you are happy with writing code in some language and know what properties and objects are then you should find this at the right level. Even so there is a lot of strictly unnecessary theoretical stuff like the MVC model when strictly speaking all that is being done initially is to use a markup language and some code behind to create a simple app.
Of course being a Head First book the approach is fairly chaotic in terms of layout, with extra boxes, jokes, Q&A sessions and so on. If you aren't used to the style it can either seem childish or refreshing, depending on your learning style and personality. In this case it works fairly well because the overall structure of the book is good.
If you are following things through in order, then the one thing you should do is to read the Q&A session at the end of each chapter before you complete the chapter as it often puts things into context. The explanations are slow and steady and the applications are just enough to allow you to see how things work.
The explanations of how things work mostly use a discovery process. For example, you are shown how to construct a GUI for an application by first sketching out some possible designs and then one is selected and the reasons given. Then you rough it out using the designer, move on to making it do something by writing some code - but it doesn't work! Don't panic we just have to hook up the code to the user interface objects.
This discovery process is good and you should find that you are keeping up with, if not running ahead of, the authors - this is the reason you should probably read the Q&A at the end before assuming that there is something wrong or missing from the chapter. Missed features and facilities are often missing just so that you will notice they are needed.
Although the book has iPhone and iPad in its title it really majors on the iPhone - as did the first edition. For example in Chapter 1 you build your first iPhone, not iPad, application. Chapters 2 to 4 explain the way a user interface is put together from a simple view to multiple views, without much reference to either iPhone or iPad. Chapter 5 reviews what you have done and works the sample project over with a more sophisticated view.
Chapter 6 is about working with data. Chapter 7 deals with migrating the iPhone example to the iPad - this is the first chapter in which the iPad is the star. Chapters 8 and 9 are about enterprise applications, working with Core Data and SQLite. Chapter 10 looks at geolocation and Core Location services. Finally Chapter 11 returns to some iPad issues but mainly it's about creating a good user interface.
For a fairly thick book it doesn't cover everything you will eventually need to know - in particular it doesn’t explain how to use the accelerometer, internationalization and device orientation. This isn't unreasonable in what is an introduction to iOS.
The conclusion is that if you like the Head First approach then this is one of the better books in the series and should succeed in getting you started with iOS development.
The main problem I have with Head First books, and this is particularly bad in this case, is the miss-match between the level of the material being presented and the style of presentation. It is as if someone was trying to teach you general relativity in mock baby talk. OK, this isn't relativity, but the authors choose to present some sophisticated ideas and the reader is supposed to have mastered Objective C?
If you can program in Objective C you probably don't need this sort of approach. If you are already a reasonably good programmer then there are books that will take you further quicker but without the quotes, quizzes and fireside chats.
The final verdict is, this is as good of its kind of book gets. If you already like Head First guides then you will most probably like this one. Otherwise treat this book with caution.