Monzo はデジタルとモバイルに特化したオンライン銀行で、同名のアプリも提供しています。同社の使命は、すべての人のためにお金を役立てることです。Monzo アプリでは、新規顧客が登録する際、身分証明書(パスポート、運転免許証、ID カードなど)の画像と自撮り動画を撮影して、身分証明書が申請者本人のものであることを示す必要があります。
Eyecon の取り組み
Monzo アプリの初期バージョンでは、camera2 API が使用されていました。一部のデバイスでランダムなクラッシュや異常な動作が発生し、身分証明書と自撮り動画の撮影のステップ以降に進まないユーザーが 25% に達していました。
こうした課題に対処するため、Monzo はカメラアプリの開発を容易にするために設計された Jetpack サポート ライブラリである CameraX を採用し、画像と動画撮影の要件を実装することにしました。CameraController
の takePicture()
メソッドを使用して身分証明書の画像のキャプチャを実装し、自撮り動画については startRecording()
メソッドと stopRecording()
メソッドを使用しました。同社は登録フローの設計の変更にあたって、より柔軟な設計を可能にする、シンプルなカメラ ライブラリを必要としていたのです。
結果
CameraX を導入したことでコードが簡素化され、その結果メンテナンス性が向上して開発も簡素化されました。また、CameraX に移行したことでクラッシュの頻度が大幅に低減し、カメラのフラッシュが突然起動することがなくなりました。これらすべてが、登録フローにおける離脱率の低下につながり、ユーザーからのフィードバックも改善されました。
CameraX を実装してコードを簡素化した結果、6,000 行の UI コードを含め、約 9,000 行のコードを削減できました。これによってコードの保守や開発が簡素化されただけでなく、単体テストにおけるコード カバレッジも向上しました。
重要なのは、登録フローへの影響が大きかったことです。CameraX の導入とフロー設計の簡素化により、身分証明書画像と自撮り動画の撮影における離脱率が 25% から 5% に減少しました。
「CameraX は安定性に優れていたため、当社のデベロッパーは容易に統合を行うことができました。CameraX は当社にとって完璧なライブラリでした。簡単に写真や動画を撮影できる方法だけを求めていたのですが、CameraX はその要件を満たすだけでなく、コードの簡素化とユーザー エクスペリエンスの向上にも役立ちました。」Monzo の Android デベロッパーである Anastasios Morfopoulos 氏は、このように語っています。
始める
CameraX のドキュメントを参照して、より強固でシンプルな画像キャプチャ コードをアプリやゲームに導入する方法についてご確認ください。