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.