I’m co-author of Advanced Swift, one of the (or the?) most in-depth books about Swift you’ll find.
The third edition, published in November 2017, has been thoroughly revised and expanded for Swift 4.
This book is really a masterpiece. Reminds me of other advanced books from years ago like Effective C++ and Effective Perl Programming.(Review on Amazon)
Personally, I’ve found Advanced Swift to be indispensable.(Mention in the Swift Forum)
Lucid and clear. Instead of getting lost in the details the authors do a great job of communicating how to ‘think in swift’. I can’t recommend it highly enough.(Review on Amazon)
I thought I knew Swift well — until I read this book!(Review on Amazon)
I keep coming back to this book. There’s information I can’t simply find anywhere else.(Review on Amazon)
It’s awesome. Really. I’ve never read a book about programming languages as cool as Advanced Swift is.(Tweet)
The best advanced Swift book I know. … In no other book have I found so many details and peculiarities explained so well. I find meaningful analogies very helpful, such as this explanation of the captured variables of closures:(Review on Amazon (original in German, loosely translated by me))Think of these functions combined with their captured variables as similar to instances of classes with a single method and some member variables.The tip to see a closure expression as afunction literalwas also an aha moment for me. I had never seen closures like that before.
Just finished it and I must say it is awesome.(Tweet)
Just read @objcio’s Advanced Swift chapter on Strings, and it is the best, most articulate, plain-English explanation of how Unicode works I’ve ever read. Wish I had understood this years ago.(Tweet)
Is this book for me?
Advanced Swift is for you if you have read Apple’s The Swift Programming Language and/or you have used Swift for some time, and now you want to dig deeper and really understand how everything works.
To quote from the book’s introduction:
You can get up and running developing apps in Swift without needing to know about generics or overloading or the difference between static and dynamic dispatch. You may never need to call into a C library or write your own collection type, but after a while, we think you’ll find it necessary to know about these things — either to improve your code’s performance, to make it more elegant or expressive, or just to get certain things done.
Learning more about these features is what this book is about. We intend to answer many of the “How do I do this?” or “Why does Swift behave like that?” questions we’ve seen come up on various forums. Hopefully, once you’ve read our book, you’ll have gone from being aware of the basics of the language to knowing about many advanced features and having a much better understanding of how Swift works.
Here’s a chapter overview:
- Built-in Collections
- Collection Protocols
- Structs and Classes
- Encoding and Decoding
- Error Handling
- Interoperability with C
How to buy
You can buy the e-book at objc.io. The download includes PDF, ePub, and Mobi (Kindle) files, all DRM-free. This version also includes the full text of the book as Xcode playgrounds, so you can play live with the sample code while reading the book.
If you prefer a printed book, you can order the paperback on Amazon (amazon.com, amazon.de, amazon.co.uk).