To follow along with this book, you’ll need the following:

  • A Mac running macOS Catalina or later.
  • Swift 5.2.4: all projects have been written to work with Swift 5.2.4 in Xcode.
  • Xcode 11.6 or later. You’ll need Xcode 11.6 or later to open and run the example apps included in this book.

If you haven’t installed the latest version of macOS or Xcode, be sure to do that before continuing with the book. The code covered in this book depends on Swift 5.2.4 and Xcode 11.6.

This book provides the building blocks for developers who wish to broaden their horizons and learn how architectures can help them build robust and maintainable applications and SDKs.

The prerequisites for this book include an intermediate understanding of Swift and iOS development. If you’ve worked through our classic beginner books — Swift Apprentice (https://www.raywenderlich.com/books/swift-apprentice) and iOS Apprentice (https://www.raywenderlich.com/books/ios-apprentice) — or have similar development experience, you’re ready to read this book.

To get the most out of this book an understanding of Apple’s new Combine framework would also be helpful. If you’ve worked through our - Combine Asynchronous Programming with Swift (https://www.raywenderlich.com/books/combine-asynchronous-programming-with-swift) book you’ll understand more regarding the reactive programming used within this book.

As you work through the book, you’ll be taken through a deep dive into different architectures for a fictional app named Koober. Each chapter will explain the theory behind each of the architectures first. The second half of the chapters will guide you through how the Koober application utilized the architecture and show you how the architecture was used within the application.

Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum here.

Have feedback to share about the online reading experience? If you have feedback about the UI, UX, highlighting, or other features of our online readers, you can send them to the design team with the form below:

© 2021 Razeware LLC