Introducing Combine in a SwiftUI project
In this recipe, we are going to add publish support to CoreLocation, which is an Apple framework that provides location services such as the current position of the user. The CLLocationManager framework class will emit status and location updates, which will be observed by a SwiftUI View. It is a different implementation of the problem that was presented in the Implementing a CoreLocation wrapper as @ObservedObject recipe of Chapter 10, Driving SwiftUI with Data.Usually, when a reactive framework is used, instead of the common Model-View-Controller (MVC) pattern used in many iOS apps, people tend to use Model-View-ViewModel (MVVM).In this architectural pattern, the view doesn't have any logic. Instead, this is encapsulated in the intermediate object, the ViewModel, which has the responsibility of being the model for the view and talking to the business logic model, services, and so on to update itself. For example, it will have a property...