Author: Lou Franco & Eitan Mendelowitz
Audience: Complete beginners
Reviewer: Lucy Black
This looks like the book to get you started on iOS. Its got a cover with a cartoon character and if you flip though you will see lots more cartoons. This must make it all seem easy.
The big problem is that getting deep into iOS is difficult. The reason is that Cocoa is a big old UI framework and Objective C, the language you have to learn to use it, is slightly different from the rest. Some people even describe Objective C as a "difficult" language, but once you get to know it then you discover it is no more difficult than any other. The best description of Objective C is that it is different and uses an approach to object-oriented programming that has mostly fallen out of favour over time. This can make it harder for the programmer to come to terms with Objective C ,and hence iOS development, than the complete beginner.
The first chapter of this book gets you started very slowly - or steadily depending on your point of view. You discover the Apple dev website, installing the SDK and how to sign up and pay your money to be a registered Apple developer. Next we have a quick look at Xcode and use the Interface builder to create a "hello world". Of course, no code is harmed in this production and even the most beginner of beginners should be able to follow what is happening. The cartoon density is also high enough to keep you completely distracted from any difficulties you might be having.
At the end of Chapter 1 you are going to be certain that iOS development is in your grasp - of course you haven't got to anything difficult just yet. Chapter 2 is where it moves on to the real thing, or sort of gets there. Rather than focus on the production of code, we have a long explanation of the MVC architecture. Yes, this is core to iOS, but you can mostly ignore it when getting started. Following this we have a brief introduction to objects in terms of class diagrams. All very theoretical, but it sets you up for what is about to follow.
Chapter 3 is called "Coding in Objective C" and this is where the programmers are separated from the UI designers. This is where the book first attempts to explain a lot of detailed ideas. as well as tackling where you put various things in the file. Things get very fast in this chapter. Common types are introduced in a table without much explanation. It also covers the format of messages, including the mysterious messages that have two parameters - why exactly is the syntax different from a single-parameter message? It rapidly becomes overwhelming - but there are still the cartoons to read so it can't be too bad.
From here we move to Part 2 of the book, with chapters that introduce more and more objects and messages on the way to building a full MVC application. The examples are of a game with touch and animation, using the camera, using database and locations and maps. There are lots more class diagrams for the designs and then some code that implements them. There is some emphasis on making your app look pretty - types of icon, images for buttons. As you move on the amount of code increases, the number of cartoons decrease but there are still plenty of class diagrams.
The final part of the book is about getting your app published in the App Store. It is about debugging and packaging your app ready to go and it's quite short.
When you reach the end of the book you will have seen a lot of topics covered, but you will have learned very little about programming. You will have encountered some high level ideas such as MVC and objects but you wont have much idea about loops or conditionals. If you already program in another language and need no help with such ideas, then perhaps pointing out the differences between Objective C and more common approaches to objects would have been helpful.
Overall I got the impression that this book would rather stay well away from code to make the whole thing seem easier. For the beginner this might work, but it isn't going to turn you into someone who can do new things. Perhaps it is just a reflection of how difficult modern programming is and how much you have to know to be competent. If anything the cartoons tend to promote the idea that you really don't have to be competent to get the job done - in most cases this isn't true.
This is a simple and easy-to-read approach to iOS development but even so I found it confusing and tough going, apart from the cartoons. It had a lot of theoretical baggage that, while important in the long run, could be left until much later. There are books that make iOS development seem easier, but only if you can program.
Would this suit a complete beginner? I can't really be sure. It might be worth a go, but a much better bet would be to learn how to program using something simpler and then use one of the other books on iOS to approach this difficult platform.