Thinking in swiftui hero 500w

New

Thinking in SwiftUI

A Transition Guide

by and

SwiftUI is radically different from UIKit. In this short book, we will help you build a mental model of how SwiftUI works. We explain the most important concepts in detail, and we follow them up with exercises to give you hands-on experience.

Since SwiftUI is still in its early days, the book focuses on the concepts behind the framework that we believe are essential to understand. It is not a reference for SwiftUI’s platform-specific APIs, but rather a guide to honing your intuition about how SwiftUI works.

Thinking in SwiftUI is geared toward developers who have both prior experience with Apple’s platforms and a good understanding of the Swift language.

Video introduction

Book Contents

  • View Updates

    Learn how to efficiently construct and update view trees in SwiftUI.

  • View Layout

    Understand how the layout algorithm works and how to utilize the built-in layout modifiers and container views.

  • Animations

    Work with implicit and explicit animations, and learn how to create custom animations.

  • Advanced Layout

    Build custom layout containers using preferences, geometry readers, and anchors.

  • Preferences and Environment

    Learn how to use SwiftUI’s preference and environment systems for your own views.

  • Exercises

    Deepen your understanding by solving the exercises at the end of each chapter.

Video Episodes

In the videos we live code the solutions to all the exercises from the book. Furthermore, we build an angle dial control from scratch (similar to what the Photos app uses on macOS to rotate photos), and implement the tree drawing code we’ve used to create all the tree diagrams in the book in SwiftUI. The videos show how all the concepts explained in the book can be applied in practice.

Formats & Extras

Buy Book


Choose a Format
Choose a Format

You’ll need to confirm team size at checkout.

Choose a Format

You’ll need to confirm team size at checkout.

Choose a Format

You’ll need to confirm team size at checkout.

About the Authors

FAQ

Updates