[Second review] SE-0395: Observability

I suspect your example might be misleading. Let's assume this scenario: there are a textfield and a label in the UI. The label displays the text user input in the textfield in upper case.

The pseudo code in UIKit:

func bar() {
   label.text = textfield.input.uppercased()
}

The pseudo code for data model in SwiftUI:

struct Model {
   var inputText: String {
       didSet {
           displayedText = inputText.uppeercased()
       }
   }
   var displayedText: String
}

So you need to implement how a change propagate in your data model even in SwiftUI. What SwiftUI automates is to propage data model change to view.

I think Dave's comment is about how to implement the change in data model: using observer or a value based algorithm (I understand the latter as data processing flow). While in this simple example, observer works fine and an algorithm would be overkilling, but from my experience the observer approach doesn't scale.

But why does observer approach works for SwiftUI? I think it's just used to track changes, not to process changes. My guess is SwiftUI processes changes in a functional way too.