Événement de navigation

Navigation Event est une bibliothèque qui fournit une solution Kotlin Multiplatform (KMP) pour intégrer des événements de navigation au niveau du système dans votre application. Il est conçu pour être la couche de base de la gestion des instructions de navigation sur les différentes plates-formes compatibles.

Concepts clés

Le système d'événements de navigation est basé sur un modèle centralisé de répartiteur-gestionnaire, souvent utilisé dans une hiérarchie parent-enfant pour mapper des structures d'UI complexes, telles que celles trouvées dans Jetpack Compose.

NavigationEventDispatcher est la classe centrale responsable de la gestion de tous les consommateurs d'événements de navigation enregistrés (NavigationEventHandler) et de l'orchestration du flux d'événements.

Dans une configuration hiérarchique, tous les dispatchers d'une même chaîne partagent un seul NavigationEventProcessor, qui gère l'état global et garantit un ordre de répartition unique et unifié dans l'ensemble de l'arborescence.

NavigationEventHandler est une classe abstraite qui reçoit et gère les événements de navigation déclenchés par un NavigationEventDispatcher. Il définit les méthodes de rappel qui correspondent aux différentes étapes du cycle de vie d'un geste de navigation, par exemple lorsqu'un geste commence, progresse, se termine ou est annulé.

Les gestionnaires peuvent répondre à ces événements pour mettre à jour l'état de l'UI ou de l'application en réponse aux actions de navigation de l'utilisateur. Plusieurs gestionnaires peuvent être enregistrés auprès d'un répartiteur et sont appelés en fonction de la priorité et de l'ordre d'enregistrement.

NavigationEvent est une classe de données qui contient les détails du geste de navigation.

NavigationEventInfo est une classe abstraite qui fournit des informations contextuelles sur un état de navigation.

NavigationEventInput est une classe abstraite pour les composants qui génèrent et distribuent des événements de navigation. Il agit comme le côté "entrée" du système de navigation, en traduisant les événements spécifiques à la plate-forme (comme les gestes de retour système ou les clics sur les boutons) en événements standardisés qui peuvent être envoyés à un NavigationEventDispatcher.

Déclencheurs et itinéraires de navigation acceptés

Le système d'événements de navigation est conçu pour englober plus que le simple bouton Retour du système, avec des conceptions prenant en charge plusieurs directions de navigation et méthodes de saisie sur différentes plates-formes.

Directions acceptées

Différentes plates-formes prennent en charge différentes directions de navigation :

Plate-forme

Retour

Haut

Transférer

Accueil

Téléphone Android

🚫

Tablette Android

🚫

Web (navigateur)

🚫

iOS (iPhone/iPad)

🚫

Déclencheurs acceptés

La gestion des entrées est assurée par différents mécanismes sur chaque plate-forme :

Déclencheur

Téléphone Android

Web (navigateur)

iOS (iPhone/iPad)

Bouton Retour du clavier

✅ Retour

✅ Retour

Bouton Retour logiciel

🚫

✅ Retour

✅ Retour

Bouton logiciel "Haut"

✅ En hausse

🚫

🚫

Balayer l'écran de gauche à droite

✅ Retour

✅ Retour

Balayer de la droite vers la gauche

✅ Retour

✅ Transférer

Balayer l'écran de bas en haut

✅ Accueil

🚫

✅ Accueil