Uma pesquisa da Dimensional Research mostra que cerca de 61% dos usuários de smartphones esperam que cada aplicativo inicie dentro de apenas quatro segundos, enquanto cerca de 49% dos usuários querem um resposta em apenas dois segundos. Se qualquer aplicativo congelar, travar ou mostrar erros recorrentes, cerca de 53% dos usuários de smartphones abandonarão o app. Veja abaixo os 5 principais Motivos que fazem um aplicativo falhar.
- 1 – Gerenciamento da memória (RAM)
- 2 – Testes malfeitos
- 3 – Lifecycle do software (tempo de vida das APIs)
- 4 – Erros excepcionais
- 5 – Mal gerenciamento de rede
1 – Gerenciamento da memória (RAM)
Alguns desenvolvedores projetam e constroem seus aplicativos para se comportarem como o Neymar. O aplicativo tentando ser o centro das atenções do seu celular, consome os recursos da memória RAM, e no final acaba caindo (falha).
Um aplicativo pode estar executando diversos threads ou diversas APIs
e assim consumindo muita memória. Este é um dos motivos mais comuns para falhas de aplicativos, e isso é especialmente verdadeiro para celulares e tablets de baixo custo. Além disso, algumas estimativas sugerem que mais de 50% dos usuários podem desinstalar um aplicativo se ele travar, congelar ou se comportar de maneira anormal.
Um aplicativo nunca terá todos os recursos de um telefone para si mesmo, por isso, se os desenvolvedores criarem aplicativos que consomem uma grande parte da memória de um telefone, eles estarão semeando os problemas futuros.
Como solucionar
A principal coisa a lembrar é que seu aplicativo é uma entidade única em um ecossistema maior e você deve pensar em muitos outros fatores que exigem muito recurso, além da sua própria criação valiosa. Tenha em mente que muitos usuários não terão os telefones de ponta que os desenvolvedores possuem, e problemas de alocação de memória são comuns.
Curiosamente, o ecossistema do Android fornece ferramentas de gerenciamento de memória realmente poderosas, o que significa que os desenvolvedores têm a liberdade de manipular a memória como quiserem (a desvantagem é a complexidade do processo). Para iOS, as linguagens de programação Swift e Objective-C oferecem ferramentas muito eficientes para gerenciar a memória, principalmente de forma automática.
Em termos de problemas de memória específicos, os aplicativos podem ter problemas ao gerenciar arquivos de muitos megabytes, como imagens. O truque aqui é carregar apenas as partes do arquivo necessário de cada vez, em vez de carregá-lo na memória. Usando o exemplo de imagens, você pode querer criar uma versão redimensionada com o tamanho exato que terá na tela.
Lembre-se também de que, quando os aplicativos estiverem realizando cálculos complexos, talvez seja necessário liberar memória no meio do processo. Com dispositivos Android, isso é gerenciado automaticamente pelo sistema, mas no iOS pode ser necessário criar um pool de liberação automática.
Vários dos aplicativos pesados como Facebook, Pinterest e Instagram agora têm suas próprias versões “lite” e pode valer a pena dar uma olhada nesses mini-aplicativos para obter algumas dicas sobre como simplificar sua própria criação e cortar todo o excesso de gordura.
2 – Testes mal elaborados
É incrível pensar que o iPhone tem apenas 11 anos. Desde aquele dia memorável em 29 de junho de 2007, quando a mais famosa criação de Steve Jobs foi revelada, ela gerou quase 40 modelos diferentes de iPhone e iPad. Se você acha que é muito, confira o número de modelos Android; em 2015, estimou-se que havia mais de 24.000 variantes em todo o mundo e, com todos os diferentes fabricantes, é impossível manter um registro completo.
Com o ritmo das expansões, aumentando o tempo todo, está se tornando cada vez mais difícil para os desenvolvedores testarem seus aplicativos em dispositivos reais, especialmente se tiverem um orçamento baixo. Vários simuladores e emuladores estão disponíveis, mas eles têm suas próprias desvantagens. Eles não podem imitar o efeito de baterias baixas ou superaquecidas, as interrupções de chamadas recebidas ou a interação com a câmera de um dispositivo.
Como solucionar
A liberação de aplicativos no mercado sem testes adequados gera muitos problemas de estabilidade e desempenho. Por isso, esse processo requer atenção dobrada. A prática comum de testes é o uso de aparelhos, simuladores e emuladores. Mas, independente da ferramenta usada a metodologia para teste é quase sempre a mesa e, portanto, pode ser explicada em algumas etapas:
- #1 – É criada uma tabela que abrange o padrão de comportamentos e requisitos do aplicativo, após são feitos testes das funcionalidades e fluxo iniciais do app.
- #2 – Logo após o aplicativo ser aprovado em todos os quesitos da tabela, são iniciados os testes de experiência de usuário, onde o foco são as funcionalidades principais do aplicativo (no caso de app tipo uber, seriam o fluxo de corrida e a geolocalização)
- #3 – A terceira fase só se inicia assim que os desenvolvedores geram uma nova versão com as devidas correções da UX. Após, é feito um novo teste completo do aplicativo revisando todos os itens da tabela e a experiência de usuário.
- #4 – Sendo aprovado na 3ª fase, o aplicativo é enviado para que o cliente possa avaliá-lo antes da publicação e listar possíveis problemas. Caso algum erro seja relatado, o aplicativo volta para a 3ª etapa. O processo se repete até que não hajam mais erros e o cliente esteja satisfeito.
- #5 – Após aprovação do cliente, o aplicativo passa por uma última bateria de testes com foco na experiência do usuário. Só então estará pronto para lançamento.
Todos os testes são feitos por um profissional especializado, mas mesmo assim ainda existem grandes desafios, principalmente, na versão Android, por causa do diverso número de aparelhos existentes. Isso faz com que seja quase impossível ter um aplicativo livre de falhas. Mas, seguindo a metodologia descrita acima e com um bom profissional de teste, as chance do seu app falhar será menor.
3 – Lifecycle do software (tempo de vida das APIs)
Muitas vezes quando uma API é atualizada pode acabar trazendo falhas para seu aplicativo. Isso traz diversos problemas para quem decide seguir o processo iterativo. O conceito de desenvolvimento iterativo, isto é, lançamento de um MVP para o mercado e melhoria gradual depois disso, traz várias vantagens óbvias. Você pode avaliar a reação do usuário, identificar problemas, criar estratégias de marketing e obter vantagens competitivas em potencial. Os recursos podem ser canalizados da documentação para o projeto e as alterações no projeto são menos custosas do que o tradicional processo de “cascata” para criação, teste e lançamento.
Mas o desenvolvimento iterativo também apresenta vários desafios. A complexidade de um lançamento por estágio significa que você precisará de gerentes de projeto de primeira linha para acompanhar tudo. Toda vez que você lança uma nova versão ou recurso, todos os testes anteriores devem ser refeitos. A necessidade de integrar serviços e APIs de terceiros pode sobrecarregar sua equipe de desenvolvimento, especialmente se seu desenvolvimento não estiver sendo feito por um especialista.
Fabricantes de sistema operacional como Samsung, Google e Apple lançam regularmente atualizações, o que pode realmente deixá-lo fora do curso se você ainda estiver desenvolvendo seu próprio produto. Simplificando, quanto mais cedo você liberar seu aplicativo no mercado, maior a probabilidade de conter falhas. Infelizmente, se um aplicativo ficar travando, os usuários não vão se importar se é um protótipo no primeiro estágio ou a versão final. Eles irão simplesmente apagar o app defeituoso de seus smartphones.
Como solucionar
Se você está pensando em seguir o caminho iterativo, comum em startups que seguem a metodologia Lean. Por isso, você precisa ter claro que tem os recursos necessários e que seu projeto justifica essa estratégia. Se você decidir sobre o desenvolvimento iterativo, precisará estar preparado para possíveis problemas com dos sistemas operacionais (Samsung, google e Apple) e as APIs de terceiros (gateways de pagamento, etc.).
Não queremos dizer que você deva antecipar esses problemas com antecedência, pois, é quase impossível para os desenvolvedores fazer isso, mas você deve pensar em possíveis problemas que possam surgir e estar pronto para atualizar seu aplicativo assim que uma nova versão do um sistema operacional ou API de terceiros é lançado.
4 – Erros excepcionais
Não importa o quanto você tente tornar seu aplicativo o mais resiliente possível, existem algumas variáveis e parâmetros que estão simplesmente fora do seu controle. Se o Wi-Fi do usuário ficar inativo durante uma transferência de arquivo, por exemplo, ou simplesmente inserir um valor incorreto em um campo, ele poderá ficar travado em uma tela ou mesmo receber uma chuva de mensagens de erro.
Problemas inesperados como esse podem levar a uma falha. O que é frustrante para os usuários. No entanto, há situações em que um aplicativo não pode falhar e apenas deixar o usuário aguardando sem saber o que está acontecendo. Essa incerteza pode ser ainda mais frustrante do que uma falha real. Por isso, é importante garantir que esses erros foram analisados e tenha sido posto condições no manuseio.
Como solucionar
Se você perceber que seu aplicativo desenvolveu uma falha, é uma boa prática encerrar todas as atividades e informar os usuários sobre isso. Isso pode parecer contra-intuitivo, mas gerenciando proativamente sua comunicação com os usuários e dando a eles avisos antecipados de qualquer interrupção, é provável que você os retenha por um período muito mais longo.
Ao criar suas mensagens de erro, torne-as informativas e úteis. Evite jargões técnicos e falas de desenvolvedores; Basta explicar em termos leigos o que aconteceu para que qualquer usuário possa entender. Também ofereça uma solução para permitir que o usuário corrija o problema. Uma boa mensagem de erro pode ser: “Opa! Não há conexão com a Internet agora, procure um bom lugar e tente novamente!”
5 – Mal gerenciamento de rede
Devido à natureza do seu trabalho, a maioria dos desenvolvedores tem acesso a uma conexão de internet rápida. Mas isso pode se tornar um problema no processo de planejamento; Um erro comum que os desenvolvedores cometem é assumir que todos nós vivemos em uma utopia de 20mbs.
O fato é que um número significativo de usuários terá uma conexão muito mais lenta, e eles precisarão dessa conexão para todos os tipos de coisas, desde reenviar memes até descobrir a que horas seu time vai jogar no brasileirão.
Se você esquecer isso, exponha seu aplicativo a falhas, pois uma alta dependência dos recursos de rede combinada com um acesso lento à Internet pode reduzir significativamente a capacidade de resposta de um aplicativo. Isso, por sua vez, leva a um desempenho ruim, instabilidade e algum tempo de inatividade desafortunado.
Como solucionar
Ao criar seu aplicativo, tente diminuir a velocidade da sua rede. Teste o produto em redes lentas e redes móveis com cobertura ruim. Mas, caso você more em uma área com boa cobertura existem ferramentas vão ajudá-lo. Para iOS, você pode fazer o download do Network Link Coordinator da página do desenvolvedor da Apple. Para Android, você pode fazer o download do emulador no Android SDK. Ambas as ferramentas permitem que você defina sua própria velocidade de internet.
Depois de ter acelerado o ritmo, verifique se seu aplicativo está otimizado para funcionar nessas condições. E certifique-se de exibir notificações significativas para os usuários quando não houver velocidades suficientes disponíveis.
Conclusão
O teste do aplicativo é parte indispensável do desenvolvimento, mas os desafios enfrentados são grandes. Enquanto a versão iOS requer menos testes, a versão para Android requer um verdadeiro exército para testá-lo, ou mesmo uma máquina muito potente para fazer o mesmo. Mas isso demonstra o quão importante é a escolha de desenvolvedor, pois uma agência capacitada possui as ferramentas para testar o app, enquanto com uma equipe própria ou desenvolvedores freelancers, você talvez enfrentará problemas com a comunicação ou mesmo com falta de pessoal experiente em teste de aplicativos.
A Usemobile possui especialistas em teste, além de ter diversos aparelhos fisicos para garantir a melhor qualidade em nosso aplicativos. Tem uma ideia de aplicativo e deseja fazer um orçamento? Entre em contato!