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 :
- La lecture de l'état en tenant compte du cycle de vie
- La nécessité ou non d'afficher l'état dans un ou plusieurs champs à partir du conteneur d'état
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 |
|
API de flux |
|
API ponctuelles et de flux |
|