The SwiftUI Design System War: Composition vs Progressive Disclosure
The SwiftUI Design System War: Composition vs Progressive DisclosureMy most controversial high-conviction opinionI’m no stranger to taking some heat when publishing my work. I got crucified for Apple is Killing Swift, and annoyed a lot of people with 2025: The Year SwiftUI Died. My 3rd-most-controversial post might surprise you: Swift Enums 🤝 Design Systems. It was a friendly little number where I talked about my favourite approach for building design systems in SwiftUI, with a progressive-disclosure-inspired approach to my view component initialisers. This reads like pretty reasonable stuff, until the terminally-online permafrost of SwiftUI zealots read it and admonished me: “This is not idiomatic! You should be using view composition!” They’re not wrong. My approach is not idiomatic. It’s pragmatic. But you should really decide for yourself. So I’m going to take my opinions and put them in my pocket, and coldly present the two approaches you can apply while building a design system in a large-scale SwiftUI project. You should use the approach that works for you.
Continue reading this post for free in the Substack app |


