O que é PWA? Guia para desenvolvedores em 2026

O que é PWA: um site que se instala como aplicativo e funciona offline. Requisitos de instalação por navegador, limites no iOS e testes no celular.

Neste artigo

O que é PWA: um aplicativo web progressivo (PWA, de progressive web app) é um site construído com tecnologias web padrão que se comporta como um aplicativo de plataforma: pode ser instalado, abre na própria janela com um ícone e pode funcionar offline. O MDN a define como «um aplicativo construído com tecnologias da plataforma web, mas que oferece uma experiência de usuário semelhante à de um aplicativo de plataforma» (MDN, dezembro de 2025). Dois arquivos fazem quase todo o trabalho: um manifesto de aplicativo web, que descreve o aplicativo, e, para uso offline, um service worker.

O que é um aplicativo web progressivo

Um PWA é um aplicativo web que mantém as propriedades de um site e acrescenta algumas de um aplicativo nativo. Segundo o MDN, de sites ele mantém uma base de código única para todos os sistemas operacionais e o acesso direto pela web. De aplicativos de plataforma ele herda a instalação (a partir de uma loja de aplicativos ou diretamente pela web), o lançamento como aplicativo independente com ícone, a operação offline e em segundo plano, o uso em tela cheia sem a interface do navegador e a integração com o sistema operacional, como os destinos de compartilhamento.

Um PWA é um site normal mais duas funcionalidades técnicas:

  • o manifesto de aplicativo web, um arquivo JSON que o navegador lê para saber o nome do aplicativo, seus ícones e como abri-lo;
  • um service worker, um script que controla as páginas do aplicativo e, nas palavras do MDN, pode buscar recursos no servidor e adicioná-los a um cache local.
Um PWA é um site mais um manifesto de aplicativo web (nome, ícones, página inicial, modo de exibição), que o torna instalável em navegadores Chromium, e um service worker, que permite uso offline, mas não é necessário para instalar

O web.dev descreve a mesma ideia: um PWA usa aprimoramento progressivo para oferecer uma experiência mais confiável e mais integrada, e pode ser instalado (web.dev, setembro de 2024).

O que torna um PWA instalável

Quem decide se um aplicativo é instalável é o navegador, e os critérios variam. Para os navegadores baseados em Chromium (Chrome, Samsung Internet, Edge), o MDN lista estes requisitos (MDN, Making PWAs installable, outubro de 2026):

Requisito Detalhe
HTTPS Servido por https, ou a partir de localhost ou 127.0.0.1 durante o desenvolvimento
name ou short_name no manifesto Pelo menos um
icons no manifesto Deve conter um ícone de 192 px e um de 512 px
start_url no manifesto Obrigatório
display ou display_override no manifesto Obrigatório; o Chrome aceita fullscreen, standalone, minimal-ui ou window-controls-overlay
prefer_related_applications Deve ser false ou estar ausente

O Chrome também espera uma interação antes de disparar o evento beforeinstallprompt: o usuário precisa ter clicado ou tocado na página ao menos uma vez e tê-la visto por pelo menos 30 segundos (web.dev, setembro de 2024).

O service worker não está na lista. O MDN diz que ele não é requisito para ser instalável, embora muitos PWAs o usem para o uso offline. Um manifesto mínimo que atende à tabela fica assim:

{
  "name": "My PWA",
  "short_name": "MyPWA",
  "start_url": "/",
  "display": "standalone",
  "icons": [
    { "src": "/icons/192.png", "type": "image/png", "sizes": "192x192" },
    { "src": "/icons/512.png", "type": "image/png", "sizes": "512x512" }
  ]
}

Vincule-o em cada página com <link rel="manifest" href="/manifest.webmanifest">.

Como um PWA funciona offline

Um service worker torna o uso offline possível ao interceptar as requisições de rede e responder a partir de um cache. Registre-o na sua página e depois trate o evento fetch no worker. Este é o padrão «cache primeiro» do MDN, resumido:

// na página
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/service-worker.js');
}
// service-worker.js
self.addEventListener('fetch', (event) => {
  event.respondWith(
    caches.match(event.request).then((cached) => cached || fetch(event.request))
  );
});

Esse trecho responde pelo cache e recorre à rede, mas nunca preenche o cache; o exemplo completo do MDN acrescenta a etapa de gravação e uma página de contingência. O MDN também observa que «cache primeiro» tem mais chance de devolver uma resposta desatualizada, enquanto «rede primeiro» recorre ao cache quando o dispositivo está offline, e que a melhor estratégia depende do aplicativo. Os service workers são Baseline amplamente disponíveis (desde outubro de 2020, com Chrome 45, Firefox 44 e Safari 11.1 como primeiras versões, segundo o web-features 3.44.0).

Onde iOS e Android diferem

Android e iOS instalam PWAs, mas diferem na forma e em algumas funcionalidades. Em outubro de 2026, segundo o MDN, a Apple e o web-features:

Plataforma e navegador Comportamento na instalação
Chrome no Android Instala como WebAPK em aparelhos com Google Mobile Services; sem eles, adiciona um atalho com o selo do navegador
Samsung Internet Instala PWAs como WebAPK, com entrada no lançador de aplicativos e no seletor de apps
Firefox no desktop Não instala PWAs a partir de um manifesto
Safari no iOS Pelo menu Compartilhar; desde o iOS 16.4 também a partir de Chrome, Edge, Firefox e Orion
Safari no macOS Adicionar ao Dock (macOS Sonoma, Safari 17) para qualquer site, com ou sem manifesto

