Sitemap

Writing is for everyone.Register for Medium Day

SwiftUI in 2025: Forget MVVM

Let me tell you why

10 min readJun 2, 2025
Press enter or click to view image in full size
Apple WWDC19, SwiftUI launch: Data Flow Through SwiftUI

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.

The MVVM Trap

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:

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web

Already have an account? Sign in

Thomas Ricouard
Thomas Ricouard

Written by Thomas Ricouard

📱 🚀 🇫🇷 [Entrepreneur, iOS/Mac & Web dev] | Now @Medium, @Glose 📖| Past @google 🔍 | Co-founded few companies before, a movies 🎥 app and smart browser one.

Responses (55)

Write a response

So ... you're just putting everything into global variables? Sounds like lots of debugging sessions over the course of longer project duration to find that side effect that's causing issues or testing more than necessary when changing anything.

It's cheap to build but hard to maintain imho.

141

This makes sense and can work if the views just handle their own view states. But wouldn’t you say the “model” object you describe is technically your VM anyway?
For me the VM’s main purpose is to abstract away the UI/business logic so I can unit…

59

Thanks! You raised a big question mark in my mind.
I've been learning SwiftUI and publishing apps for the last two years. While I was working on my 5th app for the App Store, I was really struggling with code readability and writing clean ViewModels.
I

45