O Monzo reduziu mais de 9 mil linhas de código e melhorou o número de cancelamento de registros em cinco vezes com o CameraX

O Monzo é um app que oferece serviços bancários e financeiros exclusivamente em meios digitais e em dispositivos móveis. A missão da empresa é tornar a gestão financeira acessível para todos. Para cadastrar novos clientes, o app Monzo tira fotos de um documento de identificação (como passaporte, carteira de motorista ou documento de identidade) e grava um vídeo no modo selfie para provar que os documentos de identificação pertencem à pessoa que está fazendo o cadastro.

O que a equipe fez

As primeiras versões do app Monzo usavam APIs camera2. Falhas aleatórias e comportamentos estranhos em alguns dispositivos fizeram com que 25% dos possíveis clientes não passassem das etapas de identificação e gravação de vídeo no modo selfie.

Para enfrentar esses desafios, o Monzo recorreu à CameraX, uma biblioteca de suporte do Jetpack que facilita o desenvolvimento de apps de câmera, para a implementação dos requisitos de captura de imagem e vídeo. Com a CameraController, a equipe do Monzo implementou a captura de imagem do documento de identificação usando o método takePicture(). Para o vídeo no modo selfie, a equipe usou os métodos startRecording() e stopRecording(). A equipe queria conseguir mudar o design do fluxo de cadastro e precisava usar uma biblioteca de câmera mais simples, que oferecesse mais flexibilidade de design.

Resultados

Ao introduzir a CameraX, a equipe Monzo conseguiu simplificar o código, deixando-o mais sustentável, além de simplificar o desenvolvimento. Com a CameraX, o número de falhas teve uma redução significativa e as ativações aleatórias do flash da câmera deixaram de acontecer. Tudo isso contribuiu para uma redução na taxa de desistência no fluxo de cadastro e melhorou o feedback dos usuários.

A simplificação do código gerada pela implementação da CameraX eliminou quase 9 mil linhas de código, incluindo 6 mil linhas de código de IU. Além de facilitar a manutenção do código e simplificar o desenvolvimento, a CameraX também resultou em uma melhor cobertura de código em testes de unidade.

O mais importante é que o impacto no fluxo de cadastros foi significativo. Com a introdução da CameraX e as simplificações do fluxo de design, a taxa de desistência no momento de captura da imagem de identificação e gravação de vídeos no modo selfie caiu de 25% para cerca de 5%.

"Para nós, o melhor atributo da CameraX foi a estabilidade e uma experiência de integração fácil para nossos desenvolvedores. Encontramos a biblioteca perfeita, já que queríamos apenas uma maneira simples de tirar fotos e gravar vídeos. A CameraX entregou isso e ainda possibilitou a simplificação do código e a aprimoração da experiência do usuário". Anastasios Morfopoulos, desenvolvedor Android da Monzo

Primeiros passos

Consulte a documentação da CameraX para aprender a introduzir códigos de captura de imagem mais robustos e simplificados em apps ou jogos.