Author: Christopher Fairbairn, Collin Ruffenach & Johannes Fahrenkrug
Aimed at: Existing programmers wanting to learn Objective-C
Pros: Focuses on Objective-C in context of iOS development
Cons: Not suitable for complete beginners
Reviewed by: Mike James
Objective-C is a strange language. It has a sort of life of its own, but in practice it is mostly tied to Apple software development and recently to iOS development in particular. There are many books on iOS development that give you a short introduction to Objective-C or simply assume that you know the language or can pick it up as you go along. What do you do if you would like to get on top of Objective-C before you start to create iOS apps? There are a few books that attempt to treat Objective-C as if it had nothing to do with Apple development, but to be honest this approach doesn't really do justice to how the language is used. This particular book takes a more realistic attitude in that it attempts to explain the language in the context of iOS programming. It is important to note that this isn't a book about creating iPhone or iPad apps but about explaining the language.
This said, Chapter 1 starts off with a complete iOS application. First you install the development software and then work your way through a complete application. You also get a chapter each on data types, objects and collections. This ends the first part of the book and by this point you should have a reasonable idea of what makes the language tick.
What is odd is that while some very basic ideas are discussed there is no special mention of control statements. For example, the for loop is introduces as part of a discussion on arrays and if statements are just dropped in along the way. What this means is that you need to have a grasp of programming before you are likely to get much about Objective-C from this book. Ideally you probably should already programming in C but if this is the case then some of the early simple material is going to seem irrelevant.
The good news, however, is that Appendix B is on C - surely it should have been possible to make it appendix C. This is a lightening look at basic C coding, including conditionals and loops. It would probably be better to move this and make it an earlier chapter in the book so that beginners can't miss it. So if you are a beginner and don't know C syntax then read Appendix B first. However, notice that the overall speed of presentation of C isn't slow enough for a complete beginner.
Part II of the book deals with building your own objects. This is essentially a standard course in object-oriented programming in Objective-C. Topics covered include classes, inheritance and so on. Later chapters deal with protocols, dynamic typing and memory management. This would be a suitable course for a programmer needing to convert to the special way that Objective-C has of doing many standard tasks.
The final section is about using the framework and deals with exception handling, key-value coding, reading and writing data, blocks and finally debugging.
This is a book with a difference in that it is focused on Objective-C in its natural habitat. It isn't suitable for the complete beginner but if you have a basic idea of how to program you should be able to learn how Objective-C works and Appendix B will get you up to speed on C.
At the end of the book you will still need another book on iOS development but then this is as it should be and you can start to learn the structure of iOS secure in the knowledge that you know Objective-C.