El renderizador de A2UI de Jetpack Compose define una arquitectura en capas que te permite elegir la capa adecuada para compilar. Además de la estratificación semántica, un esquema de nomenclatura claro comunica la intención de la API y controla la visibilidad para evitar contaminar tu classpath con tipos internos innecesarios.
Las APIs se organizan en dos categorías principales según el caso de uso y la visibilidad:
- APIs para desarrolladores de apps y componentes: Las APIs públicas diseñadas para uso directo tienen nombres claros y concisos con el prefijo
A2ui (o prefijos de sistema de diseño y pruebas, como MaterialA2ui y A2uiTest). Algunos ejemplos son A2uiCatalog, A2uiComponent y A2uiException.
- APIs para integradores de frameworks de IU: Las APIs que usan las bibliotecas que conectan el nivel de datos principal y los frameworks de IU tienen nombres descriptivos con el prefijo
A2uiCore. Estas APIs no están diseñadas para la referencia directa de la aplicación y permanecen ocultas del código de la aplicación estándar.
Entre los ejemplos, se incluyen A2uiCoreCatalog, A2uiCoreDataModel y A2uiCoreSurfaceModel.
Dado que la capa de datos principal contiene tipos de ambas categorías, se distribuye en dos artefactos separados: androidx.a2ui:a2ui-model (para desarrolladores de apps) y androidx.a2ui:a2ui-engine (para integradores de frameworks). Esta estructura permite que las bibliotecas del framework dependan de a2ui-engine como una dependencia de implementación, lo que evita que los tipos de A2uiCore contaminen las rutas de acceso de clase públicas de la app.
Categoría 1: APIs para desarrolladores de apps
En las siguientes tablas, se enumeran las APIs públicas destinadas a los desarrolladores de aplicaciones y componentes.
androidx.a2ui:a2ui-model
| Tipo |
Descripción |
A2uiSurfaceModel |
Interfaz de solo lectura que representa una superficie de IU |
A2uiMessageProcessor |
Tipo de punto de entrada para procesar mensajes entrantes |
A2uiMessageParser |
Interfaz del analizador para mensajes de protocolo |
A2uiServerToClientMessage |
Carga útil del mensaje entrante |
A2uiSchema |
Tipos que se usan para definir esquemas de propiedades de componentes |
A2uiException |
Excepciones que se arrojan y controlan en todas las capas |
A2uiUserAction |
Es la carga útil de la acción creada como resultado de las interacciones del usuario. |
A2uiClientToServerMessage |
Tipo base para todas las cargas útiles de mensajes salientes |
A2uiActionInterceptor |
Interceptor de acciones del usuario a nivel de la capa de datos |
A2uiFunctionDefinition |
Definición de una función de cliente local |
A2uiDataPath |
Representación de la ruta de puntero JSON |
androidx.a2ui.compose:compose-runtime
| Tipo |
Descripción |
a2uiRuntimeMessageProcessor |
Constructor de extensión para el procesador de mensajes |
A2uiMessageParser |
Constructor de extensión para el analizador de mensajes |
A2uiComponentState |
Interfaz que representa el estado del componente reactivo |
A2uiComponentModel |
Modelo de datos para un componente resuelto correctamente |
A2uiComponentProperties |
El contenedor de propiedades estable optimiza las recomposiciones |
A2uiProperty |
Definición de propiedad de componente con escritura segura |
A2uiComponentScope |
Alcance del receptor para evaluar vinculaciones y componentes secundarios |
A2uiComponentReference |
Puntero para resolver componentes secundarios anidados |
androidx.a2ui.compose:compose-ui
| Tipo |
Descripción |
A2uiCatalog |
Interfaz y constructor de extensiones para definir catálogos |
A2uiComponent |
Interfaz para definir implementaciones de componentes de Compose |
A2uiComponent (combinable) |
Función de componibilidad que emite la IU de un componente |
androidx.compose.material3:material3-a2ui
| Tipo |
Descripción |
A2uiSurface |
Punto de entrada componible que renderiza una superficie |
materialA2uiBasicCatalogV1 |
Función de fábrica para crear una instancia del catálogo básico que usa componentes de Material 3 |
MaterialA2uiBasicCatalogV1Defaults |
Implementaciones predeterminadas de Material 3 del catálogo básico |
androidx.a2ui.compose:compose-ui-testing
| Tipo |
Descripción |
A2uiTestController |
Controlador de pruebas para organizar la ejecución de pruebas |
A2uiComponentStub |
Implementación de componentes anulados o con stubs |
A2uiTestSurface |
Función de componibilidad que renderiza una superficie de prueba |
Categoría 2: APIs del integrador de frameworks
En la siguiente tabla, se enumeran las APIs diseñadas para los integradores de frameworks.
androidx.a2ui:a2ui-engine
| Tipo |
Descripción |
A2uiCoreCatalog |
Contiene un conjunto de objetos A2uiCoreComponentDefinition. |
A2uiCoreCatalogSerializer |
Serializador para catálogos de A2UI |
A2uiCoreComponentDefinition |
Contiene metadatos que definen un componente |
A2uiCoreSurfaceModel |
Implementa A2uiSurfaceModel y expone registros |
A2uiCoreSurfaceGroupModel |
Implementa A2uiSurfaceGroupModel |
A2uiCoreMessageProcessor |
Implementa A2uiMessageProcessor |
A2uiCoreDataModel |
Contenedor del modelo de datos reactivo |
A2uiCoreComponentRegistry |
Registro de componentes |
A2uiCoreValueResolver |
Es un objeto de acceso a datos para usar en el evaluador dinámico. |
A2uiCoreSchemaValidator |
Validador de esquema de componente |