Monzo ist ein Banking-Dienst und eine App, die digitale und mobile Finanzdienstleistungen anbietet. Ihr Ziel ist es, Geld für alle zugänglich zu machen. Bei der Registrierung neuer Kunden werden in der Monzo App Bilder eines Identitätsdokuments (z. B. Reisepass, Führerschein oder Personalausweis) aufgenommen und ein Selfie-Video erstellt, um nachzuweisen, dass die Identitätsdokumente dem Antragsteller gehören.
Vorgehensweise
In früheren Versionen der Monzo App wurden camera2-APIs verwendet. Auf einigen Geräten kam es zu zufälligen Abstürzen und ungewöhnlichem Verhalten. Das führte dazu, dass 25% der potenziellen Kunden die Schritte zum Erfassen des Ausweises und des Selfie-Videos nicht abgeschlossen haben.
Um diese Herausforderungen zu meistern, setzte Monzo auf CameraX, eine Jetpack-Supportbibliothek, die die Entwicklung von Kamera-Apps vereinfachen soll, um die Anforderungen an die Aufnahme von Bildern und Videos zu erfüllen. Mit CameraController
hat Monzo die Erfassung von Bildern von Ausweisdokumenten mit der Methode takePicture()
implementiert. Für das Selfie-Video wurden die Methoden startRecording()
und stopRecording()
verwendet. Sie wollten das Design des Registrierungsprozesses ändern und eine unkompliziertere Kamerabibliothek, die ihnen mehr Designflexibilität bietet.
Ergebnisse
Durch die Einführung von CameraX konnte Monzo seinen Code vereinfachen und so die Wartung erleichtern. Außerdem wurde die Entwicklung vereinfacht. Durch die Umstellung auf CameraX sind Abstürze deutlich seltener geworden und der Kamerablitz wird nicht mehr zufällig aktiviert. All das hat dazu beigetragen, dass die Absprungrate im Registrierungsablauf gesunken ist und das Nutzer-Feedback sich verbessert hat.
Die Vereinfachung des Codes durch die Implementierung von CameraX führte zu einer Reduzierung um fast 9.000 Codezeilen, darunter 6.000 Zeilen UI-Code. CameraX hat nicht nur die Wartung des Codes erleichtert und die Entwicklung vereinfacht, sondern auch die Codeabdeckung in Einheitentests verbessert.
Die Auswirkungen auf den Registrierungsprozess waren erheblich. Mit der Einführung von CameraX und den vereinfachten Änderungen am Ablaufdesign sank die Abbruchrate bei der Aufnahme von Ausweisbildern und der Aufzeichnung von Selfie-Videos von 25% auf etwa 5%.
„Für uns ging es bei CameraX vor allem um Stabilität und eine einfache Integration für unsere Entwickler. Es war die perfekte Bibliothek für uns, da wir nur eine einfache Möglichkeit zum Aufnehmen von Fotos und Videos suchten. CameraX hat uns genau das ermöglicht. Außerdem ist unser Code jetzt einfacher und die Nutzerfreundlichkeit hat sich verbessert.“ Anastasios Morfopoulos, Android-Entwickler bei Monzo
Erste Schritte
In der CameraX-Dokumentation erfahren Sie, wie Sie robusteren und einfacheren Code für die Bildaufnahme in Ihre App oder Ihr Spiel einfügen.