架構分層和 API 命名

Jetpack Compose A2UI 算繪器定義了分層架構,可讓您選擇合適的層級進行建構。除了語意分層之外,明確的命名架構也能傳達 API 用意,並控管顯示範圍,避免不必要的內部型別汙染類路徑。

API 會根據用途和可見度,分為兩大類:

  1. 應用程式和元件開發人員適用的 API:供直接使用的公開 API 具有簡潔的名稱,並加上 A2ui 前置字串 (或設計系統和測試前置字串,例如 MaterialA2uiA2uiTest)。範例包括 A2uiCatalogA2uiComponentA2uiException
  2. UI 架構整合人員適用的 API:程式庫會使用這些 API,在核心資料層和 UI 架構之間建立橋接器,這些 API 的名稱會加上 A2uiCore 前置字元,方便辨識。這些 API 並非供應用程式直接參照,且仍會對標準應用程式程式碼隱藏。例如 A2uiCoreCatalogA2uiCoreDataModelA2uiCoreSurfaceModel

由於核心資料層包含這兩類型的型別,因此會分散在兩個不同的構件中:androidx.a2ui:a2ui-model (適用於應用程式開發人員) 和 androidx.a2ui:a2ui-engine (適用於架構整合人員)。這個結構可讓架構程式庫依附於 a2ui-engine 做為實作依附元件,避免 A2uiCore 型別汙染公開應用程式類別路徑。

第 1 類:應用程式開發人員 API

下表列出適用於應用程式和元件開發人員的公用 API。

androidx.a2ui:a2ui-model

類型 說明
A2uiSurfaceModel 代表 UI 介面的唯讀介面
A2uiMessageProcessor 處理內送訊息的進入點類型
A2uiMessageParser 通訊協定訊息的剖析器介面
A2uiServerToClientMessage 收到的訊息酬載
A2uiSchema 用於定義元件屬性結構定義的型別
A2uiException 在各層擲回及處理例外狀況
A2uiUserAction 因使用者互動而建立的動作酬載
A2uiClientToServerMessage 所有外寄訊息酬載的基礎類型
A2uiActionInterceptor 資料層級使用者動作攔截器
A2uiFunctionDefinition 本機用戶端函式的定義
A2uiDataPath JSON 指標路徑表示法

androidx.a2ui.compose:compose-runtime

類型 說明
a2uiRuntimeMessageProcessor 訊息處理器的擴充功能建構函式
A2uiMessageParser 訊息剖析器的擴充功能建構函式
A2uiComponentState 代表反應式元件狀態的介面
A2uiComponentModel 成功解析元件的資料模型
A2uiComponentProperties 穩定屬性容器,可最佳化重組作業
A2uiProperty 強型別元件屬性定義
A2uiComponentScope 用於評估繫結和子項元件的接收器範圍
A2uiComponentReference 用於解析巢狀子項元件的指標

androidx.a2ui.compose:compose-ui

類型 說明
A2uiCatalog 用於定義目錄的介面和擴充建構函式
A2uiComponent 定義 Compose 元件實作的介面
A2uiComponent (可組合) 可發出元件 UI 的可組合函式

androidx.compose.material3:material3-a2ui

類型 說明
A2uiSurface 可組合的進入點,可算繪表面
materialA2uiBasicCatalogV1 工廠函式,用於建立使用 Material 3 元件的基本目錄例項
MaterialA2uiBasicCatalogV1Defaults 基本目錄的預設 Material 3 實作方式

androidx.a2ui.compose:compose-ui-testing

類型 說明
A2uiTestController 測試控制器,用於協調測試執行作業
A2uiComponentStub 存根或覆寫元件實作
A2uiTestSurface 可組合函式,可算繪測試介面

第 2 類:架構整合工具 API

下表列出適用於架構整合人員的 API。

androidx.a2ui:a2ui-engine

類型 說明
A2uiCoreCatalog 包含一組 A2uiCoreComponentDefinition 物件
A2uiCoreCatalogSerializer A2UI 目錄的序列化程式
A2uiCoreComponentDefinition 內含定義元件的中繼資料
A2uiCoreSurfaceModel 實作 A2uiSurfaceModel,公開登錄項目
A2uiCoreSurfaceGroupModel 實作 A2uiSurfaceGroupModel
A2uiCoreMessageProcessor 實作 A2uiMessageProcessor
A2uiCoreDataModel 反應式資料模型持有者
A2uiCoreComponentRegistry 元件登錄
A2uiCoreValueResolver 動態評估工具中使用的資料存取子
A2uiCoreSchemaValidator 元件結構定義驗證工具