Como funciona um PWA e por que ele pode substituir o app de loja
Um PWA é um site que o navegador instala como aplicativo. O manifesto em JSON informa nome, ícones e modo de exibição; o service worker intercepta requisições e viabiliza cache e notificações; a instalação sai do próprio navegador. Ele substitui o app de loja quando o produto cabe nas APIs da web e precisa de atualização imediata.
Publicado em
As três peças de um PWA
A web.dev define o Progressive Web App como um app web que usa aprimoramento progressivo para ser mais confiável, recorre a recursos novos para se integrar ao sistema e pode ser instalado. A MDN acrescenta que ele continua sendo tecnicamente um site e depende de um motor de navegador para rodar.
O funcionamento se apoia em três peças: HTTPS, manifesto e service worker. As duas primeiras são exigidas para instalar. A terceira, segundo a MDN, não é requisito de instalação, mas é o que muitos PWAs usam para funcionar offline.
O manifesto: a ficha de identidade do aplicativo
O manifesto é um arquivo JSON, definido por especificação do W3C, com o que o navegador precisa para instalar o app, como nome e ícone. A extensão recomendada é .webmanifest, e o arquivo entra na página por um elemento link com rel="manifest" no head do HTML.
Pela web.dev, o Chrome exige short_name ou name, ícones de 192 e 512 pixels, start_url e display com valor fullscreen, standalone, minimal-ui ou window-controls-overlay, além de prefer_related_applications ausente ou igual a false.
O display define a aparência. Em standalone, a MDN descreve janela própria, ícone no lançador e nenhuma barra de endereço; em minimal-ui, ficam controles como voltar e recarregar. Se o modo pedido não for suportado, o navegador recua na ordem fullscreen, standalone, minimal-ui e browser.
O service worker: um proxy entre o app e a rede
A MDN define o service worker como um proxy entre a aplicação, o navegador e a rede. Ele roda em outra thread, sem acesso ao DOM, e só está disponível em contexto seguro, isto é, HTTPS, com o localhost aceito para desenvolvimento.
O ciclo passa por registro, instalação e ativação. No evento install, o padrão é criar um cache com a Cache API e guardar os arquivos de que o app precisa para abrir sem conexão. Ativo, ele recebe os eventos fetch e decide se responde com o cache ou com a rede.
A atualização fica a cargo do navegador. Segundo a MDN, a checagem ocorre a cada navegação dentro do escopo, ou quando um evento dispara e a última busca do arquivo passou de 24 horas. Se o arquivo novo difere byte a byte, o navegador tenta instalar a nova versão.
Como a instalação acontece em cada navegador
No Chrome, a web.dev lista ainda sinais de engajamento: o usuário precisa ter clicado ou tocado na página ao menos uma vez e passado pelo menos 30 segundos nela. Cumpridos os critérios, o navegador pode mostrar um botão Instalar na barra de endereço e dispara o evento beforeinstallprompt, que permite ao site exibir o próprio botão. A MDN aponta que esse evento não é Baseline: não funciona em alguns dos navegadores mais usados.
No Android, segundo a MDN, só o Chrome em aparelhos com Google Mobile Services e o Samsung Internet em aparelhos Samsung instalam o PWA como WebAPK, que ganha entrada própria no lançador, no alternador de apps e nas configurações do sistema. Pela web.dev, esse pacote Android é criado em um servidor de geração, em geral na nuvem. Firefox, Edge, Opera e o Chrome sem Google Mobile Services criam um atalho que abre o site no navegador.
Na Apple não há prompt de instalação: o usuário abre o menu Compartilhar e toca em Adicionar à Tela de Início, caminho que, desde o iOS 16.4, vale para Safari, Chrome, Edge, Firefox e Orion. No computador, o Firefox não instala PWAs pelo manifesto.
Por isso, páginas de instalação separam as instruções por sistema. No Milhar do Sonho, a orientação para Android é usar o prompt Instalar do Chrome, e a do iPhone é abrir o site no Safari e tocar em Adicionar à Tela de Início.
Quando o PWA substitui o app de loja
A diferença mais concreta está na atualização. A web.dev afirma que, no PWA, não há empacotamento, revisão extra de conteúdo nem atraso nas atualizações: o usuário recebe a versão mais recente ao visitar o app. No app de plataforma, cada atualização exige reempacotar, assinar e aprovar de novo, e reinstalar.
Depois vem a distribuição. A MDN lembra que sites são indexados por buscadores, compartilhados por URL e publicados sem cadastro na loja de uma empresa. A loja não fica vetada: a web.dev cita Google Play, Microsoft Store e App Store como canais opcionais, e a Trusted Web Activity abre o PWA dentro de um app Android.
Notificação também deixou de ser exclusividade da loja no iPhone. Segundo o blog do WebKit, o iOS e o iPadOS 16.4 passaram a aceitar Web Push em web apps adicionados à Tela de Início, com permissão pedida após uma ação direta do usuário.
Assim, o PWA tende a cumprir o papel do app de loja quando o produto é conteúdo, consulta, formulário ou painel, muda com frequência e é encontrado por busca ou por link.
Quando a loja ainda faz sentido
O limite mais claro é o hardware. A MDN marca a Web NFC como experimental e fora do Baseline; no caniuse.com, consultado em setembro de 2026, entre os navegadores principais, o suporte aparece apenas no Chrome para Android, sem Safari no iPhone.
Há atritos de ciclo de vida. Pela web.dev, no Safari do iOS e do iPadOS o único jeito de receber metadados novos do manifesto é reinstalar o app. No Android, o WebAPK do Chrome só é atualizado se o usuário abrir o PWA.
Quando o público procura o produto dentro da loja, ou o recurso central é de hardware, o app de plataforma, ou um PWA empacotado para a loja, segue como a escolha mais segura.
Este conteúdo sobre jogo do bicho destina-se a maiores de 18 anos. O jogo do bicho não é modalidade autorizada pela legislação federal.
Perguntas frequentes
Um PWA precisa de service worker para ser instalado?
Não. Segundo a MDN, ele não é requisito de instalação, embora muitos PWAs o usem para funcionar offline.
Como instalar um PWA no iPhone?
Não existe prompt automático. Abra o site, toque no menu Compartilhar e escolha Adicionar à Tela de Início. Desde o iOS 16.4, isso funciona no Safari, no Chrome, no Edge, no Firefox e no Orion.
Dá para publicar um PWA na Google Play?
Dá. A Trusted Web Activity abre o PWA dentro de um app Android, com a ligação entre app e site verificada por Digital Asset Links.
Fontes
- web.dev/learn/pwa/progressive-web-apps
- developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/What_is_a_progressive_web_app
- developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Manifest
- developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Manifest/Reference/display
- web.dev/articles/install-criteria
- developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API
- developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable
- developer.mozilla.org/en-US/docs/Web/API/Window/beforeinstallprompt_event
- web.dev/learn/pwa/installation
- web.dev/learn/pwa/update
- developer.chrome.com/docs/android/trusted-web-activity
- webkit.org/blog/13878/web-push-for-web-apps-on-ios-and-ipados/
- developer.mozilla.org/en-US/docs/Web/API/Web_NFC_API
- caniuse.com/webnfc