Reviewed: July 2013
I will start this review by coming clean. I hate Obj-C. Always have. I remember trying it years ago and thinking that it was just an unholy mess that deserves to be consigned to history as a bad mistake. For some reason, Apple decided to use it for iPhone/iPad development and, well you know what happened next. Thankfully, with the advent of Xamarin.iOS (the new name for monotouch) apps can be written quickly and easily in .NET. The compiler then does some clever stuff and the resulting code is allowed to be distributed on the Apple store. All I can say is thank goodness!
More over, thank goodness for this book! As with the Android with Mono for Android book, there are precious few books for .NET developer writing code on Apple devices. Thankfully, this book does a damned good job at filling that void. Writing for Apple devices is a much tougher act than writing for Android and the first couple of chapters cover how to create the UI using Xcode and how to connect the buttons up to the viewer so that code can be written. As with the Android book, the authors go to great lengths to simplify this process and to keep everything as clear as possible.
Everything up to chapter 5 is to do with the user interface. You may think 4 chapters is a fair bit for UI, but given that Apple places such a high value on the user experience, this can be considered slightly short.
The next part of the book is more the real nuts and bolts of iPhone programming – data, more on the UI, maps and all of the funky parts you expect on the phone including (importantly) how to communicate with the outside world, video, sound and talking to other applications.
Unlike the Android book, there is a chapter given over to knowing just enough Obj-C to get away with things. Why is this? Well, despite Xamarin.iOS doing a brilliant job, the likes of NSObject, NSString et al are still there and it is useful for bringing over code in ObjC to C# where the book has not mentioned something (come on, it’s a book and has a finite number of pages and despite their best efforts, not every problem that can be encountered has been covered!)
Quite simply put, for those writing code on Apple devices using Xamarin.iOS, this is a must.