The LocationView
is always in one of two states, fetching weather data or displaying weather data. It is the LocationView
itself that implicitly defines these states and that is limiting. Not only is it limiting, we cannot write unit tests for the states of the LocationView
. In this episode, I show you a solution that is testable and extensible.
Subscribe to Cocoacasts Plus to watch this episode.
Mastering MVVM with SwiftUI
Defining the States of the Location View
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
-
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
-
31 Defining the States of the Location View
07:50
-
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