https://www.douggregor.net/posts/
I wouldn't recommend starting from the 12th part, it probably makes sense to read the posts in order.
Swift programmers are urged to choose structs for their data by default, which breaks Apple's evangelized "single source of truth" in their "reactive" SwiftUI paradigm. You can't have a single source of truth when everything's being copied all over the place, as it is with structs. And SwiftUI's observation framework only (kind of) works with structs and primitives, not classes.
So the entire thing is a contradictory mess that makes programming on Apple platforms a joyless slog and a nightmare to test. Your entire app becomes a pile of contrived states and flags that you tweak to trick the UI into doing what you want.
So the question is: Are we to abandon the "use structs whenever possible" mantra in Swift?