Facebook Lite, como “aliviar” um aplicativo

N√≥s conversamos, neste link, a import√Ęncia dos mercados emergentes como uma oportunidade, mas tamb√©m enfatizou as dificuldades que as empresas enfrentam. Agora, vamos ver os benef√≠cios de um aplicativo como o Facebook Lite e quais s√£o os recursos importantes a serem considerados ao desenvolver um aplicativo que deve funcionar em um regime otimizado de todos os pontos de vista, desde o desempenho at√© o consumo de dados.

O peso do aplicativo é importante

Ao reduzir o peso de um aplicativo, oferece uma melhor experi√™ncia de download. Geralmente n√£o √© apenas mais r√°pido, mas a quantidade de downloads bem-sucedidos tamb√©m √© maior. Segundo as estat√≠sticas internas do Facebook, apenas 60% dos usu√°rios usaram um aplicativo atualizado nas √ļltimas oito semanas. O download de alguns megabytes permite atualizar o aplicativo com mais frequ√™ncia, oferecendo, portanto, uma experi√™ncia sempre atualizada em termos de desempenho, fun√ß√Ķes e seguran√ßa, e mantendo o aplicativo abaixo de 100 Mb, permite a atualiza√ß√£o via rede de dados , considerando que o Google definiu esse limite al√©m do qual, por padr√£o, a conex√£o a uma rede Wi-Fi √© necess√°ria para o download de mais dados.

Um estudo do Google mostrou que o raio de 6 Mb do aplicativo leva a uma base de instalação de + 1%. O Facebook mediu isso a redução de 5 bytes traz mais um usuário. Portanto, foi estimada uma correlação direta entre o peso do aplicativo e sua adoção, além do fato de que a ocupação do espaço de um aplicativo é a primeira consequência de sua instalação. Quando um aplicativo pesa mais de 200 Mb, os usuários são mais propensos a excluí-lo.

A abordagem no desenvolvimento do Facebook Lite

Para reduzir drasticamente o tamanho do aplicativo do Facebook, a equipe de desenvolvimento adotou abordagens diferentes. Uma delas √© modularidade da aplica√ß√£o, que permite inserir no APK principal apenas as fun√ß√Ķes necess√°rias e deixar as fun√ß√Ķes adicionais “sob solicita√ß√£o”, ou seja, os dados necess√°rios s√£o baixados somente quando o usu√°rio solicita essas fun√ß√Ķes. Obviamente, isso n√£o significa que a cada clique o aplicativo baixe dados, tratamento deixado para fun√ß√Ķes avan√ßadas, como transmiss√£o de v√≠deo ao vivo.

Al√©m disso, foi implementada uma arquitetura em nuvem, na qual os servidores do Facebook s√£o usados ‚Äč‚Äčpara gerenciar a maioria das fun√ß√Ķes. Quando uma solicita√ß√£o √© feita, ela √© enviada aos servidores que cuidam dos c√°lculos necess√°rios e retornam o resultado.

A pr√≥pria abordagem de programa√ß√£o e inser√ß√£o de novas fun√ß√Ķes deve passar por um longo processo de avalia√ß√£o. Antes de mais, √© de se perguntar quanto a inser√ß√£o da nova fun√ß√£o ‚Äúpesar√°‚ÄĚ e, principalmente, se esse novo recurso vale cada byte √ļnico extra. Na pr√°tica, calculamos o ROI do usu√°rio e somente se o resultado for positivo, prosseguimos com a implementa√ß√£o. E se eles j√° atingiram o limite m√°ximo de tamanho auto-imposto do aplicativo, antes de introduzir um novo recurso, a equipe deve encontrar uma maneira de liberar espa√ßo, prosseguindo com uma otimiza√ß√£o adicional.

Otimização técnica

Obviamente, al√©m das decis√Ķes puramente humanas de quais fun√ß√Ķes inserir, a equipe de engenharia usa v√°rias ferramentas para otimizar o c√≥digo.

A abordagem neste caso √© usar ferramentas capazes de dividir o aplicativo em diferentes m√≥dulos que gerenciam as v√°rias fun√ß√Ķes. Com cada novo recurso, eles comparam como esse recurso afeta os m√≥dulos individuais em termos de dados adicionados, para ter uma id√©ia melhor do impacto de sua decis√£o.

Através de ferramentas como Redex e ProGuard, eles são capazes de otimizar o código, com desempenho e ganho total de peso do aplicativo. Nesses casos, falamos de melhorias percentuais de dois dígitos, muito importantes.

Aprofundamos toda a fase de desenvolvimento com Dekel Naar, engenheiro principal do Facebook, a quem fizemos perguntas como o papel da IA ‚Äč‚Äčna otimiza√ß√£o dos aplicativos ou os programas de desenvolvimento de uma vers√£o do Facebook Lite para iOS. Se voc√™ estiver curioso, encontre a entrevista neste endere√ßo.

Em geral, entendemos, após esta reunião, como otimizar um aplicativo é certamente um trabalho muito difícil, mas acima de tudo muito criativo, pois as abordagens que podem levar a uma melhor experiência do usuário não estão relacionadas apenas à capacidade de criar código otimizado, enquanto muito afeta a abordagem para o próprio código e especialmente a maneira como o aplicativo funciona.