PWAs no iOS 14 Beta: mudanças sutis
Publicados: 2020-09-04Índice
É o momento em que exploramos todas as alterações com a versão mais recente do iOS — iOS 14 Beta 6 — e discutimos com você o que mudou, o que há de novo no estado da adoção do PWA no iOS. Como visto em nosso último artigo do PWA iOS 13, havia muitas boas notícias na última versão, e com certeza parecia que a Apple estava se tornando mais amigável ao PWA. Mas eles estão mantendo o ritmo de adoção do PWA ou estão abandonando o PWA completamente com medo de perder receitas de aplicativos? Bem, é isso que estamos aqui para descobrir.
Notas de lançamento
Aqui estão algumas das mudanças importantes que sabemos que estão chegando ao Safari nesta nova versão (algumas das partes irrelevantes foram omitidas):
- Suporte para extensões da Web do Safari no macOS.
- Suporte para HTTP/3.
- Taxa de aprovação de testes de plataforma web aprimorada para WebDriver, XHR+Fetch, Service Workers, CSS e SVG.
- Ativado o bloqueio completo de cookies de terceiros e a API de acesso ao armazenamento no modo de navegação privada.
- Suporte removido para Flash
- Adicionado um autenticador de plataforma de autenticação da Web usando Face ID ou Touch ID, dependendo de qual recurso está presente.
Podemos dizer o que você está pensando – mudanças não tão significativas, não são? Bem, acontece que há mais no PWA iOS 14 do que aparenta.
Mergulhando mais nisso
Esta é a parte em que nos aprofundamos mais no sistema operacional e descobrimos o estado atual do PWA no iOS 14 — incluindo quais são as alterações e como o PWA foi aprimorado e o que podemos esperar quando o iOS 14 chegar à versão estável global.
Os bens
Primeiro sinal de Service Worker
Há um novo recurso WebKit nesta atualização que é chamado App-Bound Domains e, com esse recurso habilitado, a API de service workers pode ser habilitada nos domínios vinculados. Embora não haja documentação oficial sobre o que podemos esperar dos service workers – nem há qualquer confirmação sobre se esse recurso veio ou não para ficar – achamos que ainda é uma notícia muito promissora para os entusiastas do PWA por aí.
Domínios vinculados a aplicativos
O que esse novo recurso traz para a mesa é uma maneira de os desenvolvedores restringirem a navegação no aplicativo a vários domínios e, por sua vez, garantir mais segurança para os usuários finais. Esses domínios “limitados ao aplicativo” são especificados no arquivo info.plist
, sob a chave WKAppBoundDomains
, assim:
<plist version="1.0"> <dict> <key>WKAppBoundDomains</key> <matriz> <string>exemplo1.com</string> <string>example2.org</string> ... </array> </dict>
Com os App-Bound Domains habilitados, agora podemos ter service workers registrados:

Há, no entanto, apenas explicações vagas sobre por que os service workers são habilitados quando temos App-Bound Domains configurados. E como não há como depurar instâncias de service workers, a coisa toda ainda é relativamente vaga, mesmo para desenvolvedores mais experientes.
Vamos pegar o Cache Storage — o recurso que define os service workers — por exemplo. Não é encontrado em nenhum lugar em Armazenamento no Safari DevTools e no registro do service worker, para citar os desenvolvedores experientes que fizeram o trabalho principal: “não é compartilhado com o Safari, aplicativos da web da tela inicial ou outros aplicativos usando WKWebView
e App Bound Domains nas mesmas origens”.
Embora ainda não tenhamos a imagem completa, o fato de Service Worker ser uma coisa no iOS ainda é motivo de comemoração, e só podemos esperar que a versão estável possa nos dar uma imagem mais completa.
Novo suporte para TouchID e FaceID
Recentemente introduzidos na Apple Worldwide Developers Conference (WWDC), o Touch ID e o Face ID estão finalmente disponíveis no Safari através da API WebAuthn. Quando integrados, esses recursos fornecerão uma experiência sem atritos para o seu PWA e, por sua vez, proporcionarão uma melhor experiência do usuário.

Capacidade de alterar o navegador padrão
A partir do iOS 14, os usuários agora podem finalmente escolher navegadores diferentes como padrão . Esta é (meio que) uma boa jogada da Apple e uma boa notícia para os usuários da Apple em todos os lugares, já que alterar os aplicativos padrão simplesmente não era possível antes. Mas segure seu cavalo ainda, isso não significa que os usuários da Apple possam se beneficiar de todos os recursos interessantes que os diferentes mecanismos de navegador da web trarão - na verdade, é tudo a mesma coisa. Os navegadores de terceiros ainda estão sob a restrição de confiar no WebKit da Apple como seu mecanismo de navegação subjacente , o que significa que, embora seus novos navegadores da Web padrão possam parecer brilhantes e diferentes por fora, nada realmente mudou por dentro.

