Chapter 9: Driving SwiftUI with Data
In this chapter, we'll learn how to manage the state of single or multiple Views. In the declarative world of SwiftUI, you should consider Views as functions of their state, whereas in UIKit, in the imperative world, you are telling a view what it has to do depending on the state. In SwiftUI, Views react to changes. SwiftUI has two ways of reaching these goals:
- Using the binding property wrappers that SwiftUI provides
- Using Combine, the framework that Apple introduced to implement functional reactive programming
Property wrappers are a way to decorate a property and were introduced in Swift 5.1. There are four different ways of using them in SwiftUI:
@State
: To change state variables that belong to the same view. These variables should not be visible outside the view and should be marked as Private.@ObservedObject
: To change state variables for multiple but connected Views; for example, when there is a parent...