Where Errors Belong: Use Case Outputs, Not Error Passed Around
Published on 03 June 2026Most apps leak Error across boundaries and downcast in ViewModels. Model failures in the use case output vocabulary instead. Swift and Kotlin.
Practical software architecture and design for iOS engineers.
Articles about composition, boundaries, naming, testing, and keeping codebases easy to change.
Start here for the principles behind maintainable architecture.
How to add behavior by wiring focused pieces together.
Modern SwiftUI boundaries, ownership, and dependency wiring.
Navigation and composition for UIKit apps.
How to organize, test, and improve architecture as codebases grow.
Most apps leak Error across boundaries and downcast in ViewModels. Model failures in the use case output vocabulary instead. Swift and Kotlin.
Architect complex SwiftUI forms with drafts, validators, mappers, form operations, and use cases without making the ViewModel the whole feature.
AI coding tools make architecture more important, not less important. Learn why I give AI agents an ARCHITECTURE.md file before asking them to write code.
Learn how to model list selection in Jetpack Compose without mixing UI state, domain identity, and navigation decisions.
Learn how to model list selection in SwiftUI without leaking navigation, domain identity, or behavior into the wrong place.
Learn unidirectional data flow in Jetpack Compose with UI state, user intents, use case outputs, and navigation events.