การแบ่งชั้นสถาปัตยกรรมและการตั้งชื่อ API

ตัวแสดงผล A2UI ของ Jetpack Compose กำหนดสถาปัตยกรรมแบบเลเยอร์ที่ช่วยให้คุณ เลือกเลเยอร์ที่เหมาะสมเพื่อสร้างแอปได้ นอกจากการแบ่งชั้นเชิงความหมายแล้ว รูปแบบการตั้งชื่อที่ชัดเจนยังสื่อถึงเจตนาของ API และควบคุมระดับการมองเห็นเพื่อหลีกเลี่ยงการปนเปื้อน classpath ด้วยประเภทภายในที่ไม่จำเป็น

API แบ่งออกเป็น 2 หมวดหมู่หลักตามกรณีการใช้งานและการมองเห็น ดังนี้

  1. API สำหรับนักพัฒนาแอปและคอมโพเนนต์: API สาธารณะที่ตั้งใจให้ใช้โดยตรง จะมีชื่อที่ชัดเจนและกระชับโดยมีคำนำหน้า A2ui (หรือคำนำหน้าของระบบการออกแบบและ การทดสอบ เช่น MaterialA2ui และ A2uiTest) ตัวอย่าง ได้แก่ A2uiCatalog, A2uiComponent และ A2uiException
  2. API สำหรับผู้ผสานรวมเฟรมเวิร์ก UI: API ที่ใช้โดยไลบรารีที่เชื่อมเลเยอร์ข้อมูลหลักและเฟรมเวิร์ก UI มีชื่อที่สื่อความหมายซึ่งขึ้นต้นด้วย A2uiCore API เหล่านี้ไม่ได้มีไว้สำหรับการอ้างอิงแอปพลิเคชันโดยตรงและยังคงซ่อนอยู่จากโค้ดของแอปพลิเคชันมาตรฐาน ตัวอย่างเช่น A2uiCoreCatalog, A2uiCoreDataModel และ A2uiCoreSurfaceModel

เนื่องจาก Data Layer หลักมีประเภทจากทั้ง 2 หมวดหมู่ จึงมีการ กระจายประเภทดังกล่าวไปยังอาร์ติแฟกต์ 2 รายการแยกกัน ได้แก่ androidx.a2ui:a2ui-model (สำหรับนักพัฒนาแอป ) และ androidx.a2ui:a2ui-engine (สำหรับผู้ผสานรวมเฟรมเวิร์ก) โครงสร้างนี้ช่วยให้ไลบรารีเฟรมเวิร์กขึ้นอยู่กับ a2ui-engine ในฐานะทรัพยากร Dependency ในการติดตั้งใช้งาน ซึ่งจะป้องกันไม่ให้ประเภท A2uiCore ปนเปื้อนเส้นทางคลาสของแอปสาธารณะ

หมวดหมู่ที่ 1: API สำหรับนักพัฒนาแอป

ตารางต่อไปนี้แสดงรายการ API สาธารณะที่มุ่งเน้นสำหรับนักพัฒนาแอปพลิเคชันและคอมโพเนนต์

androidx.a2ui:a2ui-model

ประเภท คำอธิบาย
A2uiSurfaceModel อินเทอร์เฟซแบบอ่านอย่างเดียวที่แสดงพื้นผิว UI
A2uiMessageProcessor ประเภทจุดแรกเข้าสำหรับการประมวลผลข้อความขาเข้า
A2uiMessageParser อินเทอร์เฟซของโปรแกรมแยกวิเคราะห์สำหรับข้อความโปรโตคอล
A2uiServerToClientMessage เพย์โหลดของข้อความขาเข้า
A2uiSchema ประเภทที่ใช้ในการกำหนดสคีมาพร็อพเพอร์ตี้ของคอมโพเนนต์
A2uiException ข้อยกเว้นที่ส่งและจัดการในเลเยอร์ต่างๆ
A2uiUserAction เพย์โหลดการดำเนินการที่สร้างขึ้นอันเป็นผลมาจากการโต้ตอบของผู้ใช้
A2uiClientToServerMessage ประเภทพื้นฐานสำหรับเพย์โหลดของข้อความขาออกทั้งหมด
A2uiActionInterceptor เครื่องสกัดกั้นการกระทําของผู้ใช้ระดับ Data Layer
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 ฟังก์ชัน Factory สำหรับสร้างอินสแตนซ์ของแคตตาล็อกพื้นฐานที่ใช้คอมโพเนนต์ Material 3
MaterialA2uiBasicCatalogV1Defaults การใช้งานแคตตาล็อกพื้นฐานเริ่มต้นของ Material 3

androidx.a2ui.compose:compose-ui-testing

ประเภท คำอธิบาย
A2uiTestController ตัวควบคุมการทดสอบสำหรับการจัดระเบียบการดำเนินการทดสอบ
A2uiComponentStub การติดตั้งใช้งานคอมโพเนนต์ที่จำลองหรือแทนที่
A2uiTestSurface ฟังก์ชันที่ประกอบกันได้ซึ่งแสดงพื้นผิวการทดสอบ

หมวดหมู่ที่ 2: API สำหรับผู้ผสานรวมเฟรมเวิร์ก

ตารางต่อไปนี้แสดงรายการ API ที่มีไว้สำหรับผู้ผสานรวมเฟรมเวิร์ก

androidx.a2ui:a2ui-engine

ประเภท คำอธิบาย
A2uiCoreCatalog มีชุดออบเจ็กต์ A2uiCoreComponentDefinition
A2uiCoreCatalogSerializer Serialiser สำหรับแคตตาล็อก A2UI
A2uiCoreComponentDefinition มีข้อมูลเมตาที่กำหนดคอมโพเนนต์
A2uiCoreSurfaceModel ใช้ A2uiSurfaceModel, แสดงรีจิสทรี
A2uiCoreSurfaceGroupModel ใช้ A2uiSurfaceGroupModel
A2uiCoreMessageProcessor ใช้ A2uiMessageProcessor
A2uiCoreDataModel ผู้ถือครองโมเดลข้อมูลเชิงโต้ตอบ
A2uiCoreComponentRegistry รีจิสทรีคอมโพเนนต์
A2uiCoreValueResolver ตัวช่วยเข้าถึงข้อมูลสำหรับใช้ในเครื่องมือประเมินแบบไดนามิก
A2uiCoreSchemaValidator โปรแกรมตรวจสอบสคีมาของคอมโพเนนต์