Production de l'état de l'UI (Vues)

Concepts et implémentation de Jetpack Compose

Fondamentalement, la production d'états consiste en l'application progressive de modifications à l'état de l'interface utilisateur. L'état existe toujours et change en fonction des événements. Le tableau ci-dessous récapitule les différences entre les événements et les états :

Événements

État

Temporaire, imprévisible et existe pour une durée limitée.

Existe toujours.

Entrées de la production d'état.

Résultat de la production d'état.

Produit de l'interface utilisateur ou d'autres sources.

Est utilisée par l'UI.

Les événements peuvent provenir des sources suivantes :

  • Utilisateurs : lorsqu'ils interagissent avec l'interface utilisateur de l'application.
  • Autres sources de changement d'état : API qui présentent des données d'application à partir des couches de l'interface utilisateur, de domaine ou de données, comme les événements de délai d'inactivité de la snackbar, les cas d'utilisation ou les dépôts, respectivement.

API de production d'état

Deux API principales sont utilisées pour la production d'état, en fonction de l'étape du pipeline :

Étape du pipeline

API

Entrée

Vous devez utiliser des API asynchrones pour effectuer des tâches en dehors du thread UI pour que l'interface utilisateur ne présente pas d'à-coups (coroutines ou flux en Kotlin, et RxJava ou rappels en Java, par exemple).

Sortie

Vous devez utiliser des API de conteneurs de données observables pour invalider et réafficher l'interface utilisateur lorsque l'état change. (StateFlow ou LiveData, par exemple). Les conteneurs de données observables permettent de s'assurer que l'UI a toujours un état à afficher à l'écran.

Des deux, choisir l'API asynchrone pour les entrées impacte davantage la nature du pipeline de production d'état que choisir l'API observable pour la sortie. En effet, les entrées dictent le type de traitement qui peut être appliqué au pipeline.

Assemblage du pipeline de production d'état

Les sections suivantes présentent les techniques de production d'état les plus adaptées à différentes entrées et les API de sortie correspondantes. Chaque pipeline de production d'état est une combinaison d'entrées et de sorties et doit être :

  • Sensible au cycle de vie : dans le cas où l'interface utilisateur n'est pas visible ou active, le pipeline de production d'état ne doit consommer aucune ressource, sauf si cela est explicitement requis.
  • Facile à utiliser : l'interface utilisateur doit pouvoir facilement afficher l'état de l'interface utilisateur produit. Les considérations liées à la sortie du pipeline de production d'état varient selon les API d'affichage telles que le système View ou Jetpack Compose.

Types de sorties dans les pipelines de production d'état

Le choix de l'API de sortie pour l'état de l'interface utilisateur et la nature de sa présentation dépendent en grande partie de l'API dont votre application se sert pour afficher l'interface utilisateur. Dans les applications Android, vous pouvez utiliser Views ou Jetpack Compose. Les considérations incluent ici :

Le tableau suivant présente les API à utiliser pour votre pipeline de production d'état lorsque vous utilisez le framework Views :

Entrée

Résultat

API ponctuelles

StateFlow ou LiveData

API de flux

StateFlow ou LiveData

API ponctuelles et de flux

StateFlow ou LiveData