Learning Objective-C 2.0: A Hands-on Guide to Objective-C for Mac and iOS Developers (2nd Edition) Book Review
|If I had to give this book a one word description, I would say it is 'balanced'. In the beginning of the book the author mentions that he does not want to right one of those books that list a little code and then explains the code, changes the code, explains those changes and so on and so on.|
At first he scared me. I have read some insanely wordy programming and engineering books. I have a much harder time getting through those than the type the author described. I was afraid this book would be one of those that I don't get anything out of except war stories from the author's career. That would not be all bad if the stories had anything to do with the book. I am happy to report that is not what happened.
I found the author had just the right amount of discussion around the different language features he was covering. I thought that the offer had a very no nonsense approach to all the topic that he covered.
The book is broken down into four parts. Below I have listed the three different parts, and the chapters that they contain.
Part I: Introduction to Objective-C
Chapter 1. C, the Foundation of Objective-C
Chapter 2. More about C Variables
Chapter 3. An Introduction to Object-Oriented Programming
Chapter 4. Your First Objective-C Program
Part II: Language Basics
Chapter 5. Messaging
Chapter 6. Classes and Objects
Chapter 7. The Class Object
Chapter 8. Frameworks
Chapter 9. Common Foundation Classes
Chapter 10. Control Structures in Objective-C
Chapter 11. Categories, Extensions, and Security
Chapter 12. Properties
Chapter 13. Protocols
Part III: Advanced Concepts Chapter 14. Memory Management Overview
Chapter 15. Reference Counting
Chapter 16. ARC
Chapter 17. Blocks
Chapter 18. A Few More Things
Part IV: Appendices
Appendix A. Reserved Words and Compiler Directives
Appendix B. Toll-Free Bridged Classes
Appendix C. 32- and 64-Bit
Appendix D. The Fragile Base Class Problem
Appendix E. Resources for Objective-C
One thing I really liked about the book was that the author did not use ARC throughout the book. He decided that reference counting is a very important topic to understand. The logic is that you're going to have to work with legacy code that is not going to be using ARC. There's much more legacy code out there then there is new code. He does take the time to explain how ARC works later in the book and the advanced concepts part.
I thought that I would lightly skim the first few chapters that cover the foundation of Objective-C. But as I was skimming, I found the author's writing style very nice to read, and therefore I ended up reading it word for word.
I must admit that I have been using messaging for a while now, but I never really understood messaging within the Objective-C context until I read this author's explanation of it. The author also has excellent coverage of properties and all of the different ways they can be declared.
The chapter on blocks was also very well put together. The author starts out by explaining function pointers and the issues that you can run into using them. He then does a very thorough job of covering blocks.
Every chapter in the book is a gem and overall I found this author's writing style made the book very easy to read. This book will stay by my side. It's not only a good cover to cover read, it is also a very good reference.
I would recommend this book as the place to start for anyone coming from a different find which such as C# or Java, and also as the place to start for anybody looking to get into building applications with Objective-C.
Learning Objective-C 2.0: A Hands-on Guide to Objective-C for Mac and iOS Developers (2nd Edition)
For more book recommendations check out my .NET, iOS, and Java Architecture and Development Book Recommendations for 2013