Exploring changes in the binding mechanisms
- With iOS 17, iPadOS 17, macOS 14, tvOS 17, watchOS 10, and visionOS 1.0, SwiftUI bindings have been simplified. To support these changes, you should perform the following tips on any existing code you want to modernize:
- Rather than using
ObservableObject
andStateObject
, it is now possible to use the Observation pattern (https://developer.apple.com/documentation/observation/). If you already have code that was written for previous versions of the operating systems, you should replace classes inheriting fromObservableObject
andStateObject
with classes marked with the@
Observable
macro.You should perform this change incrementally; it is not wise to change all your code base in one go. Notice that the
@Observable
macro can only be applied to classes, not value types such as enums and structs.The properties of an
@Observable
class, if they are visible, are all observable. They don’t need any more to be marked as@Published
; the accessibility...
- Rather than using