Implement Modern Clean Architectures in Your iOS Apps!

Apps are becoming more complex, and development teams are being pressured to deliver faster results in the face of constantly changing requirements. Now, more than ever, you need to understand and apply good software architecture practices in your projects.

Advanced iOS App Architecture thoroughly explains multiple modern iOS architectures, and demonstrates their usage in real-world apps.

The first half of the book introduces you to different aspects of iOS app architectures. We recommend reading these chapters before diving into any of the specific architecture chapters to get a good handle on the concepts involved.

The second half of the book explores multiple architectures, one per chapter. Each architecture chapter begins with a little history, followed by a detailed theory walkthrough. The remainder of each architecture chapter focuses on applying the theory to iOS app development.

Each architecture chapter concludes by covering the pros and cons of that architecture. You can read this section in order — or jump straight to the architecture that interests you. It's your choice!

This book is for iOS developers who build apps using Swift. The material in this book assumes familiarity with design patterns and with basic architectures — such as MVC — and basic architecture concepts, such as inversion of control.

Before You Begin

This section tells you a few things you need to know before you get started, such as what you'll need for hardware and software, where to find the project files for this book, and more.

Section I

A quick introduction over what you'll be learning this book, what the goals are of this work, and what you'll need to get started.

1

There are a lot of aspects to consider when selecting an architecture for you and your team. This chapter provides a high-level overview of these aspects, such as qualities to look for in an architecture and more.

2

In this book, you'll use a fully-fledged, real-world example app, reconfigured each chapter for the specific architectures that this book will cover. The app used through this book is Koober, a ride-hailing app with just enough complex features to give you a feel for different architectures.

3

Objects & Their Dependencies

We all depend on one thing or another in the real world, and architecting your applications is no different. You'll learn how objects depend on other objects to prevent creating monolithic objects from doing all the work, and instead see how comparmentalizing can make them more reusable and testable.

4

Architecture: MVVM

In this chapter, you'll be taken through the history of MVVM and its concepts. You'll then walk through the Koober application and explore how it's been architected using the MVVM architecture approach.

5

Architecture: Redux

In this chapter, you'll be taken through the history of Redux and its concepts. You'll then walk through the Koober application and explore how it's been architected using the Redux architecture approach.

6

Architecture: Elements, Part 1

Elements is an architecture meant to make iOS development fun and flexible. Elements organizes your codebase and makes your project easy for anyone to navigate. This organization allows you to make changes to layers of your application without affecting stability. A set of "Elements" make up the architecture.

7

Architecture: Elements, Part 2

In Part 1 you learned about Elements and how to design User Interface and Interaction Responder elements. In this chapter, you'll take a deep dive into two more elements: Observer and Use Case.

8

Getting Ready for SwiftUI

In this chapter, you'll be given an introduction to SwiftUI which Apple have released at WWDC 2019. You'll then walk through how to get Koober ready for SwiftUI while keeping your current architectural approaches.

9

Meet the team

Contributors

Josh is a freelance iOS engineer who loves building thoughtful user experiences on mobile. He's built apps for the iPhone and...

Author

René Cacheaux

René, @rcachATX, is an iOS Client Architect at Atlassian, where he is known for his expertise in user interface engineering...

Author

Darren Ferguson

Software Developer originally from the U.K. but now residing just outside of Washington D.C. in Northern Virginia. Currently...

Fpe

Who is this book for

This book is for intermediate iOS developers who already know the basics of iOS and are looking to build apps using defined architectures, making apps cleaner and easier to maintain.

Concepts covered in this book

  • Navigating Architecture Topics
  • Managing Dependencies
  • MVVM Architecture
  • Redux Architecture
  • Elements Architecture
  • SwiftUI

Version history

Third Edition · iOS 13, Swift 5.2, Xcode 11

v3.0 · Sep 1 2020 · René Cacheaux & Josh Berlin

Advanced iOS App Architecture

See buying options

Hide buying options