v.
Introduction
Welcome to Expert Swift! The book for intermediate Swift developers looking to enhance their skills and understanding of the language.
Swift is a powerful and wonderful language, used by many developers around the world to build iOS, macOS, tvOS and watchOS apps. If you’re reading this book, then you’ve probably built a few apps yourself.
Most of the books from raywanderlich.com are “By Tutorials”, however this book is a little different. Since this is an advanced book, we didn’t build a tutorial to accompany each chapter. Instead, we go deep by covering low-level concepts as well as high-level abstractions, by using sample projects to illustrate how the advanced topic might be used in real life.
You should expect some longer chapters. Trying to explain advanced topics, like the ones this book covers, is not an easy task. Acquiring this advanced knowledge is worth it though, and as you read through the book, you’ll find yourself wanting to jump to your existing apps and implement the techniques you learn.
Take a deep breath and enjoy the ride!
How to read this book
Each chapter of this book presents some theory on the topic at hand, along with Swift code to demonstrate the practical applications of what you’re learning.
The chapters are independent, meaning you can read them in any order you’d like. The only exception to this are the Protocols (chapter 3) and Generics (chapter 4) chapters, which share one sample project.
Some chapters provide a starter project, while in some you’ll use playgrounds to write code from scratch.
This book is split into three main sections:
Section I: Core Concepts
The first section of this book covers the basic building blocks of the Swift language: The type system (enums, structs and classes), Protocols and Generics. We’ll start with a brief refresher of each topic and then jump right into the behind-the-scenes implementations.
The content of this section will expose the inner workings of the type system, as well as get you intimately familiar with protocols and generics.
Section II: Standard Library
This section covers the base layer of writing Swift programs: Numerics, Ranges, Strings, Sequences, Collections, Codable and the less obvious, but very important topic - Unsafe.
As you’d expect from an advanced book, we don’t only explain these topics, but also investigate how they’re built, how they’re represented, and how to use them effectively.
Section III: Techniques
The final section of this book covers advanced techniques to super-charge your Swift powers, and use all of what Swift has to offer.
We’ll cover topics like Higher order functions, Functional reactive programming, Objective-C interoperability, using Instrumentation, and API design.