Monzo สร้างแอปที่มีประสิทธิภาพและคุณภาพสูงขึ้นด้วย Compose

Monzo เป็นธนาคารและแอปที่ให้บริการทางการเงินดิจิทัล พันธกิจขององค์กรนี้คือทำให้เงินทำงานได้สำหรับทุกคน ระบบการออกแบบของ Monzo เริ่มเบี่ยงเบนไปจาก Material Design แล้ว ดังนั้นจึงต้องการวิธีที่เขียนและดูแลรักษาคอมโพเนนต์ที่กําหนดเองซึ่งพัฒนาอยู่ตลอดเวลาได้ง่ายๆ จึงเลือกใช้ Jetpack Compose

สิ่งที่พวกเขาทำ

Compose มีคอมโพเนนต์ Material Design เป็นเลเยอร์เหนือ API พื้นฐานที่ไม่ขึ้นอยู่กับระบบการออกแบบ Monzo ใช้ Foundation API เพื่อสร้างคลังคอมโพเนนต์ของตัวเองโดยใช้คอมโพเนนต์ Material เป็นข้อมูลอ้างอิง โดยเริ่มจากย้ายข้อมูลทีละหน้าจอ และตอนนี้ใช้เครื่องมือเขียนในทุกหน้าจอใหม่ ตอนนี้วิศวกร Android ทุกคนใช้ Compose ในเวอร์ชันที่ใช้งานจริงแล้ว "เราไม่พบปัญหาสำคัญใดๆ เราจึงมั่นใจที่จะเริ่มใช้ Compose ในฟีเจอร์ใหม่บางรายการ และในที่สุดก็ใช้กับฟีเจอร์ใหม่ทั้งหมด"

ผลลัพธ์

ทีม Monzo ได้สร้างคอมโพเนนต์ที่ช่วยให้สร้างหน้าจอใหม่ได้อย่างง่ายดาย "คอมโพเนนต์ที่เรามีให้ใช้งานทำให้การสร้างหน้าจอขณะเรียนรู้ Compose ลื่นไหลขึ้นมาก API ตามช่องเป็นรูปแบบที่ยอดเยี่ยมซึ่งช่วยให้เราสร้างคอมโพเนนต์ขนาดใหญ่จากองค์ประกอบเล็กๆ จำนวนมากได้อย่างง่ายดาย"

Compose ช่วยให้ทีม Monzo สร้างแอปที่มีคุณภาพสูงขึ้นได้ โดยเพิ่มฟีเจอร์ที่น่าสนใจซึ่งก่อนหน้านี้ไม่สามารถเพิ่มได้ใน Sprint "ตัวอย่างหนึ่งคือภาพเคลื่อนไหว ซึ่งเพิ่มใน Compose ได้ง่ายมาก เราจึงมีเหตุผลเพียงเล็กน้อยที่จะไม่ใส่ภาพเคลื่อนไหว เช่น การเปลี่ยนแปลงสี/ขนาด/ระดับ ภาพเคลื่อนไหว "ควรมี" เหล่านี้มักจะยากเกินกว่าที่จะคุ้มค่ากับความพยายามและความซับซ้อนในระบบมุมมอง"

ตอนนี้โค้ดสั้นลง รวมถึงอ่าน ทำความเข้าใจ และดูแลรักษาได้ง่ายขึ้น "โค้ดแบบประกาศทำความเข้าใจได้ง่ายกว่ามากเมื่อเทียบกับโค้ดที่จัดการลําดับชั้น UI ที่เปลี่ยนแปลงได้ นอกจากนี้ ยังติดตามโค้ดได้ง่ายขึ้นเมื่อเขียนทั้งหมดเป็นภาษาเดียวกันและมักจะอยู่ในไฟล์เดียวกัน แทนที่จะต้องสลับไปมาระหว่าง Kotlin กับ XML อย่าเพิ่งพูดถึงธีมและสไตล์ XML ธีมเข้าใจง่ายขึ้นมากใน Compose ธีมของเราประกอบด้วยพร็อพเพอร์ตี้ที่เรากำหนดเท่านั้น ค่าต่างๆ จะสอดคล้องกันในทุกอุปกรณ์ และเนื่องจากเขียนด้วย Kotlin จึงค้นหาและติดตามใน IDE ได้ง่ายมาก"

Compose ช่วยให้ทีม Monzo ทดสอบแอปและตรวจสอบว่าแอปเข้าถึงได้ง่าย "เครื่องมือนี้ช่วยให้เราเขียนการทดสอบที่มีความเสถียรมากขึ้น ทำงานได้อย่างน่าเชื่อถือ และทำให้เรามีความมั่นใจมากว่าแอปของเราใช้งานได้จริงในมือผู้ใช้ การทดสอบผ่านระบบความหมายยังช่วยให้มั่นใจว่าหน้าจอของเราเข้าถึงได้โดยค่าเริ่มต้นอย่างสมเหตุสมผลเป็นอย่างน้อย"

เริ่มต้นใช้งาน

ดูข้อมูลเพิ่มเติมเกี่ยวกับเขียน