A Mutable Log

iOS 7 Programming Fundamentals by Matt Neuburg; O’Reilly Media

iOS 7 Programming Fundamentals

iOS 7 Programming Fundamentals, 4th Edition, is the successor to Programming iOS 6. It is a smaller tome, and a companion to Programming iOS 7 - scheduled to be released soon. As a new iOS developer, I found the book very useful to come to grips with Objective C, Foundation framework, Xcode, and UIKit. It does not cover programming topics such as multithreading, but more than makes up for that by covering newer topics such as blocks - frequently associated with asynchronous programming.

The book starts with a whirlwind introduction to C in chapter 1, where it refers frequently to the excellent C Programming Language (2nd edition) book. Objective C is covered extensively in chapters 2, 3, 4, and 5. The focus of these chapters is object-based programming, with topics such as creating classes, instantiating objects with alloc and init vs new, creating and calling methods, typecasting and the id type, blocks, subclassing and polymorphism, keywords self and super, class methods, instance variables and accessors, key-value coding, and properties. Automatic reference counting (ARC) is assumed throughout, but is covered in greater detail in a later chapter.

Chapters 6, 7, 8, and 9, cover Xcode editing environment, UI development using Interface Builder (NIB editor), accessing documentation and sample code, and project life cycle. By the end of chapter 9 you’ll be able to create a UIKit app, build it, run it in the simulator or a device, debug and unit test it, and prepare it for distribution. You’ll also know about the static analyzer, gauges, and instrumentation.

Chapters 10 and 11, cover Categories, Protocols, Cocoa Foundation framework classes, and event handling. Chapter 12 covers accessors, memory management with and without ARC, and debugging memory management problems using the memory gauge, static analyzer, and instruments (zombie template). Chapter 13 covers topics such as object visibility, notifications, key-value observing (KVO), and the model-view-controller (MVC) pattern.

The book is peppered with references to official documentation from Apple, useful tidbits of historical information such as the the meaning of the prefix NS (NeXTStep), and other technical advice. I now feel confident to commence my iOS development journey. I thank O’Reilly Media for providing an e-book for review.