Observations Swift en séquence... Note

Observations Swift en séquence asynchrone pour les changements d'état

Swift 6.2 introduit un nouveau type Observations pour streamer les changements d'état des types Observable. Ceci est utile pour persister l'état de l'application, comme la requête de recherche d'une scène et son chemin de navigation. L'auteur gérait précédemment cet état dans une classe Codable, SceneModel, qui pouvait être encodée en JSON pour la persistance.Ce SceneModel était ensuite sauvegardé et restauré à l'aide de @SceneStorage dans la vue racine. Cependant, la sauvegarde de l'état reposait sur la surveillance de scenePhase, ce qui n'était pas fiable car les scènes pouvaient se terminer avant d'entrer en arrière-plan. Avant Swift 6.2, ObservableObject avec les propriétés @Published permettait d'utiliser buffer et values de Combine pour créer un AsyncSequence pour sauvegarder les changements d'état.Avec iOS 26 et Swift 6.2, le type Observations fournit un AsyncSequence similaire pour les types Observable. Cela permet d'observer les propriétés calculées, telles que la représentation JSON du SceneModel. Le type Observations prend une closure qui retourne la valeur à observer.Les changements sont transactionnels, ce qui signifie que plusieurs mises à jour synchrones des propriétés observables sont groupées en une seule valeur de séquence. Le suivi des mises à jour commence avec le willSet des propriétés observables et se termine au prochain point de suspension. Cela permet de sauvegarder l'état du modèle de scène automatiquement à chaque changement, sans dépendre de scenePhase. L'AsyncSequence de Observations émet la valeur initiale de la propriété observée lors de la souscription.