Nombres de APIs y capas de arquitectura

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:

  1. 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.
  2. 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