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.
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.
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.
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.
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.
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.
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.
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.