Estudos de caso
O TikTok reduz o tamanho do código em 58% e melhora o desempenho do app para novos recursos com o Jetpack Compose
Leitura de 2 minutos
O_TikTok_ é uma plataforma global de vídeos curtos conhecida pela enorme base de usuários e recursos inovadores. A equipe está sempre lançando atualizações, experimentos e novos recursos para os usuários. Diante do desafio de manter a velocidade e gerenciar a dívida técnica, a equipe do Android do TikTok recorreu ao Jetpack Compose.
A equipe queria permitir uma iteração mais rápida e de maior qualidade dos requisitos do produto. Ao aproveitar o Compose, a equipe buscou melhorar a eficiência de engenharia escrevendo menos código e reduzindo a carga cognitiva, além de alcançar melhor performance e estabilidade.
Simplificando a interface complexa para acelerar a produtividade do desenvolvedor
As páginas do TikTok costumam ser mais complexas do que parecem, contendo vários requisitos condicionais em camadas. Essa complexidade geralmente resultava em hierarquias de visualização difíceis de manter, com estrutura abaixo do ideal e aninhamento excessivo de visualizações, o que causava degradação da performance devido a um número maior de passagens de medição.
O Compose ofereceu uma solução direta para esse problema estrutural.
Além disso, a estratégia de medição do Compose ajuda a reduzir a bitributação, facilitando a otimização da performance de medição.
Para melhorar a produtividade do desenvolvedor, a equipe central do sistema de design do TikTok oferece uma biblioteca de componentes para equipes que trabalham em diferentes recursos do app. A equipe observou que o desenvolvimento no Compose é simples. O uso de pequenos elementos combináveis é altamente eficaz, enquanto a incorporação de grandes blocos de interface com lógica condicional é direta e tem uma sobrecarga mínima.
Criando um caminho a seguir por meio da migração estratégica
Ao adotar o Jetpack Compose de forma estratégica, o TikTok conseguiu manter a dívida técnica sob controle e continuar se concentrando na criação de ótimas experiências para os usuários. A capacidade do Compose de processar a lógica condicional de forma limpa e simplificar a composição permitiu que a equipe reduzisse em até 78% o tempo de carregamento de páginas novas ou totalmente reescritas. Essa melhoria foi de 20 a 30% em casos menores e de 70 a 80% para reescritas completas e novos recursos. Eles também conseguiram reduzir o tamanho do código em 58%, em comparação com o mesmo recurso criado em visualizações. A equipe compartilhou mais algumas lições aprendidas:
A estratégia geral da equipe do TikTok era migrar incrementalmente jornadas de usuários específicas. Isso deu a eles a oportunidade de migrar, confirmar benefícios mensuráveis e, em seguida, escalonar para mais telas. Eles começaram usando o Compose para simplificar a estrutura geral no recurso de QR code e observaram as melhorias. Mais tarde, a equipe expandiu a migração para as experiências de login e inscrição.
A equipe compartilhou mais algumas lições aprendidas:
Ao verificar a performance durante a migração, a equipe do TikTok descobriu que o uso de muitas ComposeViews pequenas para substituir elementos dentro de um único ViewHolder causava sobrecarga de composição. Eles alcançaram melhores resultados ao expandir a migração para usar uma única ComposeView para todo o ViewHolder.
Ao migrar um fragmento dentro do ViewPager, que tem lógica de altura personalizada e lógica condicional para ocultar e mostrar a interface com base em experimentos, a performance não foi afetada. Nesse caso, a migração do ViewPager para um elemento combinável teve um desempenho melhor do que a migração do fragmento.
Jun Shen gosta muito do fato de que o Compose "reduz a quantidade de código necessária para o desenvolvimento de recursos, melhora a capacidade de teste e acelera a entrega". A equipe planeja aumentar constantemente a adoção do Compose, tornando-o a estrutura preferida a longo prazo. O Jetpack Compose mostrou ser uma solução poderosa para melhorar a experiência do desenvolvedor e as métricas de produção em escala.
Começar a usar o Jetpack Compose
Saiba mais sobre como o Jetpack Compose pode ajudar sua equipe.
Continuar lendo
-
Estudos de caso
O app de mindfulness Gratitude incentiva a consistência por meio de um microdiário diário, afirmações e quadros de visão. O app tem mais de 6 milhões de downloads, 150 mil classificações de 5 estrelas e 100 milhões de entradas de diário registradas.
Amrit Sanjeev, Ash Nohe • Leitura de 3 minutos
-
Estudos de caso
O Karrot é um app de marketplace hiperlocal e orientado pela comunidade que permite aos usuários comprar, vender e trocar itens com outros usuários verificados. Desde o lançamento na Coreia do Sul em 2015, a plataforma se expandiu para mercados globais, acumulando mais de 43 milhões de usuários registrados.
Thomas Ezan, Tracy Agyemang • Leitura de 2 minutos
-
Estudos de caso
O Monzo é um banco digital do Reino Unido com 15 milhões de clientes e em crescimento. À medida que o app era escalonado, a equipe de engenharia identificou o tempo de inicialização do app como uma área crítica para melhoria, mas se preocupou com o fato de que isso exigiria mudanças significativas na base de código.
Ben Weiss, Tracy Agyemang • Leitura de 2 minutos
Fique por dentro
Receba os insights mais recentes sobre o desenvolvimento do Android na sua caixa de entrada semanalmente.