Monzo redujo más de 9,000 líneas de código y mejoró la disminución del registro 5 veces con CameraX

Monzo es un servicio bancario y una app que ofrece servicios financieros digitales solo para dispositivos móviles. Su misión es llevar dinero a todo el mundo. Para registrar nuevos clientes, la app de Monzo captura imágenes de un documento de identificación (como un pasaporte, una licencia de conducir o una tarjeta de identificación) y toma un video estilo selfie con el fin de demostrar que los documentos de identificación son del solicitante.

Qué hizo la empresa

Las primeras versiones de la app de Monzo usaban las APIs de Camera2. Las fallas aleatorias y los comportamientos extraños en algunos dispositivos hicieron que un 25% de los clientes potenciales no vayan más allá de la captura de identificación y los pasos en video en estilo selfie.

Para abordar estos desafíos, Monzo recurrió a CameraX, una biblioteca de compatibilidad de Jetpack diseñada para facilitar el desarrollo de apps de cámara, a fin de implementar sus requisitos de captura de imágenes y video. Con CameraController, Monzo implementó la captura de imágenes de documentos de identificación mediante el método takePicture(). Para el video estilo selfie, usó los métodos startRecording() y stopRecording(). Querían realizar cambios de diseño en el flujo de registro y una biblioteca de cámara más directa que les diera más flexibilidad de diseño.

Resultados

La incorporación de CameraX permitió a Monzo para simplificar su código, hacerlo más accesible y ayudó a simplificar el desarrollo. El traspaso a CameraX redujo considerablemente las fallas y ya no se producen activaciones aleatorias del flash de la cámara. Todo esto contribuyó a una reducción del porcentaje de abandono en el flujo de registro y mejoró los comentarios de los usuarios.

La simplificación del código resultante de la implementación de CameraX redujo casi 9,000 líneas de código, incluidas 6,000 líneas de código de la IU. Además de facilitar y mantener el código más fácil, CameraX también generó una mejor cobertura de código en pruebas de unidades.

Es importante destacar que el impacto en el flujo de registro fue significativo. Con la introducción de CameraX y el diseño simplificado de flujo, el porcentaje de abandono en la etapa de captura de imágenes de identificaciones y la grabación de video estilo selfie disminuyó de un 25% a un 5% aproximadamente.

"Para nosotros, CameraX significó estabilidad y una experiencia de integración sencilla para nuestros desarrolladores. Fue la biblioteca perfecta para nosotros; solo queríamos contar con un modo sencillo de tomar fotos y videos. CameraX nos dio eso y, además, nuestro código es más simple y la experiencia del usuario es mejor". Anastasios Motorfopoulos, desarrollador de Android para Monzo

Comenzar

Consulta la documentación de CameraX para obtener información sobre cómo agregar un código de captura de imágenes más sólido y simplificado a tu app o juego.