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 functionalities 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 9, Driving SwiftUI with Data.
Usually, when a reactive framework is used, instead of the common Model-View-Controller (MVC) architecture, people tend to use Model-View-ViewModel (MVVM).
In this architecture, 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 that model. For example, it will have a property for the...