Três pontos do iOS importam para desenvolvedores:

  • O beforeinstallprompt não é suportado no iOS, segundo o MDN, então você não pode exibir um botão próprio de instalação. Explique os passos do menu Compartilhar na sua interface; o web.dev observa que designers costumam incluir esse tipo de tela.
  • Desde o iOS 26, «todo site adicionado à tela de início abre como aplicativo web» por padrão, e o usuário pode desativar «Abrir como aplicativo web» mesmo que o site tenha um manifesto (blog da WebKit, 9 de junho de 2025).
  • As notificações push web no iOS e no iPadOS estão disponíveis para aplicativos web da tela de início desde o iOS 16.4. Um site conta como aplicativo web da tela de início quando o manifesto define display como standalone ou fullscreen, e o pedido de permissão precisa vir de um gesto do usuário (blog da WebKit, 16 de fevereiro de 2023). O web-features classifica o Push como Baseline recentemente disponível desde março de 2023 e amplamente disponível desde setembro de 2025, com Safari 16 e Safari iOS 16.4 como primeiras versões.

Os detalhes de «Adicionar à Tela de Início» mudam a cada versão do iOS, então confira a versão que você suporta.

Exemplos de PWA

O guia de PWA do web.dev lista empresas que relatam resultados depois de lançar um PWA; os números são das próprias empresas, coletados pelo web.dev (setembro de 2024, web.dev):

Empresa Resultado relatado
Hulu 96% dos usuários do aplicativo antigo adotaram o PWA em cinco meses
JD.ID Taxa de conversão no celular 53% maior
Clipchamp Retenção de usuários 9% maior que a dos usuários do aplicativo de desktop
Gravit Designer Usuários do PWA 24% mais ativos

São resultados que essas empresas divulgaram sobre os próprios produtos.

PWA ou aplicativo nativo

Uma regra prática: escolha um PWA quando importar mais uma única base de código web e a distribuição pela web; escolha um aplicativo nativo quando precisar de recursos da plataforma que a web não oferece. O MDN observa que um PWA também pode ser distribuído por lojas de aplicativos, então as duas opções não se excluem. Se você publicar um aplicativo nativo junto com o site, os links podem abri-lo diretamente; a configuração está em links universais e App Links do Android.

Como testar um PWA no celular

Teste um PWA em três etapas: DevTools para os arquivos, um celular real para a instalação e uma visualização em tamanho de celular para o layout.

  1. DevTools: no painel Application do Chrome DevTools, a seção Manifest mostra os campos e ícones do aplicativo, e uma seção Installability descreve o erro se algo estiver errado. O painel Service Workers tem uma caixa Offline que coloca o DevTools em modo offline (Chrome for Developers). Os testes de PWA do Lighthouse estão obsoletos (página atualizada em abril de 2024), então use o painel Application.
  2. Um celular real: instale o aplicativo pelo navegador, coloque o aparelho no modo avião e abra o aplicativo pelo ícone. Faça isso no iOS e no Android, porque o fluxo de instalação e o comportamento das notificações são diferentes.
  3. Tamanhos de celular: verifique as páginas em larguras de celular, como em qualquer site mobile, com o guia de como tornar um site compatível com celulares e a lista de testes de site mobile; para iOS sem aparelho, veja testar em um iPhone sem ter um iPhone.

O Mobile View Extension recarrega a aba atual com o user agent, o tamanho de tela e a densidade de pixels de um celular, então é uma forma rápida de ver as páginas do seu PWA em tamanhos de celular. Ele não consegue instalar um PWA nem executar service workers e o modo independente como um celular faz: usa o motor do Chrome de desktop, com entrada por mouse, e não mostra o comportamento da tela de início. Use um celular para os testes de instalação e de uso offline. A velocidade é tratada à parte no guia de teste de velocidade em celulares.

Perguntas frequentes

O que é um PWA, em termos simples?

Um PWA é um site que pode ser instalado em um dispositivo e usado como um aplicativo. Ele é feito com tecnologias web comuns, e um manifesto e um service worker oferecem o comportamento instalado e offline.

Quais são os requisitos de um PWA?

Para instalar em navegadores Chromium: HTTPS, um manifesto com nome, um ícone de 192 px e outro de 512 px, start_url e display, e prefer_related_applications sem o valor true. Um service worker não é obrigatório para ser instalável, mas você precisa dele para o uso offline.

PWAs funcionam no iPhone?

Sim. Desde o iOS 16.4 podem ser instalados pelo menu Compartilhar do Safari, Chrome, Edge, Firefox e Orion, e os aplicativos web da tela de início podem receber notificações push web. Não existe beforeinstallprompt no iOS, então os usuários instalam pelo menu Compartilhar.

Um PWA pode funcionar offline?

Sim, quando um service worker guarda em cache as páginas e os arquivos de que precisa. Sem service worker, o aplicativo ainda pode ser instalado nos navegadores Chromium, mas não tem tratamento próprio para o uso offline.

Veja seu próximo site na versão mobile.

Adicione a extensão e abra prévias de aparelhos na mesma aba em que você já está trabalhando.