Monzo ลดโค้ดไปกว่า 9,000 บรรทัดและปรับปรุงการลงทะเบียนที่หยุดกลางคันได้ถึง 5 เท่าด้วย CameraX
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
Monzo เป็นบริการและแอปธนาคารที่ให้บริการทางการเงินแบบดิจิทัลและบนอุปกรณ์เคลื่อนที่เท่านั้น
พันธกิจของพวกเขาคือการทำให้เงินทำงานเพื่อทุกคน หากต้องการลงชื่อสมัครใช้ลูกค้าใหม่ แอป Monzo จะบันทึกรูปภาพเอกสารระบุตัวตน (เช่น
หนังสือเดินทาง ใบขับขี่ หรือบัตรประจำตัว) และถ่ายวิดีโอเซลฟีเพื่อพิสูจน์ว่า
เอกสารระบุตัวตนเป็นของผู้สมัคร
สิ่งที่พวกเขาทำ
แอป
Monzo
เวอร์ชันแรกๆ ใช้ Camera2 API การขัดข้องแบบสุ่มและพฤติกรรมที่ผิดปกติในอุปกรณ์บางเครื่องทำให้
ลูกค้าที่มีศักยภาพ 25% ไม่ดำเนินการต่อหลังจากขั้นตอนการจับภาพเพื่อระบุตัวตนและ
วิดีโอเซลฟี
Monzo จึงหันมาใช้ CameraX ซึ่งเป็นไลบรารีการสนับสนุน Jetpack
ที่ออกแบบมาเพื่อให้การพัฒนาแอปกล้องง่ายขึ้น เพื่อตอบโจทย์ความท้าทายเหล่านี้และใช้ข้อกำหนดในการจับภาพและ
วิดีโอ Monzo ใช้
CameraController
เพื่อติดตั้งใช้งาน
การจับภาพเอกสารระบุตัวตนโดยใช้
takePicture()
สำหรับวิดีโอเซลฟี ผู้ใช้ใช้วิธีการ
startRecording()
และ
stopRecording()
โดยต้องการเปลี่ยนแปลงการออกแบบขั้นตอนการลงชื่อสมัครใช้ และต้องการ
คลังกล้องที่ตรงไปตรงมายิ่งขึ้นซึ่งจะช่วยให้มีความยืดหยุ่นในการออกแบบมากขึ้น
ผลลัพธ์
การเปิดใช้ CameraX ช่วยให้ Monzo ลดความซับซ้อนของโค้ด ทำให้ดูแลรักษาได้ง่ายขึ้น และช่วยลดความซับซ้อนในการพัฒนา การเปลี่ยนไปใช้ CameraX ช่วยลดข้อขัดข้องได้อย่างมาก และผู้ใช้จะไม่เห็นการเปิดใช้งานแฟลชกล้องแบบสุ่มอีกต่อไป
ทั้งหมดนี้ช่วยลดอัตราการเลิกกลางคันในขั้นตอนการลงชื่อสมัครใช้และปรับปรุงความคิดเห็นของผู้ใช้
การลดความซับซ้อนของโค้ดที่เกิดจากการติดตั้งใช้งาน CameraX ทำให้โค้ดลดลงเกือบ 9,000 บรรทัด ซึ่งรวมถึงโค้ด UI 6,000 บรรทัด นอกเหนือจากการทำให้โค้ดบำรุงรักษาง่ายขึ้นและลดความซับซ้อนของการพัฒนาแล้ว CameraX ยังช่วยให้การทดสอบหน่วยครอบคลุมโค้ดได้ดีขึ้นด้วย
ที่สำคัญคือ ผลกระทบต่อขั้นตอนการลงชื่อสมัครใช้มีนัยสำคัญ การเปิดตัว CameraX และการเปลี่ยนแปลงการออกแบบโฟลว์ที่เรียบง่ายขึ้นทำให้อัตราการหลุดระหว่างการจับภาพระบุตัวตนและการบันทึกวิดีโอเซลฟีลดลงจาก 25% เหลือประมาณ 5%
"สำหรับเรา CameraX มุ่งเน้นที่ความเสถียรและมอบประสบการณ์การผสานรวมที่ง่ายดาย
สำหรับนักพัฒนาแอปของเรา ซึ่งเป็นคลังที่เหมาะกับเรามาก เพราะเราแค่อยากได้วิธีง่ายๆ ในการถ่ายรูปและวิดีโอ CameraX ช่วยให้เราทำสิ่งนั้นได้ แถมโค้ดของเรายังง่ายขึ้นและประสบการณ์ของผู้ใช้ก็ดีขึ้นด้วย" Anastasios
Morfopoulos - นักพัฒนาแอป Android, Monzo
เริ่มต้นใช้งาน
ดูเอกสารประกอบ CameraX เพื่อดูวิธี
นำโค้ดการจับภาพที่แข็งแกร่งและเรียบง่ายยิ่งขึ้นมาใช้ในแอปหรือเกม
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-27 UTC"],[],[],null,["# Monzo reduced over 9,000 lines of code and improved registration dropout by 5x with CameraX\n\nMonzo is a banking service and app offering digital and mobile-only financial\nservices. Their mission is to make money work for everyone. To sign up new\ncustomers, the Monzo app captures images of an identification document (such as\npassport, driving license, or ID card) and takes a selfie video to prove that\nthe identification documents are for the applicant.\n\nWhat they did\n-------------\n\nEarly versions of the\n[Monzo](https://play.google.com/store/apps/details?id=co.uk.getmondo)\napp used camera2 APIs. Random crashes and odd behaviors on some devices led to\n25% of potential customers not proceeding beyond the identification capture and\nselfie video steps.\n\nTo address these challenges, Monzo turned to CameraX, a Jetpack support library\ndesigned to make camera app development easier, to implement their image and\nvideo capture requirements. Using\n[`CameraController`](/reference/androidx/camera/view/CameraController), Monzo implemented\nthe identification document image capture using the\n[`takePicture()`](/reference/androidx/camera/view/CameraController#takePicture(androidx.camera.core.ImageCapture.OutputFileOptions,%20java.util.concurrent.Executor,%20androidx.camera.core.ImageCapture.OnImageSavedCallback))\nmethod. For the selfie video, they used the\n[`startRecording()`](/reference/androidx/camera/view/CameraController#startRecording(androidx.camera.view.video.OutputFileOptions,%20java.util.concurrent.Executor,%20androidx.camera.view.video.OnVideoSavedCallback))\nand\n[`stopRecording()`](/reference/androidx/camera/view/CameraController#stopRecording())\nmethods. They wanted to make design changes to the sign-up flow and wanted a\nmore straightforward camera library that would give them more design\nflexibility.\n\nResults\n-------\n\nIntroducing CameraX enabled Monzo to simplify their code, making it more\nmaintainable, and has helped simplify development. The move to CameraX has\ngreatly reduced crashes and they are no longer seeing random activations of the\ncamera flash. All of this has contributed to a reduction in the drop-off rate in\nthe sign-up flow and has improved user feedback.\n\nThe simplification in code resulting from implementing CameraX reduced almost\n9,000 lines of code, including 6,000 lines of UI code. In addition to making\nthe code easier to maintain and simplifying development, CameraX also led to\nbetter code coverage in unit tests.\n\nImportantly, the impact on the sign-up flow was significant. With the\nintroduction of CameraX and the simplified flow design changes, the dropout rate\nfrom identification image capture and selfie video recording dropped from 25% to\naround 5%.\n\n\"For us, CameraX was all about stability and having an easy integration\nexperience for our developers. It was the perfect library for us---we just\nwanted a simple way to take pictures and videos. CameraX has given us that, plus\nour code is simpler and the user experience better.\" *Anastasios\nMorfopoulos---Android developer, Monzo*\n\nGet started\n-----------\n\nCheck out the [CameraX documentation](/training/camerax) to learn how to\nintroduce more robust and simplified image capture code to your app or game."]]