Geolocalização para a Web
Então, qual é o estado da API de geolocalização do W3C no Safari? Bem, há algumas mudanças que resultam em melhor rastreamento de localização, mas não como resultado direto de quaisquer melhorias feitas na API de geolocalização do W3C. Estranho? Nós sabemos. Vamos mergulhar mais nisso:

Quando a Localização precisa está habilitada por aplicativo no novo iOS 14 Beta, podemos fazer com que o Safari rastreie nossa localização aproximada:

A localização aproximada é conhecida apenas pelo sistema operacional e, durante o processo de análise desse novo comportamento de rastreamento de localização no iOS, ninguém realmente encontrou uma resposta conclusiva sobre como o novo iOS 14 Beta 6 fornece localizações aproximadas para PWAs. Mas olhando para os dados até agora, parece promissor. Abaixo está um exemplo do trabalho de Flirt que usa Iguazu como local de rastreamento.

Como você pode ver, a API determina e mostra com precisão a localização do assunto. Nosso palpite é que esse resultado impressionante tem algo a ver com as próximas mudanças na API de localização principal, que foram exibidas neste vídeo da WWDC2020.
Clipes de aplicativos — podem ser uma coisa boa
Com o novo App Clip, os desenvolvedores podem oferecer uma experiência “semelhante à instalação do PWA” simplesmente por meio do uso de uma metatag:
<meta name="apple-itunes-app" content="app-id=myAppStoreID, app-clip-bundle-id=appClipBundleID, affiliate-data=myAffiliateData, app-argument=myAppArgument">
Você pode imaginar que esse novo recurso do App Clip funcione de maneira semelhante ao Instant App no Android, só que é mais focado na digitalização NFC e QR - e fazendo com que os usuários instalem aplicativos nativos.

[Fonte: Redação da Apple]
Qual é o potencial desse novo recurso? Não sabemos - mas pode ser um passo em direção aos PWAs instaláveis que temos no Android.
Os males
Nova App Gallery ignorando PWAs
A nova Biblioteca de aplicativos é um recurso automatizado que classifica e organiza seu aplicativo por uso de aplicativo, categorias etc. Os PWAs adicionados à tela inicial agora podem ter a vantagem de aparecer na tela inicial do usuário e na categoria Webclips, embora esse comportamento não é consistente e está sujeito a alterações.

Na realidade, os primeiros testadores descobriram que os PWAs são ignorados e não são exibidos na nova Biblioteca de Aplicativos – seja no grupo “ Adicionados recentemente ” ou “ Sugestões ”. Portanto, embora possa ser bom que os PWAs tenham o mesmo tipo de tratamento que os aplicativos nativos, isso ainda é uma notícia chocante para nós, pois não esperávamos que os PWAs fossem simplesmente ignorados.
Nenhuma alteração no suporte ao manifesto do aplicativo Web
Como seria de esperar, não há nenhum movimento da Apple para pressionar pelo suporte ao Web App Manifest. O status do suporte ao Manifesto do aplicativo da Web permanece Parcialmente suportado , o que significa que não há suporte para icons
, minimal-ui
, fullscreen
, orientation
ou theme-color
.

Fonte: WebKit
Barra de status
Embora seja bom ver o iOS recebendo o(s) valor(es) da theme-color
do Web App Manifest, teríamos que nos contentar com menos nesse meio tempo. A partir da versão beta 5 do iOS 14, não podemos mais ter a barra de status branca e os únicos valores aceitos são black
e black-translucent
.

Os feios
Os recursos principais ainda não são compatíveis
É uma grande atualização, mas ainda falta algo. Provavelmente tem algo a ver com o fato de que alguns recursos principais do PWA ainda não são suportados, e quase não há movimento da Apple para pressionar por esses recursos:
- Web Push
- Sincronização em segundo plano
- Ciclo de vida da página
- Service Workers em WebViews (o que significa que não há PWAs no Chrome, Firefox, Instagram ou Facebook, onde a navegação na Web não é o objetivo principal)
- Links Universais / Captura de Link
Conclusão
Como você se sente sobre todas essas mudanças que estão por vir? Quanto a nós, sentimos que ficamos com uma nota decepcionante depois de revisar todas as alterações. Existem algumas mudanças - por exemplo, domínios vinculados a aplicativos, geolocalização - que parecem ser um passo na direção certa, mas a Apple realmente não se preocupou em pressionar por mais recursos principais do PWA nesta atualização. E faz sentido, nós achamos, já que é da Apple que estamos falando aqui – que sempre soubemos ser tão inflexível contra a Web.