First of all, thank you for taking the time to post all of this detailed discussion.
I have to admit, I started scanning, perhaps because I'm not sure if this resonated with me entirely.
I like the separation between what a view can do and how a view model responds to actions and is responsible for changing state that the view is ultimately binding.
The view model adapts all of the data it manages to a format the View needs. So I dunno; whether one is using UIKit or SwiftUI, one can take a similar approach.
You could argue this is over-enginering; I consider it a separation of concerns. I personally believe a View should be vapid and vain: as dumb as possible and only interested in how it should look. So, if somebody interacts with it, it just notifies its view model. View Model does the heavy lifting then changes state as required, and the View binds properties that are required for it to look good / right.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: