Warstwy architektury i nazewnictwo interfejsów API

Renderowanie A2UI w Jetpack Compose definiuje architekturę warstwową, która pozwala wybrać odpowiednią warstwę do tworzenia. Oprócz warstw semantycznych jasny schemat nazewnictwa informuje o przeznaczeniu interfejsu API i kontroluje widoczność, aby uniknąć zaśmiecania ścieżki klasy niepotrzebnymi typami wewnętrznymi.

Interfejsy API są podzielone na 2 główne kategorie w zależności od przypadku użycia i widoczności:

  1. Interfejsy API dla deweloperów aplikacji i komponentów: publiczne interfejsy API przeznaczone do bezpośredniego użycia mają proste, zwięzłe nazwy z prefiksem A2ui (lub prefiksami systemu projektowania i testowania, takimi jak MaterialA2uiA2uiTest). Przykłady to A2uiCatalog, A2uiComponentA2uiException.
  2. Interfejsy API dla integratorów platform interfejsu: interfejsy API używane przez biblioteki łączące podstawową warstwę danych z platformami interfejsu mają opisowe nazwy z prefiksem A2uiCore. Te interfejsy API nie są przeznaczone do bezpośredniego odwoływania się do aplikacji i pozostają ukryte w standardowym kodzie aplikacji. Przykłady: A2uiCoreCatalog, A2uiCoreDataModelA2uiCoreSurfaceModel.

Ponieważ podstawowa warstwa danych zawiera typy z obu kategorii, jest ona rozpowszechniana w 2 oddzielnych artefaktach: androidx.a2ui:a2ui-model (dla deweloperów aplikacji) i androidx.a2ui:a2ui-engine (dla integratorów platform). Ta struktura umożliwia bibliotekom platformy zależność od a2ui-engine jako zależności implementacyjnej, co zapobiega zanieczyszczaniu publicznych ścieżek klas aplikacji typami A2uiCore.

Kategoria 1. Interfejsy API dla programistów aplikacji

W tabelach poniżej znajdziesz listę publicznych interfejsów API przeznaczonych dla programistów aplikacji i komponentów.

androidx.a2ui:a2ui-model

Typ Opis
A2uiSurfaceModel Interfejs tylko do odczytu reprezentujący powierzchnię interfejsu
A2uiMessageProcessor Typ punktu wejścia do przetwarzania wiadomości przychodzących
A2uiMessageParser Interfejs analizatora wiadomości protokołu
A2uiServerToClientMessage Ładunek wiadomości przychodzącej
A2uiSchema Typy używane do definiowania schematów właściwości komponentów
A2uiException Wyjątki zgłaszane i obsługiwane w różnych warstwach
A2uiUserAction Ładunek działania utworzony w wyniku interakcji użytkownika
A2uiClientToServerMessage Typ podstawowy wszystkich ładunków wiadomości wychodzących
A2uiActionInterceptor Przechwytywanie działań użytkowników na poziomie warstwy danych
A2uiFunctionDefinition Definicja funkcji klienta lokalnego
A2uiDataPath Reprezentacja ścieżki wskaźnika JSON

androidx.a2ui.compose:compose-runtime

Typ Opis
a2uiRuntimeMessageProcessor Konstruktor rozszerzeń dla procesora komunikatów
A2uiMessageParser Konstruktor rozszerzeń dla parsera wiadomości
A2uiComponentState Interfejs reprezentujący stan komponentu reaktywnego
A2uiComponentModel Model danych dla komponentu, który został prawidłowo rozwiązany
A2uiComponentProperties Stabilny kontener usługi optymalizujący ponowne kompozycje
A2uiProperty Definicja właściwości komponentu o silnym typie
A2uiComponentScope Zakres odbiorcy do oceny powiązań i komponentów podrzędnych
A2uiComponentReference Wskaźnik do rozwiązywania zagnieżdżonych komponentów podrzędnych

androidx.a2ui.compose:compose-ui

Typ Opis
A2uiCatalog Interfejs i konstruktor rozszerzeń do definiowania katalogów
A2uiComponent Interfejs do definiowania implementacji komponentów Compose
A2uiComponent (można łączyć) Funkcja typu „composable”, która emituje interfejs komponentu.

androidx.compose.material3:material3-a2ui

Typ Opis
A2uiSurface Punkt wejścia, który renderuje powierzchnię
materialA2uiBasicCatalogV1 Funkcja fabryczna do tworzenia instancji podstawowego katalogu, która korzysta z komponentów Material 3
MaterialA2uiBasicCatalogV1Defaults Domyślne implementacje Material 3 podstawowego katalogu

androidx.a2ui.compose:compose-ui-testing

Typ Opis
A2uiTestController Kontroler testów do koordynowania wykonywania testów
A2uiComponentStub Implementacja komponentu z zaślepką lub zastąpionego
A2uiTestSurface Funkcja typu „composable”, która renderuje powierzchnię testową

Kategoria 2. Interfejsy API integratora platformy

W tabeli poniżej znajdziesz listę interfejsów API przeznaczonych dla integratorów platform.

androidx.a2ui:a2ui-engine

Typ Opis
A2uiCoreCatalog Zawiera zestaw obiektów A2uiCoreComponentDefinition.
A2uiCoreCatalogSerializer Serializator katalogów A2UI
A2uiCoreComponentDefinition Zawiera metadane definiujące komponent
A2uiCoreSurfaceModel Implementuje A2uiSurfaceModel, udostępnia rejestry
A2uiCoreSurfaceGroupModel Implementuje A2uiSurfaceGroupModel
A2uiCoreMessageProcessor Implementuje A2uiMessageProcessor
A2uiCoreDataModel Obiekt przechowujący reaktywny model danych
A2uiCoreComponentRegistry Rejestr komponentów
A2uiCoreValueResolver Akcesor danych do użycia w dynamicznym module oceniającym
A2uiCoreSchemaValidator Walidator schematu komponentu