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