Monzo เป็นธนาคารและแอปที่ให้บริการทางการเงินแบบดิจิทัล โดยมีพันธกิจในการทำให้เงินทำงานให้ทุกคน ระบบการออกแบบของ Monzo เริ่มเบี่ยงเบนไปจาก Material Design ดังนั้นจึงต้องการวิธีที่ง่ายในการเขียนและดูแลรักษาคอมโพเนนต์ที่กำหนดเอง ซึ่งมีการพัฒนาอยู่ตลอดเวลา จึงเลือกใช้ Jetpack Compose
สิ่งที่พวกเขาทำ
ใน Compose คอมโพเนนต์ Material Design จะมีให้ใช้งานเป็นเลเยอร์เหนือ API พื้นฐานที่ไม่ขึ้นกับระบบการออกแบบ Monzo ใช้ API พื้นฐานเพื่อสร้างคลังคอมโพเนนต์ของตนเอง โดยใช้คอมโพเนนต์ Material เป็นข้อมูลอ้างอิง พวกเขาเริ่มจากการย้ายข้อมูลทีละหน้าจอ และตอนนี้ใช้ Compose ในหน้าจอใหม่ทั้งหมด ปัจจุบันวิศวกร Android ทุกคนใช้ Compose ในการใช้งานจริง "เราไม่พบปัญหาใหญ่ๆ จึงมั่นใจที่จะเริ่มใช้ Compose กับฟีเจอร์ใหม่บางอย่าง และในที่สุดก็ใช้กับฟีเจอร์ใหม่ทั้งหมด"
ผลลัพธ์
ทีม Monzo สร้างคอมโพเนนต์ที่ช่วยให้สร้างหน้าจอใหม่ได้อย่างง่ายดาย: "คอมโพเนนต์ที่เรามีให้พร้อมใช้งานช่วยให้การสร้างหน้าจอ ขณะเรียนรู้ Compose เป็น ประสบการณ์ที่ราบรื่นขึ้นมาก API ที่อิงตามสล็อตเป็นรูปแบบที่ยอดเยี่ยมซึ่งช่วยให้เราสร้างคอมโพเนนต์ขนาดใหญ่จากบล็อกการสร้างขนาดเล็กจำนวนมากได้อย่างง่ายดาย"
Compose ช่วยให้ทีม Monzo สร้างแอปคุณภาพสูงขึ้นได้ โดยเพิ่มฟีเจอร์ที่น่าสนใจซึ่งก่อนหน้านี้ไม่สามารถทำได้ใน Sprint “ตัวอย่างหนึ่งคือภาพเคลื่อนไหว ซึ่งเพิ่มได้ง่ายมากใน Compose จึงมีเหตุผลน้อยมากที่จะไม่ใส่ภาพเคลื่อนไหว เช่น การเปลี่ยนแปลงสี/ขนาด/ระดับความสูง ภาพเคลื่อนไหว 'มีไว้ก็ดี' เหล่านี้มักจะยากเกินกว่าจะคุ้มค่ากับความพยายามและความซับซ้อนในระบบ View"
ตอนนี้โค้ดของพวกเขาสั้นลง อ่าน เข้าใจ และ ดูแลรักษาง่ายขึ้น: "โค้ดแบบประกาศเข้าใจได้ง่ายกว่ามาก เมื่อเทียบกับโค้ดที่ จัดการลำดับชั้น UI ที่เปลี่ยนแปลงได้ นอกจากนี้ยังติดตามโค้ดได้ง่ายกว่ามาก เมื่อเขียนด้วยภาษาเดียวกันและมักจะอยู่ในไฟล์เดียวกัน แทนที่จะสลับไปมาระหว่าง Kotlin กับ XML อย่าเพิ่งพูดถึงธีมและสไตล์ XML เลย! การกำหนดธีมเข้าใจได้ง่ายกว่ามาก ใน Compose ธีมของเราประกอบด้วยพร็อพเพอร์ตี้ที่เรากำหนดเท่านั้น ค่าต่างๆ จะสอดคล้องกันในอุปกรณ์ต่างๆ และเนื่องจากอยู่ใน Kotlin จึงค้นหาและติดตามใน IDE ได้ง่ายมาก"
Compose ช่วยให้ทีม Monzo ทดสอบแอปและตรวจสอบว่าแอปเข้าถึงได้ง่าย ได้: “Compose ช่วยให้เรา เขียนการทดสอบที่เสถียรน้อยลง ทำงานได้อย่างน่าเชื่อถือ และทำให้เรามั่นใจมาก ว่าแอปของเราใช้งานได้จริงในมือของผู้ใช้ การทดสอบผ่านระบบความหมายยังช่วยให้มั่นใจได้ว่าหน้าจอของเราเข้าถึงได้ในระดับหนึ่งโดยค่าเริ่มต้น"
เริ่มต้นใช้งาน
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Compose