Bookshelf

Some Personal Book Recommendations

Advanced Swift - objc.io

Authors: Chris Eidhof, Ole Begemann, Florian Kugler, and Ben Cohen
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.

Advanced Swift - objc.io book cover

The book has chapters covering Collections, Optionals, Generics, Protocols, Strings, Enums, Mutability, Memory Management, Error Handling and interoperability. The book is regularly updated, most recently for Swift 5.

Pro Swift

Author: Paul Hudson
Website: Hacking With Swift

This book came highly recommended by a number of people and reminds me of another book on my bookshelf - Effective Objective-C 2.0 by Matt Galloway in that it is a series of articles loosely organised around seven main themes. Oh and it includes over 70 videos if you prefer to learn by watching rather than reading.

Pro Swift book cover

It’s not a learn Swift book (check Paul’s other book Hacking With Swift for that). What it will do is help you progress beyond the basics to a deeper understanding of the Swift way to do things. You can read this cover to cover but it is also great to dip into when you are struggling with a topic.

The seven chapters cover Syntax, Types, References and Values, Functions, Errors, Functional Programming and Patterns (including protocol oriented programming, MVC and MVVM).

Functional Swift - objc.io

Authors: Chris Eidhof, Florian Kugler and Wouter Swiersta
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.

Functional Swift - objc.io book cover

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. As you might expect it has been fully updated for Swift 3.

Core Data - objc.io

Authors: Florian Kugler and Daniel Eggert
Website: objc.io

The third book on my bookshelf from the team at objc.io! 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.

Core Data - objc.io book cover

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.

It has been updated for both Swift 4 and the NSPersistentContainer introduced in iOS 10.

Some Classics From The Archive

iOS Core Animation Advanced Techniques

Author: Nick Lockwood
GitHub: nicklockwood

This is an old book now but I still find it useful when I want to understand core graphics and animations.

iOS Core Animation book cover

Nick 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

This is an even older book but I consider it a classic and if you are learning Objective-C I would still highly recommend it.

Effective Objective-C book cover

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
Website: cocoadesignpatterns.com

An even older book (from 2009) than the last one - what is going on? One of the advantages of Objective-C and Cocoa being so mature is that the information in these older books is still useful today.

Cocoa Design Patterns book cover

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.