Iniciar um PWA em um app Android
Os Progressive Web Apps (PWAs) são aplicativos da Web que usam recursos semelhantes aos de apps para criar experiências de alta qualidade que são rápidas, confiáveis e interessantes.
A Web tem um alcance incrível e oferece maneiras eficientes para os usuários descobrirem novas experiências. Mas os usuários também estão acostumados a pesquisar aplicativos na loja do sistema operacional. Esses usuários, em muitos casos, já conhecem a marca ou o serviço que estão procurando e têm um alto nível de intencionalidade, o que resulta em métricas de engajamento acima da média.
A Google Play Store é uma loja de apps Android, e os desenvolvedores geralmente querem abrir os Apps Web Progressivos nos apps Android.
A Atividade confiável na Web é um padrão aberto que permite que os navegadores ofereçam um contêiner totalmente compatível com a plataforma da Web que renderiza PWAs em um app Android. O recurso está disponível no Chrome e em desenvolvimento no Firefox Nightly.
As soluções atuais eram limitadas
Sempre foi possível incluir experiências da Web em um app Android usando tecnologias como o Android WebView ou frameworks como o Cordova.
A limitação do Android WebView é que ele não foi criado para substituir um navegador. O WebView do Android é uma ferramenta para desenvolvedores que usa a interface da Web em um app Android e não oferece acesso completo a recursos modernos da plataforma da Web, como o seletor de contatos ou o sistema de arquivos, entre outros.
O Cordova foi projetado para complementar as deficiências do WebView, mas as APIs ficam limitadas ao ambiente do Cordova. Isso significa que você precisa manter uma base de código adicional para usar as APIs do Cordova no seu app Android, separada do PWA na Web aberta.
Além disso, a capacidade de descoberta de recursos nem sempre funciona como esperado, e problemas de compatibilidade entre versões do Android e OEMs também podem ser um problema. Ao usar uma dessas soluções, os desenvolvedores precisam de processos adicionais de controle de qualidade e incorrem em um custo extra de desenvolvimento para detectar e criar soluções alternativas.
A Atividade Confiável na Web é um novo contêiner para apps da Web no Android.
Os desenvolvedores agora podem usar uma Atividade Confiável na Web como um contêiner para incluir um PWA como uma atividade de inicialização para um app Android. A tecnologia usa o navegador para renderizar o PWA em tela cheia, garantindo que a Atividade Confiável na Web tenha a mesma compatibilidade com os recursos e APIs da plataforma da Web que o navegador subjacente. Há também utilitários de código aberto para facilitar ainda mais a implementação de um app Android usando uma Atividade confiável na Web.
Outra vantagem não disponível em outras soluções é que o contêiner compartilha o armazenamento com o navegador. Os estados de login e as preferências dos usuários são compartilhados de maneira integrada em todas as experiências.
Compatibilidade de navegadores
O recurso está disponível no Chrome desde a versão 75, e o Firefox o implementou na versão noturna.
Critérios de qualidade
Os desenvolvedores da Web precisam usar uma Atividade Confiável na Web quando querem incluir conteúdo da Web em um app Android.
O conteúdo da web em uma Atividade Confiável na Web precisa atender aos critérios de capacidade de instalação do PWA.
Além disso, para corresponder ao comportamento esperado pelos usuários dos aplicativos Android, o Chrome 86 introduziu uma mudança em que a falha ao processar os seguintes cenários é considerada uma falha:
- Falha ao verificar os links de recursos digitais no lançamento do aplicativo.
- Falha ao retornar HTTP 200 para uma solicitação de recurso de rede off-line.
- Uma solicitação de navegação que retorna um erro HTTP 404 ou 5xx".
Quando um desses cenários acontece na Atividade Confiável na Web, isso causa uma falha visível ao usuário do app Android. Confira as orientações sobre como lidar com esses cenários no service worker.
O aplicativo também precisa atender a outros critérios específicos do Android, como conformidade com a política.
Ferramentas
Os desenvolvedores da Web que querem aproveitar a Atividade Confiável na Web não precisam aprender novas tecnologias ou APIs para transformar o PWA em um aplicativo Android. Juntos, o Bubblewrap e o PWABuilder oferecem ferramentas para desenvolvedores na forma de uma biblioteca, uma interface de linha de comando (CLI) e uma interface gráfica do usuário (GUI).
Plástico-bolha
O projeto Bubblewrap gera apps Android na forma de uma biblioteca NodeJS e uma interface de linha de comando (CLI).
Para inicializar um novo projeto, execute a ferramenta e transmita o URL do manifesto da Web:
npx @bubblewrap/cli init --manifest=https://pwa-directory.appspot.com/manifest.json
A ferramenta também pode criar o projeto. Executar o comando abaixo vai gerar um aplicativo Android pronto para ser enviado à Google Play Store:
npx @bubblewrap/cli build
Depois de executar esse comando, um arquivo chamado app-release-signed.apk vai estar disponível no diretório raiz do projeto. Esse é o arquivo que será enviado à Google Play Store.
PWABuilder
O PWABuilder ajuda os desenvolvedores a transformar sites em Progressive Web Apps. Ele também se integra ao Bubblewrap para fornecer uma interface GUI que encapsula esses PWAs em um app Android. A equipe do PWABuilder criou uma ótima postagem no blog sobre como gerar um aplicativo Android usando a ferramenta.
Verificar a propriedade do PWA no app Android
Um desenvolvedor que cria um Progressive Web App incrível não quer que outro desenvolvedor crie um app Android com ele sem permissão. Para evitar isso, o aplicativo Android precisa ser pareado com o PWA usando uma ferramenta chamada Digital Asset Links.
O Bubblewrap e o PWABuilder cuidam da configuração necessária no app Android, mas ainda falta uma etapa: adicionar o arquivo assetlinks.json ao PWA.
Para gerar esse arquivo, os desenvolvedores precisam da assinatura SHA-256 da chave usada para assinar o APK que está sendo baixado pelos usuários.
A chave pode ser gerada de várias maneiras, e a mais fácil de encontrar qual chave assinou o APK veiculado aos usuários finais é fazer o download na própria Google Play Store.
Para evitar mostrar um aplicativo corrompido aos usuários, implante o aplicativo em um
canal de teste fechado, instale-o em um dispositivo de teste e use a Ferramenta Asset Link do Peter para
gerar o arquivo assetlinks.json correto para o app. Disponibilize o arquivo assetlinks.json gerado
em /.well-known/assetlinks.json, no domínio que está sendo validado.
A seguir
Um App Web Progressivo é uma experiência de alta qualidade na Web. A Atividade Confiável na Web é uma nova maneira de abrir essas experiências de alta qualidade de um app Android quando elas atendem aos critérios mínimos de qualidade.
Se você está começando a usar Progressive Web Apps, leia nossas orientações sobre como criar um PWA incrível. Para desenvolvedores que já têm um PWA, use o Lighthouse para verificar se ele atende aos critérios de qualidade.
Em seguida, use o Bubblewrap ou o PWABuilder para gerar o app Android, faça upload do aplicativo para um canal de teste fechado na Google Play Store e pareie com o PWA usando a ferramenta Asset Link do Peter.
Por fim, mova o aplicativo do canal de teste fechado para a produção.