A disclaimer: I am not a game programmer. But I am a techhie, who usually picks up on new things very quickly. My interest in iphone game programming began a few months ago. My first game was using just the UIKit but then I discovered cocos2d and saw how simple it makes things. You will find a zillion (literally) tutorials on the web on cocos2d (one big reason being its so simple to use). The author of this book mentions some of them in his credits page. But there is a problem with the web tutorials: While they are great to start you off, they don't get into much details on advanced things like memory optimization, etc.
Now onto this book: I've been tracking both this book, and another one (which is about to be released) and I bought the e-book version on day one of its release. The credentials of Steffen are just right (EA games). When I first started reading the book (first few chapters), I thought he was over simplifying stuff too much - for example, encouraging us to ignore apple's memory management guidelines, sticking to cocos2d autorelease mechanisms, and also using "tags" to find sprites instead of maintaining a pointer to them. This is what the cocos2d tutorials on the web say, and that is what he says too. So I thought he hasn't spent much time trying to analyze better mechanisms.
But then, as I read ahead, Steffen starts getting into details on how to pack memory, increase performance with various tips etc. that certainly went beyond what you can infer from reading web tutorials. It became obvious, once I was beyond the first 60-70 pages that he knows what he is talking about.
Here are the pros of the book:
a) It's really the first good book on cocos2D that you can buy. You theoretically could just read the many web tutorials, but some of them give you incorrect information (for example, using NSTimer directly with cocos2d - which will mess up CCDirector's pause/stop, for example). Steffen's book is thorough and well thought out and caveats are outlined in each chapter based on his experience
b) The book covers the particle system well enough. I am glad he spent time on it.
c) On Parallax scrolling, he also covers infinite parallax scrolling, which I think any game programmer doing parallax will eventually want
d) While this may be obvious to game programmers, I never knew about the coolness of SneakyInput - a 3rd party library that already implements console controls for the iOS. Steffen covers this well
e) While there are many tutorials on tilemaps (it took me 30 minutes to learn how to use tilemaps from a tutorial by SDKTutor on youtube), Steffen goes one step ahead and dedicates a full chapter on isometric tilemaps (3D effect in 2D space). That is wonderful
f) Steffen dedicates a full chapter on Box2D (and a bit of chipmunk) and the nice thing is he takes it to another chapter where he shows how to build a pinball game that integrates Box2D with cocos2D in a working game. This is great on two counts: 1) Box2D has many tutorials, but most of them stick to a bouncing ball. They don't spend too much time showing more details on how to integrate it with a CCSprite (besides that common loop code) and merge it well into a more complex cocos2d game. In Steffen's game, he takes it several notches ahead. Box2D or chipmunk play an important role in how to make a game look real by physics (think angry birds and the cool tower toppling calcuations) 2) He explains Box2D well to a point not to get into the math but enough to know how to use it
g) He covers GameCenter as well - though I have not yet read that chapter
Now the con:
a) There are several typos. I find this odd because his is not the only book. I found typos in many other apress books. This being a programming book, typos mean the code won't compile. Thats almost unpardonable. I wonder why apress isn't more diligent about this