Monzo 利用 CameraX 缩减了 9,000 多行代码并使注册流程中的访问者流失率降低了 5 倍
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Monzo 是一家银行服务公司并提供了同名应用,仅在移动设备上提供数字金融服务。他们的使命是向每个人传授生财之道。为了完成新客户注册,Monzo 应用会拍摄身份证明文件(例如护照、驾照或身份证)的图片,并拍摄自拍视频来证明身份证明文件属于申请者。
策略
Monzo 应用的早期版本使用了 camera2 API。在某些设备上会随机发生崩溃和异常行为,这导致 25% 的潜在客户无法继续进行身份证明拍摄和自拍视频步骤。
为了应对这些挑战,Monzo 转为采用 CameraX。这是一个 Jetpack 支持库,旨在简化相机应用的开发,以满足他们的图片和视频拍摄要求。通过 CameraController
,Monzo 使用 takePicture()
方法实现了身份证明文件的图片拍摄。对于自拍视频,他们则使用了 startRecording()
和 stopRecording()
方法。他们希望从设计上更改注册流程,并希望相机库更为简洁,从而赋予他们更多设计灵活性。
成果
引入 CameraX 使 Monzo 得以简化代码,使代码更具可维护性,并且有助于简化开发。迁移到 CameraX 后,崩溃次数大幅减少,并且没有再出现相机闪光灯随机激活的现象。所有这些措施都有助于降低注册流程中的访问者流失率,并且获得了更多用户的正面反馈。
受益于 CameraX 的代码简化使得代码行数减少了约 9,000 行,其中包括 6,000 行界面代码。CameraX 的使用不仅使代码更易于维护、简化了开发工作,而且还提高了单元测试中的代码覆盖率。
重要的是,这对注册流程带来了非常大的影响。随着 CameraX 的引入以及流程设计的简化,身份证明图片拍摄和自拍视频录制流程中的访问者流失率从 25% 下降到了 5% 左右。
“对于我们来说,CameraX 的引入完全是为了提高稳定性,并为我们的开发者提供了轻松的集成体验。这个库给我们带来了非常理想的效果 - 我们只希望能够轻松拍摄图片和视频。CameraX 让我们实现了这个目标,而且我们的代码得到了简化,用户体验也得到了提升。”Anastasios Morfopoulos – Monzo 的 Android 开发者
开始使用
请查看 CameraX 文档,了解如何为应用或游戏引入更强大且经过简化的图片拍摄代码。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-01-10。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-01-10\u3002"}
[[["易于理解","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"]],["最后更新时间 (UTC):2024-01-10。"]]