Um Progressive Web App promete o melhor de dois mundos: a alcançabilidade da web com a sensação de um aplicativo instalado. Abre rápido, funciona offline, pode mandar notificação, instala na tela inicial sem passar por loja. Na teoria, é elegante.
Muita gente liga um PWA, vê que "funciona" e presume que ganhou performance de brinde. Alguns meses depois, o app está lento, o cache atrapalha mais do que ajuda, e a tal experiência de aplicativo virou uma página web pesada com um ícone na tela.
PWA não é um interruptor de performance. É uma arquitetura que, bem cuidada, entrega velocidade, e que, negligenciada, entrega frustração. Quero explicar o que é um PWA e, principalmente, como manter sua performance saudável na rotina, porque é no dia a dia que ela se ganha ou se perde.
O que é um PWA, sem mistério
Um PWA é, na essência, um site que usa um conjunto de tecnologias web modernas para se comportar como um aplicativo. Os três pilares são o service worker, que roda em segundo plano e controla cache e funcionamento offline; o manifesto, que permite instalar o app na tela inicial com ícone e nome próprios; e o uso de HTTPS, exigência de segurança para tudo isso funcionar.
O service worker é o coração da história. Ele fica entre o app e a rede, interceptando requisições e decidindo o que servir do cache e o que buscar online. É ele que faz o PWA abrir instantaneamente e funcionar sem conexão.
Esse poder é também a fonte dos problemas. Um service worker mal configurado serve conteúdo velho, não atualiza quando deveria, ou enche o dispositivo de cache inútil. A mesma peça que dá a velocidade pode entregar a lentidão.
A tese: performance de PWA é manutenção, não instalação
A ideia que mais quero combater é a de que performance vem da decisão de "usar PWA". Defendo que ela vem de hábitos contínuos de desenvolvimento, e que um PWA exige mais disciplina, não menos, do que um site comum.
A razão é simples: o PWA adiciona uma camada, o service worker e suas estratégias de cache, que precisa ser pensada, testada e mantida. Cada nova versão do app é uma oportunidade de quebrar o cache, servir conteúdo desatualizado ou inflar o que fica guardado no dispositivo.
Por isso, performance de PWA é um cuidado de rotina. É algo que entra no fluxo de cada entrega, não uma configuração que você faz uma vez e esquece. Quem trata como esquecível acumula problemas que só aparecem quando o usuário já está irritado.
Estratégia de cache: o cuidado central
A decisão mais importante na rotina de um PWA é como cada tipo de recurso é cacheado. Não existe uma estratégia única boa para tudo.
Arquivos que mudam raramente, o código da aplicação, ícones, fontes, podem ser cacheados de forma agressiva, servidos primeiro do cache para abrir rápido. Já dados que mudam o tempo todo, o conteúdo que o usuário consome, precisam de estratégias que priorizem a rede ou que validem se o cache ainda está fresco.
O erro mais comum é aplicar uma estratégia agressiva a tudo. O app abre voando, mas mostra informação velha, e o usuário vê preços, status ou conteúdos desatualizados. Em aplicações com dados sensíveis, isso passa de incômodo a problema sério.
No dia a dia, cada novo recurso adicionado ao app deveria gerar a pergunta: como isso deve ser cacheado? Tratar essa pergunta como parte do desenvolvimento, e não como detalhe, é o que mantém a performance e a corretude juntas.
Versionamento e atualização sem dor
Um problema clássico de PWA é o usuário ficar preso a uma versão antiga porque o service worker continua servindo o cache velho. Você publica uma correção e o usuário não a vê, porque o app dele insiste em mostrar o que tinha guardado.
Resolver isso exige uma estratégia de versionamento de cache e de atualização do service worker. Quando uma nova versão é publicada, o app precisa perceber, baixar o novo conteúdo e ativá-lo de forma controlada, idealmente avisando o usuário ou atualizando na próxima abertura.
Esse fluxo precisa ser testado a cada entrega. Já vi times publicarem correções urgentes que simplesmente não chegavam aos usuários por causa de cache mal gerenciado. A correção existia no servidor e era inútil no dispositivo. Performance, aqui, inclui a capacidade de corrigir rápido, e isso depende de o ciclo de atualização funcionar.
Medir é parte da rotina
Não dá para cuidar do que não se mede. A performance de um PWA precisa ser acompanhada com dados reais, não só com a impressão de que "está rápido na minha máquina".
Ferramentas de auditoria de performance web ajudam a medir tempo de carregamento, tamanho de recursos e qualidade do funcionamento offline. Métricas de carregamento percebido, quão rápido o usuário vê algo útil na tela, dizem mais sobre a experiência do que números técnicos isolados.
O ideal é incorporar essa medição ao fluxo de entrega, para que regressões de performance sejam pegas antes de chegarem ao usuário. Um app que era rápido e foi ficando lento raramente piorou de uma vez; piorou aos poucos, em entregas que ninguém mediu. Medição contínua é o que transforma performance de sorte em controle.
Os limites e armadilhas do PWA
Por mais que eu defenda PWA, é importante reconhecer seus limites para não vender ilusão. Em alguns sistemas, o acesso a recursos do dispositivo ainda é mais restrito que num app nativo. O comportamento de notificações e instalação varia entre plataformas. E há funcionalidades de hardware que um PWA simplesmente não alcança com a mesma profundidade.
Além disso, a própria flexibilidade da web pode levar a apps inchados. Sem disciplina, é fácil acumular bibliotecas, scripts e estilos que pesam o carregamento. PWA não corrige código mal feito; ele apenas adiciona uma camada por cima. Performance ruim na base continua ruim com o PWA ligado.
A armadilha maior é a complacência. Como o PWA "parece" um app e abre rápido depois do primeiro carregamento, é fácil deixar de medir e cuidar. A degradação chega silenciosa, e quando alguém percebe, recuperar a performance custa mais do que teria custado mantê-la.
PWA é uma tecnologia excelente para quem quer alcance da web com qualidade de aplicativo, desde que entenda que essa qualidade é resultado de cuidado contínuo. A velocidade do primeiro dia só permanece se houver disciplina todos os dias.
Se o seu time mantém um PWA e quer estruturar uma rotina de cuidado com performance, há outros textos aqui no blog sobre web, performance e desenvolvimento. E se quiser conversar sobre o caso do seu produto, fico à disposição.
Leia também
- Progressive Web Apps para iniciantes: exemplos e otimização sem complicar
- PWA: O Que E e Como Otimizar Performance para Escalar
- Latência em aplicações web: os fundamentos que todo time precisa entender
- Progressive Web App: Exemplos e Otimizacao para Empresas
- PWA para startups: quando o Progressive Web App é a aposta certa
- Quando Usar PWA: Seguranca para Empresas