O mercado de aplicativos é muito competitivo e a expectativa dos usuários por uma boa experiência e qualidade é alta. Por esse motivo, a observabilidade em mobile se tornou um pilar importante para garantir a satisfação do usuário e a evolução constante dos aplicativos.
O que é observabilidade em mobile?
Observabilidade em aplicativos móveis é a capacidade de visualizar e analisar dados relevantes sobre o comportamento dos apps, de modo a identificar problemas e oportunidades de melhoria em tempo real.
Em linhas gerais, queremos monitorar a qualidade do aplicativo e garantir que ele está livre de falhas. Mas, caso aconteça algum incidente, precisamos ter ferramentas que nos ajudem a reagir rapidamente para identificar os problemas com precisão.
Nesse mundo de apps, uma falha pode gerar muitos comentários e avaliações negativas nas lojas de aplicativos. Por isso, é importante que qualquer problema seja corrigido o mais rápido possível para que menos usuários sejam afetados.
Mas o que você deve procurar para ter uma boa observabilidade? Uma dica é tentar responder a essas perguntas:
- O aplicativo está livre de falhas? Isso é monitorado? Seu time recebe alertas em tempo real sobre as falhas?
- Quando uma falha é analisada, existem informações suficientes? Como dados do dispositivo, sistema operacional, memória, CPU, versão do aplicativo que originou o erro e também o detalhamento do erro (stack trace)?
- É possível reproduzir os passos do usuário no momento da falha? A ferramenta de observabilidade grava todas as interações/ações que o usuário fez antes da falha?
- Todas as chamadas de API com taxas de sucesso e falha, tempos de resposta são monitorados? Seu time consegue dizer com precisão se o erro aconteceu no front end ou se foi algum serviço?
- Existe monitoramento do tempo de abertura do app, de carregamento das páginas e do tempo consumido pelas chamadas de API?
- Índices de performance como o Apdex são conhecidos e monitorados?
A seguir vamos falar um pouco dos principais itens que compõem uma boa ferramenta de observabilidade dentro do contexto de aplicativos móveis.
O que uma boa ferramenta de observabilidade em mobile deve ter?
Monitoramento de falhas (crashes)
A alta incidência de falhas é uma das principais razões que levam os usuários a darem uma avaliação ruim nas lojas ou até mesmo desinstalar os apps (AppSamurai).
É claro que, mesmo após um longo processo de teste e depuração, os aplicativos ainda podem travar, e essas falhas resultarão em avaliações negativas. Os usuários serão rápidos em abandonar os aplicativos depois que eles travarem, por isso é importante que as falhas sejam tratadas o mais rápido possível.
Uma das métricas mais conhecidas por essas ferramentas é a crash-free users (usuários livres de falhas). O recomendado é sempre estar abaixo de 1% e próximo de zero, ou seja, menos de 1% da base de usuários com algum impacto em produção.
Uma boa ferramenta de observabilidade consegue capturar os detalhes do erro (stack trace), dados do device e do ambiente, como dados de CPU, memória, espaço de armazenamento disponível, nível de bateria, estado da conectividade com a internet, quantidade de usuários afetados por falha etc.
Essa coleta de dados é essencial para que o time consiga reproduzir o problema com maior facilidade e atuar nas correções com agilidade.
A seguir temos um print do console principal de uma das ferramentas mais famosas e gratuitas, o Firebase Crashlytics do Google.
Existem várias outras ferramentas pagas disponíveis no mercado como Sentry, Instabug, Bugsnag, Datadog, New Relic, Dynatrace, entre outras, mas que possuem alguns recursos interessantes.
Por exemplo, algumas delas conseguem capturar muito mais informações como, por exemplo, as chamadas de API que foram feitas antes de uma falha, para auxiliar o time no diagnóstico.
Um dos recursos mais úteis é a gravação dos últimos passos do usuário até o momento da falha, de forma que podemos reproduzir com precisão todas as ações e interações do usuário com o aplicativo.
Monitoramento de performance (APM)
Segundo o Google, 53% dos usuários abandonam o app ou site se ele levar mais de 3 segundos para carregar. Por isso, monitorar o tempo de resposta do aplicativo para o carregamento das páginas e para responder as interações do usuário é fundamental.
É aqui que entra o APM (application performance monitoring), que é o monitoramento em tempo real do desempenho do aplicativo. Essa prática consiste em monitorar o tempo de carregamento de todas as telas do app, assim como as chamadas de API.
Com um bom monitoramento e um sistema de alertas eficaz, o time consegue ser avisado em tempo real se existem telas do aplicativo ou serviços que estão demorando mais tempo do que o esperado para serem carregados. Dessa forma, podendo proativamente se antecipar aos problemas.
Para exemplificar, imagine que a regra geral do aplicativo é que as páginas carreguem em até 5 segundos, então caso isso leve mais tempo, pode ser disparado um alerta para investigar o que está acontecendo. Talvez seja uma falha no app, ou até mesmo um problema na API, mas independente do motivo, isso nos permite antecipar aos problemas e não apenas reagir a eles quando temos uma reclamação de algum usuário.
Outra técnica de monitoramento bem comum é o tracing, que consiste em logs que os desenvolvedores colocam no código para monitorar determinados trechos do aplicativo.
Para concluir, o APM é particularmente importante em ambientes de produção, onde o desempenho de um aplicativo pode afetar diretamente a satisfação do usuário e os resultados financeiros da empresa. Com o monitoramento constante, as empresas podem identificar e corrigir problemas de desempenho antes que eles afetem negativamente a experiência do usuário.
Alertas em tempo real
Até o momento, vimos as duas principais características de uma boa ferramenta de observabilidade voltada a aplicativos móveis, que são: o monitoramento de falhas e o monitoramento de desempenho.
E para que tudo isso ganhe vida, é importante que tudo esteja conectado com um poderoso sistema de alertas em tempo real.
Por exemplo: no caso de uma falha, é importante enviar alertas para notificar o time que erros estão acontecendo. Estes alertas podem ser enviados com base em regras customizadas, tais como:
- Receber um alerta se 2% da base de usuários for afetada por um bug;
- Receber alertas sobre qualquer novo bug que ocorra na nova versão;
- Receber alertas se algum bug reincidente aparecer, apenas para dar alguns exemplos.
O mesmo se aplica para o APM, onde a ideia é receber alertas se as métricas pré-estipuladas de desempenho para o aplicativo não estiverem sendo atingidas.
Com um sistema eficaz de alertas em tempo real, o time pode reagir proativamente para se antecipar às reclamações dos usuários, esse é o objetivo.
Apdex (Application Performance Index)
Por fim, chegamos em uma das definições mais importantes no mundo de observabilidade para aplicativos móveis, o Apdex. Existem algumas definições mais formais sobre o Apdex, mas explicando de uma forma simples, é uma nota composta de 0 (ruim) a 1 (ótimo) que resume em apenas um número como está a percepção do usuário sobre o seu aplicativo.
Esta é uma métrica muito importante para acompanhar como está a satisfação dos usuários ao longo do tempo, pois ela é um agrupado de vários indicadores que avaliam:
- A saúde do aplicativo;
- Tempos de carregamento do app e telas;
- Quantidade de crashes;
- Desempenho de chamadas de API etc.
O Apdex também pode ser customizado conforme a necessidade. Por exemplo: podem existir configurações determinando que algumas áreas do aplicativo precisam ter um tempo e carregamento de no máximo 3 segundos. Porém, para outras talvez menos importantes, 5 segundos seja aceitável.
Conclusão
A observabilidade é fundamental para garantir a satisfação do usuário e a evolução constante dos aplicativos móveis.
Como vimos no artigo, uma boa ferramenta de observabilidade deve:
- Monitorar as falhas e a performance do aplicativo;
- Coletar dados relevantes;
- Enviar alertas em tempo real;
- Permitir a reprodução de problemas para que o time possa atuar nas correções com agilidade.
Além disso, é importante que o time esteja atento aos índices de qualidade e desempenho do aplicativo, como o número de usuários, sessões, falhas e tempo de resposta, e que utilize as informações obtidas para tomar decisões estratégicas e realizar melhorias contínuas.
Investir em observabilidade é investir na qualidade do aplicativo e na satisfação dos usuários. Isso pode ser determinante para o sucesso de um produto no mercado altamente competitivo de aplicativos móveis.
Ricardo Lecheta, especialista em mobile e Chief Technology Officer na BRQ