Pelapisan arsitektur dan penamaan API

Renderer A2UI Jetpack Compose menentukan arsitektur berlayer yang memungkinkan Anda memilih layer yang tepat untuk dibangun. Selain pelapisan semantik, skema penamaan yang jelas mengomunikasikan maksud API dan mengontrol visibilitas untuk menghindari pencemaran classpath Anda dengan jenis internal yang tidak perlu.

API disusun ke dalam dua kategori utama berdasarkan kasus penggunaan dan visibilitas:

  1. API untuk developer aplikasi dan komponen: API publik yang ditujukan untuk penggunaan langsung memiliki nama yang jelas dan ringkas dengan awalan A2ui (atau awalan sistem desain dan pengujian seperti MaterialA2ui dan A2uiTest). Contohnya mencakup A2uiCatalog, A2uiComponent, dan A2uiException.
  2. API untuk integrator framework UI: API yang digunakan oleh library yang menjembatani framework UI dan lapisan data inti memiliki nama deskriptif yang diawali dengan A2uiCore. API ini tidak ditujukan untuk referensi aplikasi langsung dan tetap tersembunyi dari kode aplikasi standar. Contohnya meliputi A2uiCoreCatalog, A2uiCoreDataModel, dan A2uiCoreSurfaceModel.

Karena lapisan data inti berisi jenis dari kedua kategori, lapisan data inti didistribusikan di dua artefak terpisah: androidx.a2ui:a2ui-model (untuk developer aplikasi) dan androidx.a2ui:a2ui-engine (untuk integrator framework). Struktur ini memungkinkan library framework bergantung pada a2ui-engine sebagai dependensi penerapan, sehingga mencegah jenis A2uiCore mencemari jalur class aplikasi publik.

Kategori 1: API developer aplikasi

Tabel berikut mencantumkan API publik yang ditujukan untuk developer aplikasi dan komponen.

androidx.a2ui:a2ui-model

Jenis Deskripsi
A2uiSurfaceModel Antarmuka hanya baca yang merepresentasikan permukaan UI
A2uiMessageProcessor Jenis titik entri untuk memproses pesan masuk
A2uiMessageParser Antarmuka parser untuk pesan protokol
A2uiServerToClientMessage Payload pesan masuk
A2uiSchema Jenis yang digunakan untuk menentukan skema properti komponen
A2uiException Pengecualian yang ditampilkan dan ditangani di seluruh lapisan
A2uiUserAction Payload tindakan dibuat sebagai hasil interaksi pengguna
A2uiClientToServerMessage Jenis dasar untuk semua payload pesan keluar
A2uiActionInterceptor Penyadap tindakan pengguna tingkat lapisan data
A2uiFunctionDefinition Definisi fungsi klien lokal
A2uiDataPath Representasi jalur penunjuk JSON

androidx.a2ui.compose:compose-runtime

Jenis Deskripsi
a2uiRuntimeMessageProcessor Konstruktor ekstensi untuk pemroses pesan
A2uiMessageParser Konstruktor ekstensi untuk parser pesan
A2uiComponentState Antarmuka yang merepresentasikan status komponen reaktif
A2uiComponentModel Model data untuk komponen yang berhasil diselesaikan
A2uiComponentProperties Penampung properti stabil yang mengoptimalkan rekomposisi
A2uiProperty Definisi properti komponen yang diketik secara kuat
A2uiComponentScope Cakupan penerima untuk mengevaluasi binding dan komponen turunan
A2uiComponentReference Pointer untuk menyelesaikan komponen turunan bertingkat

androidx.a2ui.compose:compose-ui

Jenis Deskripsi
A2uiCatalog Antarmuka dan konstruktor ekstensi untuk menentukan katalog
A2uiComponent Antarmuka untuk menentukan penerapan komponen Compose
A2uiComponent (dapat disusun) Fungsi composable yang memunculkan UI untuk komponen

androidx.compose.material3:material3-a2ui

Jenis Deskripsi
A2uiSurface Titik entri composable yang merender permukaan
materialA2uiBasicCatalogV1 Fungsi factory untuk membuat instance Katalog Dasar yang menggunakan komponen Material 3
MaterialA2uiBasicCatalogV1Defaults Implementasi Material 3 default Katalog Dasar

androidx.a2ui.compose:compose-ui-testing

Jenis Deskripsi
A2uiTestController Pengontrol pengujian untuk mengatur eksekusi pengujian
A2uiComponentStub Penerapan komponen yang di-stub atau diganti
A2uiTestSurface Fungsi composable yang merender permukaan pengujian

Kategori 2: API pengintegrasi framework

Tabel berikut mencantumkan API yang ditujukan untuk integrator framework.

androidx.a2ui:a2ui-engine

Jenis Deskripsi
A2uiCoreCatalog Berisi sekumpulan objek A2uiCoreComponentDefinition
A2uiCoreCatalogSerializer Serializer untuk katalog A2UI
A2uiCoreComponentDefinition Berisi metadata yang menentukan komponen
A2uiCoreSurfaceModel Menerapkan A2uiSurfaceModel, mengekspos registri
A2uiCoreSurfaceGroupModel Menerapkan A2uiSurfaceGroupModel
A2uiCoreMessageProcessor Menerapkan A2uiMessageProcessor
A2uiCoreDataModel Penampung model data reaktif
A2uiCoreComponentRegistry Registri komponen
A2uiCoreValueResolver Pengakses data untuk digunakan dalam evaluator dinamis
A2uiCoreSchemaValidator Validator skema komponen