It’s 2025, and I’m still getting asked the same question: “Where are your ViewModels?” Every time I share this opinion or code from my open-source projects like my BlueSky client, IcySky, or even the Medium iOS app, developers are surprised to see clean, simple views without a single ViewModel in sight.
Let me be clear: you don’t need ViewModels in SwiftUI.
You never did.
You never will.
When SwiftUI launched in 2019, many developers brought their UIKit baggage with them. We were so used to the Massive View Controller (MVC) problem that we immediately reached for MVVM as our savior. But here’s the thing, SwiftUI isn’t UIKit. It was designed from the ground up with a different philosophy.
And this philosophy is highlighted in various WWDC videos from Apple: