Trabalho fora da tela
Rede, banco, imagem e cálculo rodam em segundo plano. A linha que desenha a tela fica livre para desenhar.
Listas rolando sem engasgo, gráficos atualizando e a tela respondendo ao toque antes de o dedo sair. Nada disso é acaso: é um conjunto de decisões técnicas que cabe explicar sem jargão — porque é o que separa um app que as pessoas usam de um que elas toleram.
A 60 quadros por segundo, é esse o tempo que o aplicativo tem para desenhar cada um. Passou disso, o olho vê o engasgo.
Fluidez não é uma impressão vaga — é uma conta. Para a tela atualizar 60 vezes por segundo, cada quadro precisa ficar pronto em menos de 16 milissegundos; em aparelhos com tela de 120 Hz, em menos de 8. Se uma leitura de banco, um cálculo pesado ou o processamento de uma imagem acontecer no meio desse intervalo, o quadro perde a hora e a rolagem trava. É por isso que trabalho pesado nunca roda na mesma linha de execução que desenha a tela.
A segunda regra é reciclar. Uma lista de 5.000 pedidos não cria 5.000 telas: cria as dez ou quinze que cabem na tela e reaproveita cada uma à medida que a rolagem avança. Parece detalhe, e é o que decide se o app abre a lista instantaneamente ou se ele consome memória até o sistema encerrá-lo — quase sempre no aparelho mais modesto, que costuma ser o de quem mais usa.
A terceira é responder na hora, ainda que a resposta seja parcial. Quando alguém toca em salvar, a tela reage no mesmo instante: o botão muda de estado, o item aparece na lista, o app segue navegável. A gravação no servidor acontece atrás, e se falhar, o app avisa e desfaz. Sensação de rapidez é, em boa parte, ausência de espera sem resposta.
Aparelho de entrada é o teste de verdade. Um app que roda liso no celular mais caro do time e engasga no do usuário foi otimizado para a pessoa errada.
Seis decisões técnicas que aparecem como sensação e se explicam como engenharia.
Rede, banco, imagem e cálculo rodam em segundo plano. A linha que desenha a tela fica livre para desenhar.
Só o que está visível existe. Rolagem infinita com memória constante, mesmo em base grande.
Redimensionadas ao tamanho real de exibição, em cache no aparelho e carregadas progressivamente.
A tela reage antes de o servidor confirmar; se der erro, o app avisa e reverte.
Transições curtas que explicam de onde a tela veio. Movimento decorativo cansa e atrasa.
Quadros perdidos, tempo até a primeira tela útil e consumo de memória medidos a cada versão.
O que a vitrine mostra em movimento, congelado nos três momentos que importam.
Desempenho é requisito de cada ciclo, não um mutirão no fim do projeto.
Escolhemos com você o aparelho mais modesto que precisa rodar bem. Ele passa a ser a régua.
Perfilamos a tela lenta e descobrimos a causa real. Otimização por palpite costuma complicar o código sem ganho.
Trabalho para segundo plano, consulta reduzida, imagem no tamanho certo, lista reciclada.
A medição entra na esteira: se uma versão nova estourar o orçamento de quadro, aparece antes de chegar à loja.
As causas mais comuns, em ordem de frequência no que recebemos para consertar.
Números acompanhados versão a versão, e não só quando alguém reclama.
O caminho que percorremos quando alguém diz que o aplicativo está lento.
| O que se percebe | Causa mais comum | Correção usual |
|---|---|---|
| A lista treme ao rolar | trabalho pesado no momento de desenhar cada item | preparar os dados antes e manter a célula simples |
| O app demora a abrir | inicialização carregando o que ainda não é necessário | adiar o não essencial para depois da primeira tela |
| A tela congela ao salvar | espera pela resposta do servidor sem retorno visual | atualizar a tela na hora e confirmar em segundo plano |
| A imagem entra tremendo | foto no tamanho original sendo redimensionada na hora | gerar a versão do tamanho certo e guardar em cache |
| O celular esquenta | atualização em excesso ou animação sem parada | reduzir a frequência e parar o que não está visível |
| Fecha em aparelho antigo | consumo de memória acima do que o modelo suporta | reciclar listas, liberar imagens e testar no aparelho real |
O que combinamos antes de começar — e cobramos de nós mesmos durante o projeto.
As dúvidas que mais aparecem nesta etapa. Sobre prazo, forma de cobrança e contrato, veja as perguntas frequentes da YveTech.
Em aplicativo de negócio, consegue — e o usuário não distingue. React Native e Flutter desenham com aceleração de vídeo e alcançam os mesmos 60 quadros por segundo quando o app é bem construído. A diferença aparece em casos extremos: jogo, gráfico pesado, processamento contínuo de câmera.
Na maioria das vezes, sim, e sem reescrever. Começamos medindo para achar a causa real — costumam ser dois ou três pontos concentrados, não o aplicativo inteiro. Só recomendamos reconstrução quando a arquitetura impede a correção, e nesse caso mostramos por quê.
Porque a suposição costuma estar errada, e porque o aparelho modesto revela problemas que existem em todos — só que nos bons celulares eles ficam escondidos pela sobra de processamento. Corrigir ali melhora a experiência em toda a base.
Animação curta e com propósito ajuda: ela explica para onde a tela foi e reduz a sensação de espera. O que atrapalha é movimento decorativo, longo ou que continua rodando fora da vista — e isso nós evitamos por padrão.
Conte em que tela e em que aparelho. Medimos, achamos a causa e mostramos o que dá para corrigir sem reescrever.
As quatro etapas do método e os três recortes da operação — cada uma com o seu próprio detalhamento.