Fetching remote data in SwiftUI
One of the operations made easier by the async
await
model is network data transfer operations. Fetching data from a network resource is an asynchronous operation by definition and until now, we had to manage it with the completion block mechanism.
iOS 15 added an async
await
interface to the URLSession
class to embrace the new pattern. In this recipe, we’ll implement a class to download data from a remote service and present it in a SwiftUI view.
We’ll use a free service called JSONPlaceholder
(https://jsonplaceholder.typicode.com) that provides a free fake API for testing purposes. The service has multiple resources with relations among them.
The app we’ll implement will have a view with a list of fake users to choose from, and another view to present the different fake blog posts for the user we selected.
Getting ready
Create a SwiftUI app called FakePosts
.
How to do it…
We are going to implement...