Even though there is nothing inherently wrong with a view model performing network requests, it isn't an approach I recommend. Moving the networking logic out of the view model has a number of benefits. It reduces code duplication, facilitates unit testing, and improves the maintainability of the project to name a few.
Subscribe to Cocoacasts Plus to watch this episode.
Building a Modern Networking Layer in Swift
Creating an API Client
by Bart Jacobs in Networking
Swift 5
Xcode 13
iOS 15
Building a Modern Networking Layer in Swift
-
06:30
-
08:01
-
09:24
-
4 Creating an API Client
09:27
-
5 Making the API Client Extensible
08:04
-
10:07
-
08:16
-
8 Working with Protected Resources
10:07
-
09:55
-
09:49
-
12 Creating and Updating Video Progress
06:40
-
07:57
-
14 Unit Testing the Networking Layer
10:32
-
15 Unit Testing Asynchronous Code
07:45
-
16 Stubbing the Cocoacasts API
08:42
-
18 Enabling Code Coverage to Find Gaps
07:10
-
20 Writing the Wrong Unit Tests
11:55
-
21 Writing Unit Tests for Edge Cases
08:25
-
22 Catching Bugs with Unit Tests
11:05
-
11:04