Couches architecturales et dénomination des API

Le moteur de rendu A2UI de Jetpack Compose définit une architecture en couches qui vous permet de choisir la couche appropriée sur laquelle créer votre application. En plus de la stratification sémantique, un schéma de dénomination clair communique l'intention de l'API et contrôle la visibilité pour éviter de polluer votre classpath avec des types internes inutiles.

Les API sont organisées en deux catégories principales en fonction du cas d'utilisation et de la visibilité :

  1. API pour les développeurs d'applications et de composants : les API publiques destinées à un usage direct ont des noms clairs et concis avec le préfixe A2ui (ou des préfixes de système de conception et de test tels que MaterialA2ui et A2uiTest). Par exemple, A2uiCatalog, A2uiComponent et A2uiException.
  2. API pour les intégrateurs de frameworks d'UI : les API utilisées par les bibliothèques faisant le pont entre la couche de données principale et les frameworks d'UI ont des noms descriptifs préfixés par A2uiCore. Ces API ne sont pas destinées à être référencées directement par les applications et restent masquées dans le code d'application standard. Il peut par exemple s'agir de A2uiCoreCatalog, A2uiCoreDataModel et A2uiCoreSurfaceModel.

Étant donné que la couche de données principale contient des types des deux catégories, elle est distribuée dans deux artefacts distincts : androidx.a2ui:a2ui-model (pour les développeurs d'applications) et androidx.a2ui:a2ui-engine (pour les intégrateurs de frameworks). Cette structure permet aux bibliothèques de framework de dépendre de a2ui-engine en tant que dépendance d'implémentation, ce qui empêche les types A2uiCore de polluer les chemins de classe d'application publics.

Catégorie 1 : API pour les développeurs d'applications

Les tableaux suivants listent les API publiques destinées aux développeurs d'applications et de composants.

androidx.a2ui:a2ui-model

Type Description
A2uiSurfaceModel Interface en lecture seule représentant une surface d'UI
A2uiMessageProcessor Type de point d'entrée pour le traitement des messages entrants
A2uiMessageParser Interface d'analyseur pour les messages de protocole
A2uiServerToClientMessage Charge utile des messages entrants
A2uiSchema Types utilisés pour définir les schémas de propriétés des composants
A2uiException Exceptions générées et gérées dans les différentes couches
A2uiUserAction Charge utile d'action créée à la suite d'interactions utilisateur
A2uiClientToServerMessage Type de base pour toutes les charges utiles des messages sortants
A2uiActionInterceptor Intercepteur d'action utilisateur au niveau de la couche de données
A2uiFunctionDefinition Définition d'une fonction de client local
A2uiDataPath Représentation du chemin du pointeur JSON

androidx.a2ui.compose:compose-runtime

Type Description
a2uiRuntimeMessageProcessor Constructeur d'extension pour le processeur de messages
A2uiMessageParser Constructeur d'extension pour l'analyseur de messages
A2uiComponentState Interface représentant l'état du composant réactif
A2uiComponentModel Modèle de données pour un composant résolu
A2uiComponentProperties Conteneur de propriété stable optimisant les recompositions
A2uiProperty Définition de propriété de composant fortement typée
A2uiComponentScope Portée du récepteur pour évaluer les liaisons et les composants enfants
A2uiComponentReference Pointeur pour résoudre les composants enfants imbriqués

androidx.a2ui.compose:compose-ui

Type Description
A2uiCatalog Constructeur d'interface et d'extension pour définir des catalogues
A2uiComponent Interface permettant de définir les implémentations des composants Compose
A2uiComponent (composable) Fonction composable qui émet l'UI d'un composant

androidx.compose.material3:material3-a2ui

Type Description
A2uiSurface Point d'entrée composable qui affiche une surface
materialA2uiBasicCatalogV1 Fonction de fabrique permettant de créer une instance du catalogue de base qui utilise des composants Material 3
MaterialA2uiBasicCatalogV1Defaults Implémentations Material 3 par défaut du catalogue de base

androidx.a2ui.compose:compose-ui-testing

Type Description
A2uiTestController Contrôleur de test pour orchestrer l'exécution des tests
A2uiComponentStub Implémentation de composant stubbé ou remplacé
A2uiTestSurface Fonction composable qui affiche une surface de test

Catégorie 2 : API d'intégration de framework

Le tableau suivant répertorie les API destinées aux intégrateurs de frameworks.

androidx.a2ui:a2ui-engine

Type Description
A2uiCoreCatalog Contient un ensemble d'objets A2uiCoreComponentDefinition
A2uiCoreCatalogSerializer Sérialiseur pour les catalogues A2UI
A2uiCoreComponentDefinition Contient des métadonnées définissant un composant
A2uiCoreSurfaceModel Implémente A2uiSurfaceModel, expose les registres
A2uiCoreSurfaceGroupModel Implémente A2uiSurfaceGroupModel
A2uiCoreMessageProcessor Implémente A2uiMessageProcessor
A2uiCoreDataModel Support du modèle de données réactif
A2uiCoreComponentRegistry Registre de composants
A2uiCoreValueResolver Accesseur de données à utiliser dans l'évaluateur dynamique
A2uiCoreSchemaValidator Validateur de schéma de composant