When I see a book like this, I wonder how it can do the seemingly impossible: teach application development in a day. In reality, it is a set of 24 one-hour lessons on application development in iOS 7. I was recently contacted about doing book reviews, and thought it would be an interesting exercise to look at this book. What I found was a book that I really like not only as a tutorial for beginners, but as a reference book for those things I don’t remember or know as a more seasoned developer. This book and I have major disagreements concerning MVC , but that might be more a matter of the structure of the book.
The book is a series of 24 one-hour lessons, each building on the earlier hour’s knowledge but otherwise independent. Author John Ray starts with descriptions of the lesson in each hour, then proceeds to build a small application to show the theory. Along the way he includes asides filled with cautions, tips, and references to Apple tutorials which cover similar material. The example apps are small enough for you to code along, though you can get them online if you wish to. For some of the projects, you will need to download the finished apps to use the assets necessary to finish the project. Each chapter ends with exercises.
As an author of tutorials, I found Ray’s writing style easily understandable. Using the second person makes for an enjoyable read, as though you are sitting down with an expert in your favorite coffee shop for an hour and learning Xcode. With that same feel, the asides are often Ray’s opinion about style and nomenclature which gave me a giggle or two. For example, he admits his discomfort to saying “sending a message to an object” and would rather say he’s executing a method, something many of us with experience have probably thought. When discussing a topic, Ray often will use features that Apple documentation keeps distant from each other. When adding buttons, there is part about image assets and slicing a button to scale it here. This is one of the features that make this book such a good reference for a more experienced developer looking up a concept.
Many books seem like an updated version of an iOS 4 book, but not this one. With a few exceptions such as no mention of Sprite Kit when discussing frameworks, this one seems to have completely embraced iOS 7. Well written chapters on auto layout, image assets, and minimizing pre-ARC days to a single paragraph stand out as examples. Unlike most books, this one covers debugging and tracing features, such as break points, watch points and the CPU / Memory monitor.
There are limitations to the format, and John Ray does his best to use the hour format to keep a laser focus on the most critical issues within an hour. Often he admits if he had more time he’d go into detail about this or that. Sometimes I want more about that side note he doesn’t cover. This was quite frustrating to me at several points when I wanted that extra step. His one hour of Objective-C basics was particularly lean, barely nodding to collection types. One replacement for a longer topic I disagreed with strongly. While he lightly covers MVC for an hour, he does not cover the interaction between MVC groupings. Instead controllers directly change views in other controllers, which for MVC is just wrong. He introduces this with modal views and popovers. He might (though doesn’t) argue modals and popovers are so dependent on their calling controllers this is no big deal, but I don’t buy that argument. Ray’s use of global variables for moving data between a series of navigation controllers was like nails on a chalkboard to me. It would have taken a chunk of time to cover delegates, but this is another book where one of the fundamental parts of modular code with MVC gets ignored for the quick solution leading to crappy, buggy, and badly maintained code. That is surprising given the wealth of programming style tips Ray gives throughout the rest of the book.
Speaking of style, this is a very stylish book. The table of contents is very easy to navigate. Color illustrations help describe the concepts with plenty of screen shots and layouts to help the reader know what to do next. The layouts in Interface Builder Ray uses are not your normal computer science “plop it down anywhere” style. He thinks like a graphic designer as much as a programmer. The flat design for his gesture demo and the animated bunnies is outright stunning, and makes for good examples of good user interface design.
Overall, this is a good book, though I’m disappointed about the global variable cop-out in the navigation and tab controller hour. This is one I’d would recommend for those trying to learn iOS programming in Objective-C, though I’d skip the MVC and navigation/tab controller sections for a book or web site that follows MVC. This won’t teach you everything you need to know as a developer, but is a good first step to handle the rest. While the Xcode world exploding now with Swift, this will still be a good book in a few years to cover the basics of Objective-C based code.
Available at Amazon.com