O registro e monitoramento são dois pilares da estabilidade de aplicativos móveis. De acordo com a Gartner (2025), o mercado de soluções APM atingirá US$ 8 bilhões até 2027. O registro adequado permite não apenas encontrar bugs, mas também prever problemas antes que eles afetem os usuários.
Principais pontos
O registro de aplicativos móveis no iOS é baseado no os_log — o sistema integrado da Apple, disponível desde o iOS 10. O os_log escreve logs em um único log sistêmico (no dispositivo ou através do Console.app), suporta categorias, níveis e tags de privacidade. A combinação de registro e monitoramento no iOS através do Console.app e xcrun permite rastrear erros e desempenho em tempo real.
O os_log tem níveis: Default, Info, Debug, Error, Fault. Em produção, mantêm-se Error e Fault — Debug e Info são desativados. Escolher o nível correto faz parte da estratégia de monitoramento de aplicativos móveis no iOS. Privacidade: %{public}@ para dados não protegidos, %{private}@ para dados pessoais.
CocoaLumberjack é uma biblioteca popular para registro no iOS. Diferente do os_log, ela suporta formatos personalizados, escrita assíncrona e rotação de logs. DDLog, DDTTYLogger (console), DDFileLogger (arquivo com rotação). Para monitoramento remoto, o CocoaLumberjack pode ser combinado com o os_log — escrever em um arquivo para registro remoto e no os_log para o Console.app.
Para o registro de aplicativos móveis no Android, usa-se o Timber — uma biblioteca de Jake Wharton que se tornou o padrão da plataforma. O Timber é um invólucro sobre o Android Log (Logcat) que adiciona automaticamente a tag de classe e configura o Tree. O Timber faz parte do sistema de monitoramento de aplicativos móveis Android: DebugTree para depuração, CrashlyticsTree para envio de dados.
O Timber usa Tree — um componente que decide o que fazer com o log. Em builds de depuração, DebugTree (saída para Logcat), em release — CrashlyticsTree (envio de falhas). Timber.wtf() registra erros fatais. Timber.tag("CustomTag") sobrescreve a tag. Para monitoramento eficaz, o Timber é combinado com ferramentas APM.
Android Log tem níveis: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 remove Log.d e Log.v em release — o Timber permite registrar através do Plant. A escolha do nível afeta a qualidade do monitoramento do aplicativo móvel — em produção, mantêm-se WARN e ERROR.
| Ferramenta | Plataforma | Formato | Rotação | Remoto | Complexidade |
|---|---|---|---|---|---|
| os_log | iOS | Estruturado | Sistêmica | Console.app | Baixa |
| CocoaLumberjack | iOS | Texto/JSON | DDFileLogger | Sim (personalizado) | Média |
| Timber | Android | Texto | Logcat/Personalizado | Tree | Baixa |
| Sentry | iOS/Android | JSON | Servidor | Sim | Média |
| Logcat | Android | Texto | Buffer | ADB | Baixa |
Ao escolher uma ferramenta de registro, considere: precisa de registro remoto, com que frequência os logs mudam e quem os analisará. Para startups, os_log ou Timber são suficientes. Para empresas — CocoaLumberjack com envio ao servidor. Na IT Sectr, usamos a combinação Timber + Crashlytics para Android e os_log + CocoaLumberjack para iOS.
Structured logging — escrita de logs em formato JSON em vez de texto simples. Exemplo: em vez de "User login failed" escrevemos {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Esta é a base para o monitoramento automático — a stack ELK e o Grafana filtram, agregam e analisam esses dados.
Filtragem por campos: encontre todos os logs com event=crash na última hora. Agregação: construa um gráfico de quantidade de erros por versão do aplicativo. Integração com ELK (Elasticsearch, Logstash, Kibana) ou Grafana. O structured logging não é obrigatório para os primeiros lançamentos, mas se torna crítico quando o DAU ultrapassa 10.000.
Registro remoto — envio de logs do dispositivo para um servidor para monitoramento centralizado. Implementado através de Tree personalizado (Android) ou requisições HTTP. Envie apenas Error e Warning — não desperdice o tráfego do usuário. Rotação de logs: DDFileLogger (iOS) a cada 1 MB ou 1 dia. No Android, o buffer do Logcat é limitado.
Application Performance Monitoring (APM) — uma classe de ferramentas para monitoramento de aplicativos móveis. O APM mede: tempo de inicialização, requisições de rede, FPS, uso de memória, frequência de falhas. Principais players: Sentry (Performance), New Relic Mobile, Datadog Mobile.
Sentry — não apenas relatórios de falhas, mas também monitoramento de desempenho. O Sentry Performance cria traces distribuídos que mostram quanto tempo cada etapa levou: desde o pressionar do botão até a resposta do servidor. Suporta iOS, Android, Flutter, React Native. Gratuito até 5k eventos por mês.
New Relic Mobile fornece métricas: número de sessões, tempo no aplicativo, frequência de falhas, requisições de rede. Datadog Mobile é uma ferramenta mais moderna com painéis em tempo real e alertas. Ambos são pagos, mas têm níveis gratuitos. A IT Sectr recomenda começar com Firebase Performance e migrar para APM pago quando o DAU ultrapassar 100.000.
Firebase Performance — uma ferramenta gratuita de monitoramento de aplicativos móveis do Google. Coleta automaticamente métricas: tempo de inicialização do aplicativo, requisições HTTP (URL, método, código de resposta), FPS. Para tracing personalizado, use a Trace API. Integração: adicione o SDK ao build.gradle (Android) ou Podfile (iOS).
Trace — um segmento de tempo com início e fim que você mede. Exemplo: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Métricas — indicadores numéricos (tamanho da resposta, quantidade de itens). O Firebase Performance não requer infraestrutura de servidor — todos os dados passam pelo Firebase SDK. Ao monitorar aplicativos móveis, a Trace API fornece contexto para a análise de desempenho.
Perguntas frequentes
Níveis padrão: ERROR (erros críticos), WARN (problemas potenciais), INFO (eventos-chave), DEBUG (depuração), VERBOSE (trace detalhado). Em produção, mantêm-se ERROR, WARN e INFO, os demais são desativados.
Timber é uma biblioteca invólucro sobre o Logcat de Jake Wharton para registro de aplicativos móveis no Android. Ela insere automaticamente a tag de classe, configura o Tree e desativa os logs em produção com uma linha de código.
APM (Application Performance Monitoring) — uma classe de ferramentas para rastrear desempenho: tempo de inicialização, requisições de rede, uso de memória, frequência de falhas. Ao monitorar aplicativos móveis, New Relic, Datadog e Firebase Performance ajudam a encontrar gargalos antes das reclamações dos usuários.
Para uma startup, o Firebase Performance é suficiente — uma ferramenta gratuita de monitoramento de aplicativos móveis. New Relic e Datadog são conectados quando há necessidade de tracing detalhado e painéis personalizados. A IT Sectr recomenda começar com Firebase e migrar para soluções pagas quando o DAU ultrapassar 100.000.
Structured logging é um formato de logs em JSON ou chave-valor em vez de texto simples. Ele permite filtrar logs por campos, construir gráficos e analisar automaticamente no ELK ou Grafana. Sem logs estruturados, é difícil encontrar padrões em milhares de registros.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.