Michael Long
1 min readMar 18, 2022

--

A “design pattern” tends to be tactical, slapping a facade or adaptor over a specific API, while an architecture tends to define your overall strategic approach to building the entire application.

It’s true that some, like MVVM, are somewhat loose about managing application/data state and as such are open to various approaches. VIPER depends on Interactors to manage not just UI state but application data state. TCA goes the reducer/UDF route. And React/Redux is much more opinionated on specifically how application state should be managed.

Note that this is not just about managing UI state.

While I see your point about them being design patterns, I think you’re going against common usage here. An architecture is a design pattern writ large. And while I’ll use many of the GOF’s design patterns in a given app, I’m probably only going to use one architecture.

And if I tell you that my app is SwiftUI with MVVM, backed by a services layer… then you have a pretty good idea of how my application is structured, no pretty pictures needed.

--

--

Michael Long
Michael Long

Written by Michael Long

I write about Apple, Swift, and SwiftUI in particular, and technology in general. I'm also a Lead iOS Engineer at InRhythm, a modern digital consulting firm.

No responses yet