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