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
ObservableObjectandStateObject, 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 fromObservableObjectandStateObjectwith classes marked with the@Observablemacro.You should perform this change incrementally; it is not wise to change all your code base in one go. Notice that the
@Observablemacro can only be applied to classes, not value types such as enums and structs.The properties of an
@Observableclass, if they are visible, are all observable. They don’t need any more to be marked as@Published; the accessibility...
- Rather than using