Livelli architetturali e denominazione delle API

Il renderer A2UI di Jetpack Compose definisce un'architettura a livelli che ti consente di scegliere il livello giusto su cui basarti. Oltre al layering semantico, uno schema di denominazione chiaro comunica l'intento dell'API e controlla la visibilità per evitare di contaminare il classpath con tipi interni non necessari.

Le API sono organizzate in due categorie principali in base al caso d'uso e alla visibilità:

  1. API per sviluppatori di app e componenti: le API pubbliche destinate all'uso diretto hanno nomi puliti e concisi con il prefisso A2ui (o prefissi di sistema di progettazione e test come MaterialA2ui e A2uiTest). Esempi includono A2uiCatalog, A2uiComponent e A2uiException.
  2. API per gli integratori di framework UI: le API utilizzate dalle librerie che collegano il livello di dati principale e i framework UI hanno nomi descrittivi con il prefisso A2uiCore. Queste API non sono destinate al riferimento diretto alle applicazioni e rimangono nascoste al codice dell'applicazione standard. Esempi includono A2uiCoreCatalog, A2uiCoreDataModel e A2uiCoreSurfaceModel.

Poiché il livello di dati principale contiene tipi di entrambe le categorie, è distribuito in due artefatti separati: androidx.a2ui:a2ui-model (per gli sviluppatori di app) e androidx.a2ui:a2ui-engine (per gli integratori di framework). Questa struttura consente alle librerie del framework di dipendere da a2ui-engine come dipendenza di implementazione, impedendo ai tipi A2uiCore di contaminare i classpath pubblici delle app.

Categoria 1: API per sviluppatori di app

Le tabelle seguenti elencano le API pubbliche destinate agli sviluppatori di applicazioni e componenti.

androidx.a2ui:a2ui-model

Tipo Descrizione
A2uiSurfaceModel Interfaccia di sola lettura che rappresenta una superficie della UI
A2uiMessageProcessor Tipo di punto di ingresso per l'elaborazione dei messaggi in arrivo
A2uiMessageParser Interfaccia del parser per i messaggi di protocollo
A2uiServerToClientMessage Payload del messaggio in arrivo
A2uiSchema Tipi utilizzati per definire gli schemi delle proprietà dei componenti
A2uiException Eccezioni generate e gestite nei vari livelli
A2uiUserAction Payload dell'azione creato in seguito alle interazioni dell'utente
A2uiClientToServerMessage Tipo di base per tutti i payload dei messaggi in uscita
A2uiActionInterceptor Intercettatore di azioni utente a livello di data layer
A2uiFunctionDefinition Definizione di una funzione client locale
A2uiDataPath Rappresentazione del percorso del puntatore JSON

androidx.a2ui.compose:compose-runtime

Tipo Descrizione
a2uiRuntimeMessageProcessor Costruttore di estensioni per il processore di messaggi
A2uiMessageParser Costruttore di estensioni per il parser dei messaggi
A2uiComponentState Interfaccia che rappresenta lo stato del componente reattivo
A2uiComponentModel Modello di dati per un componente risolto correttamente
A2uiComponentProperties Ricompilazioni ottimizzate del contenitore delle proprietà stabili
A2uiProperty Definizione della proprietà del componente fortemente tipizzata
A2uiComponentScope Ambito del destinatario per la valutazione dei binding e dei componenti secondari
A2uiComponentReference Puntatore per risolvere i componenti secondari nidificati

androidx.a2ui.compose:compose-ui

Tipo Descrizione
A2uiCatalog Interfaccia e costruttore di estensioni per definire i cataloghi
A2uiComponent Interfaccia per definire le implementazioni dei componenti Compose
A2uiComponent (componibile) Funzione componibile che genera l'UI per un componente

androidx.compose.material3:material3-a2ui

Tipo Descrizione
A2uiSurface Punto di accesso componibile che esegue il rendering di una superficie
materialA2uiBasicCatalogV1 Funzione di fabbrica per la creazione di un'istanza del catalogo di base che utilizza i componenti di Material 3
MaterialA2uiBasicCatalogV1Defaults Implementazioni predefinite di Material 3 del catalogo di base

androidx.a2ui.compose:compose-ui-testing

Tipo Descrizione
A2uiTestController Controller di test per l'orchestrazione dell'esecuzione dei test
A2uiComponentStub Implementazione di componenti stubbed o sottoposti a override
A2uiTestSurface Funzione componibile che esegue il rendering di una superficie di test

Categoria 2: API di integrazione del framework

La tabella seguente elenca le API destinate agli integratori di framework.

androidx.a2ui:a2ui-engine

Tipo Descrizione
A2uiCoreCatalog Contiene un insieme di oggetti A2uiCoreComponentDefinition
A2uiCoreCatalogSerializer Serializer per i cataloghi A2UI
A2uiCoreComponentDefinition Contiene metadati che definiscono un componente
A2uiCoreSurfaceModel Implementa A2uiSurfaceModel, espone i registri
A2uiCoreSurfaceGroupModel Implementa A2uiSurfaceGroupModel
A2uiCoreMessageProcessor Implementa A2uiMessageProcessor
A2uiCoreDataModel Titolare del modello di dati reattivo
A2uiCoreComponentRegistry Component Registry
A2uiCoreValueResolver Accessore ai dati da utilizzare nel valutatore dinamico
A2uiCoreSchemaValidator Strumento di convalida dello schema dei componenti