Video yükleniyor...
Video Yüklenemedi
Have we talked about MVVM lately?
21,511 görüntüleme • 1 yıl önce •via X (Twitter)
12 Yorum

It’s funny how most examples of moving away from MVVM still put important logic in the views, logic that really should be tested, but usually isn’t. Then again, for indie devs… who’s testing anyway? 😅

I’d like to see you talk about the pros and cons of mvvm. Besides “here’s a guy who made an article. This is trendy” “here’s a fancy code snippet”. Mvvm helps separate business logic from view logic. None of the code samples you show or in the article are great examples of it.

No magic here. A lot of code requiring testing is basically just dumped in the View. Loading state can’t be unit tested; Snapshot test becomes more complex. This approach is similar to the original idea of just putting everything in a single file.

the UI shouldn't have logic, the ViewModel or call it what you like is intended to ensure that the UI can only be responsible for displaying things on the screen that's all, by putting the logic in the UI, this logic becomes strongly coupled to the UI and reduces code reuse, as very often several UI components share the same logic.

I also agree with this, from what I can tell this is a better approach.

I don't care. MVVM rules!

When you have a delegate (like didFinishPlayingAudio or didEnterRegion), do these still have to be used in a class? I've been creating the Class (I call AppManager), which I insert as an EnvironmentObject.

Great idea to post snippet of your YouTube video here on X 👌🏻

Architectural patterns in codebases can bring elegance. When chosen well, they enhance maintainability and testability. This deserves ongoing discussion.

If you use UIKit then use MVVM. not necessary with SwiftUI.

"The magic is in the environment" - except that you cannot change an environment value, then use NvigationLink to push a new view on the stack, because for SwiftUI these are siblings - the pushed view is NOT a subview of the first and doesn't receive the changed value. Bummer!

Sean, MVVM is not an architecture, is a presentation pattern, it belongs in the presentation layer.
