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.
What You Need
FreeAbout the Cover
FreeSection I
Welcome
FreeA 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.
1There 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.
2Example App: Koober
FreeIn 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.
3We 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.
4In 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.
5In 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.
6Elements 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.
7In 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.
8In 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.
9Meet the team
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
Version history
Third Edition · iOS 13, Swift 5.2, Xcode 11
Advanced iOS App Architecture
This book takes a deep dive into modern iOS app architecture and shows you how to design clean and maintainable real-world apps.