Monzo 使用 CameraX 减少了 9000 多行代码,并将注册放弃率降低了 5 倍

Monzo 是一家提供数字和纯移动金融服务的银行服务和应用。他们的使命是让每个人都能轻松理财。为了注册新客户,Monzo 应用会拍摄身份证明文件(如护照、驾照或身份证)的图像,并拍摄自拍视频以证明身份证明文件属于申请人。

他们做了什么

Monzo 应用的早期版本使用 camera2 API。某些设备上出现的随机崩溃和奇怪行为导致 25% 的潜在客户无法完成身份捕获和自拍视频步骤。

为了解决这些挑战,Monzo 转向了 CameraX,这是一个 Jetpack 支持库,旨在简化相机应用开发,以实现其图像和视频捕获要求。Monzo 使用 CameraController,通过 takePicture() 方法实现了身份证明文件图像捕获。对于自拍视频,他们使用了 startRecording()stopRecording() 方法。他们希望对注册流程进行设计更改,并希望有一个更简单的相机库,能提供更大的设计灵活性。

成果

引入 CameraX 使 Monzo 能够简化其代码,使其更易于维护,并有助于简化开发。改用 CameraX 大幅减少了崩溃,他们也不再看到相机闪光灯随机激活的情况。所有这些都有助于降低注册流程中的放弃率,并改善了用户反馈。

实施 CameraX 带来的代码简化减少了近 9000 行代码,其中包括 6000 行 UI 代码。除了使代码更易于维护和简化开发之外,CameraX 还提高了单元测试的代码覆盖率。

重要的是,对注册流程的影响显著。引入 CameraX 和简化的流程设计更改后,从身份图像捕获和自拍视频录制步骤的放弃率从 25% 下降到约 5%。

“对我们来说,CameraX 关乎稳定性,以及为我们的开发者提供简单的集成体验。它对我们来说是完美的库——我们只是想要一种简单的方法来拍摄照片和视频。CameraX 给了我们这些,此外,我们的代码更简单,用户体验也更好了。” Anastasios Morfopoulos——Monzo Android 开发者

开始使用

查看 CameraX 文档,了解如何在您的应用或游戏中引入更健壮和简化的图像捕获代码。