Monzo 是一款银行服务和应用,提供数字和仅限移动设备的金融服务。他们的使命是让钱为每个人服务。为了注册新客户,Monzo 应用会拍摄身份证件(例如护照、驾驶执照或身份证)的图像,并拍摄自拍视频以证明身份证件属于申请人。
他们做了什么
早期版本的 Monzo 应用使用了 Camera2 API。某些设备上的随机崩溃和异常行为导致 25% 的潜在客户无法完成身份验证捕获和自拍视频步骤。
为了解决这些挑战,Monzo 转向 CameraX(一个旨在简化相机应用开发的 Jetpack 支持库)来实现其图像和视频捕获需求。使用 CameraController
,Monzo 使用 takePicture()
方法实现了身份证件图像捕获。对于自拍视频,他们使用了 startRecording()
和 stopRecording()
方法。他们希望更改注册流程的设计,并希望使用更简单的相机库来获得更大的设计灵活性。
结果
引入 CameraX 使 Monzo 能够简化其代码,使其更易于维护,并简化了开发。迁移到 CameraX 极大地减少了崩溃,他们不再看到相机的闪光灯随机激活。所有这些都有助于降低注册流程中的流失率,并改善了用户反馈。
通过实施 CameraX 简化代码,减少了近 9000 行代码,其中包括 6000 行 UI 代码。除了使代码更易于维护和简化开发之外,CameraX 还提高了单元测试的代码覆盖率。
重要的是,对注册流程的影响是显著的。随着 CameraX 和简化的流程设计变更的引入,身份验证图像捕获和自拍视频录制过程中的流失率从 25% 下降到约 5%。
“对我们来说,CameraX 的意义在于稳定性和为我们的开发者提供轻松的集成体验。它是我们完美的库——我们只需要一种简单的拍摄照片和视频的方法。CameraX 为我们提供了这一点,而且我们的代码更简洁,用户体验也更好。” _Anastasios Morfopoulos — Android 开发者,Monzo_
开始使用
查看CameraX 文档,了解如何在您的应用或游戏中引入更强大、更简化的图像捕获代码。