Some Personal Book Recommendations
Advanced Swift - objc.io
Authors: Chris Eidhof, Ole Begemann, Florian Kugler, and Ben Cohen
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, Generics, Protocols, Strings, Enums, Mutability, Memory Management, Error Handling and interoperability. The book is regularly updated, most recently for Swift 5.
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.
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
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. As you might expect it has been fully updated for Swift 3.
Core Data - objc.io
Authors: Florian Kugler and Daniel Eggert
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.
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
This is an old book now but I still find it useful when I want to understand core graphics and animations.
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.
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
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.
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.