แนวคิดและการติดตั้งใช้งาน Jetpack Compose
โดยพื้นฐานแล้ว การสร้างสถานะคือการใช้การเปลี่ยนแปลงกับสถานะ UI แบบเพิ่มทีละรายการ สถานะมีอยู่เสมอ และจะเปลี่ยนแปลงตามเหตุการณ์ ความแตกต่างระหว่างเหตุการณ์และสถานะสรุปได้ในตารางด้านล่าง
เหตุการณ์ |
สถานะ |
ชั่วคราว คาดเดาไม่ได้ และมีอยู่เป็นระยะเวลาจำกัด |
Always exists. |
ปัจจัยการผลิตของรัฐ |
ผลผลิตของรัฐ |
ผลลัพธ์ของ UI หรือแหล่งที่มาอื่นๆ |
UI ใช้ |
กิจกรรมอาจมาจากแหล่งที่มาต่อไปนี้
- ผู้ใช้: ขณะโต้ตอบกับ UI ของแอป
- แหล่งที่มาอื่นๆ ของการเปลี่ยนแปลงสถานะ: API ที่แสดงข้อมูลแอปจาก UI, โดเมน หรือเลเยอร์ข้อมูล เช่น เหตุการณ์หมดเวลาของแถบแสดงข้อความ, กรณีการใช้งาน หรือที่เก็บตามลำดับ
API การผลิตสถานะ
API หลัก 2 รายการที่ใช้ในการผลิตสถานะขึ้นอยู่กับขั้นตอนของ ไปป์ไลน์ที่คุณอยู่
ขั้นตอนไปป์ไลน์ |
API |
อินพุต |
คุณควรใช้ API แบบอะซิงโครนัสเพื่อทำงานนอกเธรด UI เพื่อให้ UI ทำงานได้อย่างราบรื่นโดยไม่มีการกระตุก เช่น Coroutines หรือ Flow ใน Kotlin และ RxJava หรือการเรียกกลับในภาษาโปรแกรม Java |
เอาต์พุต |
คุณควรใช้ API ของ Observable Data Holder เพื่อลบล้างและแสดงผล UI อีกครั้ง เมื่อสถานะเปลี่ยนแปลง เช่น StateFlow หรือ LiveData ตัวเก็บข้อมูลที่สังเกตได้ ช่วยให้มั่นใจว่า UI จะมีสถานะ UI เสมอเพื่อแสดงบน หน้าจอ |
ใน 2 ตัวเลือกนี้ การเลือก API แบบไม่พร้อมกันสำหรับอินพุตมีอิทธิพลต่อ ลักษณะของไปป์ไลน์การสร้างสถานะมากกว่าการเลือก API ที่สังเกตได้ สำหรับเอาต์พุต เนื่องจากอินพุตกำหนดประเภทการประมวลผลที่อาจ ใช้กับไปป์ไลน์
การประกอบไปป์ไลน์การผลิตของรัฐ
ส่วนถัดไปจะครอบคลุมเทคนิคการผลิตสถานะที่เหมาะกับอินพุตต่างๆ มากที่สุด และ API เอาต์พุตที่ตรงกัน ไปป์ไลน์การผลิตของแต่ละรัฐคือ การผสมผสานระหว่างอินพุตและเอาต์พุต และควรมีลักษณะดังนี้
- Lifecycle aware: ในกรณีที่ UI ไม่ปรากฏหรือไม่ได้ใช้งาน ไปป์ไลน์การผลิตสถานะไม่ควรใช้ทรัพยากรใดๆ เว้นแต่จะมีการระบุไว้อย่างชัดเจน
- ใช้ง่าย: UI ควรแสดงผลสถานะ UI ที่สร้างขึ้นได้อย่างง่ายดาย ข้อควรพิจารณาสำหรับเอาต์พุตของไปป์ไลน์การผลิตสถานะจะ แตกต่างกันไปใน View API ต่างๆ เช่น ระบบ View หรือ Jetpack Compose
ประเภทเอาต์พุตในไปป์ไลน์การผลิตของรัฐ
การเลือก API เอาต์พุตสำหรับสถานะ UI และลักษณะการนำเสนอ ขึ้นอยู่กับ API ที่แอปใช้ในการแสดงผล UI เป็นอย่างมาก ในแอป Android คุณ สามารถเลือกใช้ Views หรือ Jetpack Compose ได้ ข้อควรพิจารณาในที่นี้ ได้แก่
- อ่านสถานะในลักษณะที่รับรู้ถึงวงจรการใช้งาน
- ระบุว่าควรแสดงสถานะในช่องเดียวหรือหลายช่องจาก ผู้ถือครองสถานะ
ตารางต่อไปนี้สรุป API ที่จะใช้สำหรับไปป์ไลน์การผลิตสถานะเมื่อใช้เฟรมเวิร์กของ View
อินพุต |
เอาต์พุต |
API แบบครั้งเดียว |
|
Stream API |
|
API แบบครั้งเดียวและแบบสตรีม |
|