Back home

SwiftUI Series 12|La relation entre SwiftUI, Combine et Observation

Ce qu’il faut vraiment distinguer, c’est la manière dont les changements de statut sont observés, propagés et clôturés.

Lorsque j’ai entendu parler pour la première fois de la gestion de l’état SwiftUI, ces mots m’ont dérouté à un moment donné :

  • ObservableObject
  • @Published -Combiner -Observations

La question est généralement :

  • Ils sont tous liés à “les changements d’état entraîneront des mises à jour de l’interface”
  • Mais pas au même étage

Donc ce qu’il faut vraiment clarifier c’est :

  • À qui appartient le statut
  • Comment les changements sont observés
  • Comment transmettre l’observation à l’interface

1. Combiner et Observation ne répondent pas vraiment aux questions du même niveau.

Une situation courante consiste à les comparer directement en tant que relations de substitution. Mais une compréhension plus pratique est la suivante :

  • Combine ressemble plus à un ensemble d’outils de streaming réactifs universels
  • L’observation ressemble davantage à un mécanisme d’observation de l’état à l’ère SwiftUI

En d’autres termes, Combine a une conscience plus large du problème et Observation est plus proche de « la façon dont l’état de l’interface est suivi et actualisé ».

2. Ce dont de nombreuses équipes ont réellement besoin, c’est de ne pas d’abord gâcher la chaîne de propagation du statut.

Les problèmes les plus courants dans les projets réels sont :

  • Le propriétaire du statut est inconnu
  • On ne sait pas d’où viennent les changements
  • Il n’est pas clair quelle couche observe et quelle couche convertit.

À ce stade, quel que soit le nom utilisé pour le calque inférieur, la page sera facilement gâchée.

3. Un jugement pratique : ce qu’il faut maintenant, c’est “l’état est observé par l’interface” ou “le flux d’événements est combiné et traité”

Si votre principale préoccupation est :

  • Changements de statut de la page
  • Mise à jour du ViewModel
  • L’interface utilisateur est actualisée avec le statut

Le style Observation est généralement plus naturel.

Si vous êtes plus préoccupé par :

  • Fusionner plusieurs sources d’événements asynchrones
  • Gestion des événements de streaming
  • Combinaisons de chaînes d’événements plus polyvalentes

La conscience de ce Combine des problèmes est toujours précieuse.

4. Conclusion : Redressez d’abord les frontières des États, puis parlez du mécanisme d’observation spécifique

Pour le dire sous une forme plus courte, je dirais :

Dans SwiftUI, la véritable clé de la relation entre Combine et Observation est de savoir si les propriétaires d’état, les sources de changement et les limites d’observation de l’interface sont d’abord redressées.

Lorsque les limites seront claires, la sélection technologique sera beaucoup plus claire ; Lorsque les limites ne sont pas claires, changer un mécanisme ne fera que changer le nom et perpétuer le chaos.

FAQ

What to read next

Related

Continue reading