Índice
1. O que é Trusted Web Activity (TWA)
Trusted Web Activity (TWA) é uma tecnologia do Google Chrome que permite empacotar uma PWA (Progressive Web App) como um aplicativo Android e publicá-la no Google Play. Do ponto de vista do usuário, parece um app nativo — sem barra de endereço, sem interface do Chrome visível.
A diferença fundamental de um app convencional: o TWA carrega o conteúdo do seu site/PWA hospedado na web — não é um app offline por padrão. Isso significa que o app depende da URL da sua PWA estar ativa e acessível.
2. Requisitos para a PWA
Para publicar via TWA no Google Play, a PWA precisa atender critérios específicos:
- HTTPS obrigatório: a PWA precisa ser servida por HTTPS — sem exceções.
- Web App Manifest completo: com nome, ícones (incluindo 512×512), start_url, display: "standalone" ou "fullscreen".
- Service Worker ativo: necessário para o Chrome considerar a PWA "instalável".
- Nota Lighthouse ≥ 80: o Google recomenda que a PWA passe na auditoria do Lighthouse com pontuação de 80+ em Performance, Acessibilidade e PWA.
- Digital Asset Links configurado: arquivo JSON no servidor vinculando o domínio ao package name do app Android (detalhes abaixo).
3. Como criar o APK/AAB via TWA
Há duas abordagens principais:
- Bubblewrap CLI (ferramenta oficial do Google) — recomendado.
- PWABuilder (pwabuilder.com) — interface web sem linha de comando, mais simples para iniciantes.
4. Bubblewrap — a ferramenta oficial
Instalar e inicializar
Instale o Bubblewrap: npm install -g @bubblewrap/cli
Inicie o projeto: bubblewrap init --manifest https://seusite.com/manifest.json
O Bubblewrap vai ler o manifest da sua PWA e gerar um projeto Android com as configurações básicas.
Gerar o AAB
Rode: bubblewrap build
O Bubblewrap vai gerar o arquivo app-release-bundle.aab pronto para upload no Google Play Console.
Via interface web
Acesse pwabuilder.com, insira a URL da sua PWA e clique em "Package for Stores". Selecione "Google Play" e baixe o arquivo ZIP com o projeto Android e o APK/AAB gerado. Mais simples, mas com menos opções de customização.
5. Digital Asset Links — obrigatório
O Digital Asset Links é um arquivo JSON que precisa estar hospedado em https://seusite.com/.well-known/assetlinks.json. Ele vincula o domínio da PWA ao package name do app Android, provando para o Chrome que você controla ambos.
Sem esse arquivo corretamente configurado, o app vai mostrar a barra de endereço do Chrome — perdendo a aparência de app nativo. O Bubblewrap gera o conteúdo correto do arquivo para você durante o bubblewrap init.
⚠️ O assetlinks.json precisa ser hospedado exatamente em /.well-known/assetlinks.json, servido com Content-Type application/json, sem redirecionamentos. Qualquer desvio e o TWA não funciona.
6. Limitações do TWA
- Depende de conectividade: o app carrega da web — sem internet, o conteúdo não aparece (a menos que o Service Worker cache tudo).
- Funcionalidades nativas limitadas: não tem acesso a APIs nativas como notificações push nativas do sistema, câmera via API nativa etc. Tudo passa pelo browser.
- Revisão do Google Play: TWAs passam pelo mesmo processo de revisão que apps nativos. Apps com conteúdo insuficiente podem ser rejeitados pela Guideline de qualidade mínima.
- Não funciona na App Store: a Apple não tem equivalente ao TWA. Para iOS, você precisaria usar Capacitor/Ionic ou outra abordagem nativa.
7. E a App Store?
A Apple não aceita apps que são essencialmente um WebView de site externo — a Guideline 4.7 proíbe isso explicitamente. Para publicar na App Store com tecnologia web, a alternativa é usar Capacitor (Ionic), que empacota o conteúdo web no binário do app — ao invés de depender de uma URL externa.
Quer que a gente publique por você?
App Store e Google Play em até 7 dias. A partir de R$1.800.
Solicitar publicação