Bookshelf

This page contains some personal book recommendations covering Cocoa and iOS Development.

Swift Programming: The Big Nerd Ranch Guide (1st Edition)

Swift Programming: The Big Nerd Ranch Guide Authors: Matthew Mathias and John Gallagher
Published: Dec 15, 2015
Website: Big Nerd Ranch

The free Apple guide to the Swift Programming Language is a good starting point but if you want a little more guidance you cannot go wrong with The Big Nerd Ranch (BNR). This is a thorough coverage written in the easy to read style of all BNR books. It makes good use of playgrounds with frequent exercises to test your understanding.

The five sections cover getting started, the basic language, collections and functions (and closures), enumerations, structures and classes and the difference between value and reference types. A section on advanced Swift covers protocols, error handling, extensions and generics. The final section looks briefly at an OS X and iOS application and Objective-C interoperability. This is a book about learning Swift though so if you want to learn iOS you need to look elsewhere.

Note: This book uses Swift 2.0 and Xcode 7.0 and inevitably there will be changes when we get Swift 3 later this year.

objc Advanced Swift

Authors: Chris Eidhof and Airspeed Velocity
Published: Mar 18, 2016
Website: objc.io

If you have been using Swift for a while and want to dig a little deeper this book is an excellent next step. If you read any of the objc.io articles published monthly up until May 2015 you will have some idea what to expect. This book picks up where the introductory books stop and explains how and when to make use of the advanced features of Swift.

The book has chapters covering Collections, Optionals, Structs and Classes, Functions, Strings, Error Handling, Generics and Protocols. The book ends with an example of wrapping a C library and interoperability.

objc Functional Swift

Authors: Chris Eidhof and Airspeed Velocity
Published: Oct 1, 2014
Website: objc.io

This book is an interesting companion to the other books on Swift. It will not teach you Swift but it will teach you how to think functionally when writing Swift. It is hard to learn Swift without seeing mention of functional programming. The authors try to demystify the topic and show how the ideas can help you write better code.

What I like about this book is that the authors go easy on the terminology. So there is a chapter on functors and monads but it is at the end of the book and not fundamental to understanding. Instead they introduce topics with a series of case studies that show for example why avoiding mutable state can lead to better code. Highly recommended once you have the basics of Swift under control.

objc Core Data

Authors: Florian Kugler and Daniel Eggert
Published: Dec 22, 2015
Website: objc.io

You know how it is, you wait for ever for a new book on Core Data and then two come along together. Luckily they are both good. The first is again from objc.io and given the other books they have published it will not surprise you that they make extensive use of Swift language features such as generics, protocols and extensions when using Core Data.

The book introduces Core Data through an example app before deep diving into the framework. The third section is an interesting look at the difficult topic of synching Core Data with a network service like CloudKit. Finally they cover some advanced topics such as searching, sorting and performance.

Core Data in Swift

Author: Marcus Zarra
Published: June 15, 2016
Website: pragprog.com

Pragmatic Programmers has taken an interesting approach with the latest update to a favourite book on Core Data. The trend seems to be for new books to use only Swift and abandon Objective-C. Here you get to choose from a third edition of the book Core Data in Objective-C or a new edition Core Data in Swift.

The content for both books is the same the only difference is the language used for the example code. You can read my previous review of the second edition. This version covers changes for iOS 9 and OS X El Capitan and is still an excellent introduction to Core Data. Step by step Marcus walks you through building a Core Data application - the sample code is available for download. As with the second edition the focus is iOS first with a chapter towards the end on how to add a desktop version.

This book is still in beta as I write this with a planned June publication date.

Cocoa Programming: For Mac OS X (5th Edition)

Cocoa Programming Authors: Aaron Hillegass, Adam Preble and Nate Chandler
Published: Apr 14, 2015
Website: Big Nerd Ranch

The last few years has seen an explosion of books on iOS and now Swift so it is great to see The Big Nerd Ranch giving Cocoa development on the Mac some much needed love. If you are an iOS developer who is curious how to create a Mac application this book should help.

The book has lots of examples and exercises to walk you through the core techniques for building Mac apps. Many of these concepts, like Auto Layout and Storyboards will be familiar to iOS developers. The content and code examples assume OS X Yosemite (10.10), Xcode 6.3 and Swift 1.2 (there are three chapters covering the basics of Swift) but I had no problem trying the examples with Xcode 7 and Swift 2.2.

If you are looking for help to develop your first Mac application this is a great book to get you started.

iOS Core Animation Advanced Techniques

Author: Nick Lockwood
Published: Aug 13, 2013
Website: iOS Core Animation: Advanced Techniques

If you want to understand and exploit Core Animation this is the book to read. It explains the underlying concepts better than anything else I have read and then gets into advanced animation techniques as well as practical tips on how to measure and fix performance issues. Read my full review

Effective Objective-C 2.0

Author: Matt Galloway
Published: May 20, 2013
Website: Effective Objective-C 2.0

A great reference book for those that want to master Objective-C. The book is organised into 52 separate articles organised loosely around seven topics (Accustoming Yourself to Objective-C, Objects, Messaging, and the Runtime, Interface and API Design, Protocols and Categories, Memory Management, Blocks and Grand Central Dispatch, System Frameworks). Read my full review

Cocoa Design Patterns

Authors: Erik M. Buck, Donald A. Yacktman
Published: 1 Sep 2009, Addison Wesley Professional
Website: cocoadesignpatterns.com

This book is highly recommended to both iOS and OS X developers who want to understand common Cocoa design patterns. It has a detailed discussion of the Model View Controller design pattern as well as many other fundamental Cocoa patterns and best practises. Once you have grasped the basics of Cocoa and Objective-C this is the book to read to understand why Cocoa works the way it does. You can also read my full review of this book.