Olá pessoal, tudo bem com vocês? Você que já desenvolve para Android há algum tempo e os que ainda estão começando, se já não perguntaram pode ter certeza que iriam se perguntar “como podemos reduzir o tamanho do nosso aplicativo?”, mas fique tranquilo, neste artigo você verá algumas dicas de como obter sucesso nesse processo e oferecer aquele seu mesmo aplicativo grande disponível por um tamanho menor e acredite ou não, o número de downloads pode aumentar consideravelmente, portanto chega de enrolação e vamos as informações.

O que os dados nos dizem?

Por que devemos deixar nossos aplicativos o menor possível para download na plataforma oficial da Google, a Play Store?

Essa pergunta pode não fazer muito sentido em países em que os cidadãos usufruem de uma boa internet com boa velocidade e estabilidade de conexão, mas em mercados emergentes, o caso do nosso querido Brasil por exemplo, onde, embora as coisas tenham melhorado um pouco, ainda utilizamos redes 3G, 4G de baixa qualidade em algumas operadoras sem contar que contratamos franquias, muitas vezes pequenas como os planos de 500MB e 1GB mensais, baixar um aplicativo pode ser uma escolha um tanto difícil se considerarmos que poderíamos deixar de assistir um episódio da nossa série favorita na Netflix.

O argumento acima não lhe convenceu a tentar diminuir o tamanho da sua aplicação? Então vamos ver o que os dados estatísticos dizem sobre esse assunto:

Fonte: Dados Internos da Google – Google I/O 2017.

De acordo com o gráfico acima, os aplicativos com mais de 100MB são 8 vezes mais propensos a serem desinstalados, e se levarmos em conta que eles têm mais chances de serem retirados dos dispositivos, podemos dizer que também podem ser menos baixados com o tempo, e não é isso que queremos para nossos projetos, certo?

Mas se você ainda não está convencido de que precisamos diminuir o tamanho do APK de nossos aplicativos? Vamos para o próximo gráfico.

O gráfico acima nos mostra que aplicativos com mais de 100MB podem ter um aumento de até 20% de cancelamento de download (desinstalação) a mais que apps compactos, essa é uma ótima razão para que comecemos a adotar estratégias entre outras dicas para diminuir o tamanho final das nossas aplicações, considerando que queremos atingir uma quantidade maior de pessoas que optam por baixar e permanecer com nossos apps instalados sem precisar optar por desinstalá-los!

Há diversas dicas recomendadas pela própria Google que foram apresentadas por ela mesma na famosa conferência Google I/O, desta vez na edição do ano de 2017.


Reduzir tamanho e quantidade dos recursos

Essa primeira seção de dicas talvez seja a solução para boa parte dos projetos, geralmente utilizamos muitos recursos como imagens estáticas dentro do projeto, além de diversas outras coisas que podem ser adicionadas automaticamente ao implementar bibliotecas externas.

No caso das bibliotecas, com uma pequena configuração conseguiremos identificar esses recursos inutilizados para então removê-los.


Minify

Vamos começar falando sobre as configurações no Gradle que pode nos ajudar com nosso objetivo. O Android Studio conta com um recurso que reduz nossos códigos excluindo classes que não estão sendo utilizadas e também renomeia variáveis de forma que fiquem com nomes mais enxutos, esse recurso é chamado de Minify e ele pode ser introduzido no arquivo build.gradle(Module: app) da seguinte forma:

Fonte: o autor.

PS: Importante destacar que o minifyEnabled já é adicionado automaticamente no Gradle ao criar o projeto mas por padrão ela vem com o valor false.


ShrinkResources

Como comentado anteriormente, algumas bibliotecas que utilizamos durante o desenvolvimento trazem consigo diversas classes que talvez nem utilizemos no projeto e acabam inflando o nosso APK, para resolver esse problema só precisamos adicionar e ativar também no arquivo build.gradle(Module: app) o shrinkResources logo abaixo do minifyEnabled, veja exemplo abaixo:

Fonte: o autor.

Imagens

Geralmente precisamos utilizar imagens para complementar nossos layouts estou certo? Mesmo que não seja sempre pelo menos uma vez vamos precisar de uma imagem no app e claramente não queremos colocar imagens de baixa qualidade, mas a alta qualidade de imagem tem um preço, e nosso foco não é pagar esse preço, então pensando em reduzir o tamanho da imagem mantendo a qualidade deixo aqui algumas ferramentas para efetuar tal processo: PNGCRUSH, pngquant.

Uma recomendação forte por parte da Google é utilizar VectorDrawable, imagens vetoriais, uma imagem com apenas 100 bytes pode ocupar uma tela inteira, mas nem tudo são flores, o sistema demora um tempo significativo para renderizar esses objetos, por isso o recomendado é que utilize apenas para exibir imagens pequenas como fotos de perfil com tamanho máximo de 100dp para width e height (recomendação minha).


Android App Bundles

E por último, a dica mais fácil deste artigo é publicar seu app com um Android App Bundles, assim o Google utilizará seu pacote de apps para gerar APKs otimizados para a configuração dos dispositivos dos usuários, dessa forma eles farão o download de uma versão do app que contém apenas os códigos necessários e recursos necessários para executar o app corretamente.

Agora você deve estar se perguntando porque eu não coloquei essa dica no topo do artigo, estou certo? Simples, a Play Store tem uma restrição de tamanho de download de 150 MB ou menos por app publicado em pacotes, ou seja, é necessário e recomendado que reduza ao máximo o tamanho do seu app utilizando as dicas acima e então executar essa última dica.


Conclusão

Procure sempre deixar seus apps menores e o mais otimizados possível, isso pode levar um certo tempo durante o desenvolvimento para concluirmos, mas pensando nos usuários finais, todo o esforço vale a pena para entregar um bom app, compacto e bem otimizado.