Chapter 8: 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, the Views react to the changes.
SwiftUI has two ways of reaching these goals:
- Using the binding property wrappers that SwiftUI provides
- Using Combine, a new reactive framework Apple introduced in iOS 13
Property wrappers are a way to decorate a property introduced in Swift 5.1.
There are three 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-child relationship. These...