With this and the next episode, I want to make sure you choose for the Model-View-ViewModel pattern for the right reasons. I want to avoid that you adopt MVVM in a project because you were told it is a sound architecture or because you think you need view models if you use SwiftUI. In this episode, I want to highlight a few problems a typical SwiftUI application can suffer from. Those problems can be resolved by the Model-View-ViewModel pattern with relative ease.
Subscribe to Cocoacasts Plus to watch this episode.
Mastering MVVM with SwiftUI
The Problem
by Bart Jacobs in Model-View-ViewModel
Swift 5
Xcode 14
iOS 16
Mastering MVVM with SwiftUI
-
1 Views, Models, and View Models
03:37
-
2 The Problem
04:49
-
07:05
-
07:51
-
06:12
-
05:50
-
06:33
-
8 Populating the Locations View
10:17
-
08:17
-
10 Populating the Location View
08:22
-
10:08
-
14 Populating the Add Location View
07:51
-
15 Integrating the Geocoding Service
11:29
-
18 Optimizing the User Experience
08:44
-
19 Refactoring the Add Location View
05:09
-
21 Updating Locations in User Defaults
08:24
-
08:18
-
23 Defining the Weather Data Model
09:22
-
05:33
-
25 Injecting Base URL and API Key
07:50
-
09:03
-
29 Refactoring the Forecast View Model
04:49
-
30 Refactoring the Location View Model
05:27
-
05:47
-
33 Injecting Dependencies with Swinject
07:03
-
34 Unit Testing a Simple View Model
09:49
-
35 Unit Testing a Complex View Model
09:12
-
36 Writing Asynchronous Unit Tests
08:10