Selection Is Not Navigation in SwiftUI
Published on 07 May 2026Learn how to model list selection in SwiftUI without leaking navigation, domain identity, or behavior into the wrong place.
Practical software architecture and design for iOS engineers.
Learn how to model list selection in SwiftUI without leaking navigation, domain identity, or behavior into the wrong place.
Learn how to keep Jetpack Compose ViewModels focused on UI state, screen events, and presentation mapping.
Learn unidirectional data flow in SwiftUI with view intents, use case outputs, ViewModel state, and flow-owned navigation.
Learn how to reason about architecture overkill, adapters, dependency inversion, and boundaries in large Swift apps.
Understand factories, builders, and composition roots in Swift, and learn where each construction pattern belongs.
Learn common SwiftUI MVVM mistakes and how to keep ViewModels focused, testable, and easy to compose.
Learn how to test architecture in Swift by focusing on behavior, boundaries, contracts, and meaningful composition.
Learn architecture decisions to avoid in new SwiftUI apps, from global state to over-abstracted networking and hidden dependencies.
Learn when the Repository pattern helps Swift apps, when it becomes a wrapper, and how to design useful data boundaries.
Learn dependency injection in Swift without ceremony using initializers, factories, environment values, and composition roots.
Learn why Swift protocols are not architecture by themselves, and how to use them as meaningful boundaries.
Learn when use cases help iOS architecture, when they add noise, and how to keep them focused in Swift apps.
Learn how to refactor an iOS feature toward better architecture gradually, without rewriting the whole app.
Learn how to organize iOS feature modules using vertical slices, layers, and boundaries that make change easier.
Learn the composition root in pure SwiftUI apps using @main App, factories, observable object ownership, NavigationStack, previews, and environment tradeoffs.
Learn the composition root in UIKit apps using SceneDelegate, factories, flows, dependency wiring, and testable boundaries.
Learn the Flow pattern in UIKit and how it keeps navigation reusable, testable, and separate from view controllers.
Learn clean MVVM in SwiftUI using use cases, view models, adapters, and composition root wiring.
A practical definition of good software architecture: change-friendly, testable, maintainable, and useful to the team.
Learn practical polymorphism in Swift using protocols, decorators, strategies, and composition to keep growing codebases maintainable.
Learn unidirectional data flow in iOS architecture and how it clarifies MVP, use cases, presenters, and domain outputs.