‘iPhone Cool Projects’ is a collaborative work of 7 developers/technical authors (Gary Bennett, Wolfgang Ante, Mike Ash, Benjamin Jackson, Neil Mix, Steven Peterson and Matthew “Canis” Rosenfeld) who bring their diverse experience into one inspiring location. With each new chapter, a new developer takes the stage and explains some potentially advanced and overwhelming concepts that many developers face from time-to-time. Real world projects allowed them the opportunity to work on some very exciting projects. They then share the experience and knowledge that they gained and present it in a way for the reader to get a clear understanding of the logic they used when developing these projects.
As stated in the introduction: “This book is for all iPhone and iPod touch developers who want to know more so that they can tackle more difficult programming tasks on their way to creating the next great app”. This book is not for developers who are just beginning iPhone development. As the introduction points out (and which I wholeheartedly agree with), for beginning iPhone development, check out ‘Beginning iPhone Development’ by Dave Mark and Jeff LaMarch. However, if you have a basic understanding of iPhone development and are ready to explore some more advanced concepts, then this is the book for you.
The developers in the book each touch on very different scenarios that you may face in development. These are: game timers and logic, peer-to-peer networking, multithreading, implementing multitouch, game development with cocos2d, streaming audio and finally developing with Core Location, XML, and SQLite. With such a wide range of topics, it’s likely that you won’t be working with everything that is covered in the book. On the other hand, that just means that this book will hold something for everyone.
One of the great things about this book is the authors strive to take these different advanced concepts, which some might find a little frightening to tackle on their own, and present them in a simplified way that invites the reader to continue challenging themselves to find a way to overcome the problems they face in development. For example, in chapter 3, Gary Bennett discusses multithreading. Though I have never worked with multithreading before, I found the chapter to be very informative and easy to grasp. Gary first helps you to understand what threading is. He then explains some pitfalls to avoid when threading. Finally, he includes some code for an app to show you how to implement it.
In addition to the easy explanation of key concepts, I found it quite refreshing to see the logic that other developers use to overcome the obstacles they face. As we all know, there may be many ways to approach any particular problem. The authors here explain the logic that they used when programming and why they did or did not approach the problem in that way. I find that getting a feel for the logical process that others use in development helps me think of problems from a different angle in my own work.
In conclusion, if you are an iPhone developer or are studying to become one, this book is a must read. It achieves its goal of helping its target audience to get into advanced development projects, it presents the information in a very clear way and above all, it’s packed with useful information that you will be able to use in your own projects.