Um relatório de diagnóstico do usuário que ajuda a solucionar bugs e melhorar o suporte ao usuário ao mesmo tempo. Eu venho escrevendo apps desde 2009, e o repositório Diagnostics é um resultado de toda essa experiência. Utilizado por grandes aplicativos de empresas como WeTransfer, ele tem comprovado seu valor uma vez atrás da outra.
Já vi ineficiência consistente em muitas empresas: um usuário relata um bug, e a primeira coisa que você precisa perguntar é qual versão eles estão usando. Esta é apenas uma das perguntas de exemplo que se pode fazer. Eu levei o nível de qualidade do suporte para minha ferramenta de desenvolvedor, RocketSim , ao introduzir Relatórios de Diagnóstico. Com o Diagnostics apoiando o desenvolvimento agente, está ficando cada vez mais fácil analisar problemas dos usuários.
O problema comum com canais de suporte de aplicativos
Você construiu seu app, configurou um canal de suporte e está recebendo mais e mais feedback. Isso é ótimo, pois o feedback significa uma oportunidade para melhorias. No entanto, muitas das solicitações que você recebe também envolvem bugs excepcionais que são difíceis de reproduzir: você precisa de mais informações.
Em vez de resolver o bug imediatamente, primeiro você precisa ir e voltar com o usuário para obter mais detalhes. É provável que esteja fazendo perguntas como:
- Qual versão do sistema operacional você está usando?
- Você atualizou para a última versão do aplicativo?
Há muitas soluções que fornecem essas respostas imediatamente, mas não encontrei nenhuma solução que combinasse isso com insights inteligentes, logs de sistema e depuração, junto com todos os tipos de detalhes da sessão.
Introduzindo uma biblioteca Open Source: Diagnostics
Sou feliz em apresentar minha biblioteca open source, Diagnostics . Ela é construída na minha experiência de construção de apps e suporte a correções de bugs desde 2009. A biblioteca oferece uma maneira dentro do app para relatar problemas e anexa o que chamamos de Relatório de Diagnóstico: um arquivo HTML detalhado.
Um exemplo de um relatório HTML de diagnóstico aberto no navegador.
Toda vez que um usuário compartilha feedback dentro do app, eles podem escrever um email e compartilhar sua história. O relatório HTML detalhado será anexado e fornecerá as informações técnicas necessárias.
Um exemplo de o criador de emails com o Relatório de Diagnóstico como anexo.
Uma olhada mais detalhada no relatório HTML padrão
O relatório HTML padrão contém respostas a perguntas comuns, como a versão do sistema operacional e do aplicativo. Também fornece insights em detalhes do sistema, como idioma, armazenamento e tipo de dispositivo.
Os logs da sessão é onde acontece a verdadeira magia. Você pode vê-lo como o console Xcode: contém todos os logs de sistema e depuração que você está acostumado quando estiver fazendo depuração. Isso é extremamente útil para um desenvolvedor, pois você pode esclarecer um problema em detalhes. O relatório HTML até oferece filtragem baseada em JavaScript dos logs do sistema, então você pode olhar diretamente nos erros:
Filtrar apenas nos logs de erro tornará fácil concluir sobre o problema do usuário.
Neste caso, para RocketSim, eu pude informar ao usuário que ainda não estamos suportando Stage Manager. Com uma única resposta de email, consegui informar ao usuário e referenciar a questão relacionada no GitHub.
CURSO GRATUITO DE 5 DIAS POR EMAIL: O Playbook da Concorrência Swift
Um CURSO GRATUITO DE 5 DIAS POR EMAIL descobrindo os 5 maiores erros que desenvolvedores iOS fazem com async/await que levam a rejeições na App Store e projetos de migração demorando meses em vez de dias (mesmo se você já escreve Swift há anos)
Uma melhor colaboração com sua equipe de suporte
O que é ótimo sobre esses relatórios de diagnóstico é que eles são consistentes. Cada usuário que entrar em contato fornecerá a mesma informação técnica. Eu venho trabalhando junto à equipes de suporte e os treinei para ler esses relatórios por conta própria. Isso é outro ponto de atrito resolvido, tornando o processo de suporte mais fluido. A equipe de suporte não precisa incomodar desenvolvedores com cada problema de suporte, e os desenvolvedores podem manter sua foco e produtividade.
Antes que um agente de suporte entre em contato com um desenvolvedor, eles pelo menos garantiram que os usuários estão usando a versão mais recente do app e/ou sistema operacional. Problemas conhecidos relacionados a um determinado log de erro poderiam ser detectados por um agente de suporte dos logs da sessão. Isso é uma vitória em muitos aspectos:
- Os usuários recebem uma resposta melhor, mais rapidamente
- Agentes de suporte são menos dependentes de entrada de desenvolvedores
- Desenvolvedores podem manter o foco na escrita de código em vez de ajudar com tickets de suporte
Mas isso não é tudo: ainda tínhamos que informar aos agentes de suporte sobre problemas conhecidos. Se sua equipe de suporte for grande, isso pode rapidamente se tornar trabalhoso. Portanto, introduzimos uma funcionalidade chamada Insights Inteligentes
Usando Insights Inteligentes
Os insights inteligentes são basicamente insights após o processamento de logs. Diagnostics permite que você processe cada linha do log e retorne um Insight Inteligente conforme necessário:
struct SmartInsightsProvider: SmartInsightsProviding {
func smartInsights(for chapter: DiagnosticsChapter) -> [SmartInsightProviding] {
guard let html = chapter.diagnostics as? HTML else { return [] }
if html.errorLogs.contains(where: { $0.contains("Window is too small, likely due to Stage Manager switch") }) {
return [
SmartInsight(
name: "Stage Manager Issue Detected", result: .warn(message: "An error was found regarding missing support for Stage Manager. Inform the user about this if needed.")
)
]
}
return []
}
}
Um capítulo de relatório dedicado aparecerá com a visão do usuário sobre o problema do Stage Manager. O agente de suporte não precisa mais navegar por todas as sessões para descobrir sobre o problema do usuário.
Ao padrão, Insights Inteligentes padrão são fornecidos:
- UpdateAvailableInsight usa seu identificador da bundle para buscar a versão de aplicativo disponível mais recente. Um insight será mostrado se uma atualização estiver disponível para o usuário ou não.
- DeviceStorageInsight mostra se o usuário está sem armazenamento
Um exemplo de um capítulo de Insights Inteligentes poderia parecer como segue:
Um exemplo de uma seção de Insights Inteligentes em um Relatório de Diagnóstico.
Resolvendo erros do usuário mais rápido usando agentes
O Agente Skill do Relatório de Diagnóstico do Usuário permite que seus agentes analisem relatórios de usuários eficientemente.
Um relatório de diagnóstico do usuar

