PWA (Progressive Web App) é definido como um bom site que pode se comportar como um aplicativo nativo, utilizando tecnologias da Web como Service Workers para fornecer uma experiência semelhante a de um app. PWAs oferecem vantagens como independência de lojas de aplicativos, multiplataforma e desempenho similar ao de apps nativos, apesar de terem algumas desvantagens como limitações da Apple e isolamento.
2. O que é PWA?
Em um artigo da Microsoft, Pwa é definido como:
[..] Progressive Web Apps são somente bons websites que podem se
comportar como aplicativos nativos — ou, talvez, são somente bons apps,
alimentado pelas tecnologias Web e entregues com a estrutura Web.
É uma tecnologia que vem sendo muito difundida pelo Google e pela Microsoft. E nada mais é que páginas web, desenvolvidas utilizando apenas tecnologias web como HTML, CSS E JAVASCRIPT basicamente e tem como finalidade trazer a experiência de um aplicativo nativo em uma estrutura web.
Pode ser visto como uma combinação ou uma evolução híbrida entre sites e aplicativos mobile.
Utilizam os Service Workers, que são basicamente scripts javascript que controlam armazenamento de cash permitindo um desempenho mais alto pois permite que os assets e boa parte do frontend fique armazenado no próprio dispositivo.
(executados em segundo plano, separados da página web e que possui um ciclo de vida próprio, isso permite utiliizar recursos que não precisem da página ou da interação do usuário)
Os service workers são utilizados para criar as push notifications e também a sincronização de dados em segundo plano. Quando falamos sobre PWA estamos falando necessariamente sobre os service workers
Isso é bacana porque podemos executar esses apps completamente offline. Falarei disso mais a frente.
“ Se um PWA é praticamente um App nativo, ele se comporta também como um? ”
Sim, ele também se comporta como um! definido pela Google como confiável, engajante e rápido.
Progressivo: Qualquer usuário pode utilizar, independente do navegador que ele esteja usando.
Responsivo: se adequar a qualquer dispositivo: desktop, celular ou tablet.
Independente de conectividade: garante o funcionamento das principais funcionalidades da aplicação sem a necessidade de conectividade. Também é otimizado para trabalhar em redes de baixa qualidade.
Semelhante a aplicativos: A navegação e interação com o usuário é semelhante a de um App, se utiliza a mesma estrutura visual e de percepção.
Atual: Está sempre atualizado devido a um serviço que roda em plano de fundo.
Seguro: Fornecido via HTTPS (criptografia na conexão dos dados), as informações partilhadas em uma aplicação PWA não podem ser adulteradas e tem pouco risco de invasão.
Descobrível: Devido aos manifestos W3C, as aplicações em PWA são reconhecidas pelos mecanismos de busca como um App, sendo facilmente encontrados.
Reenvolvente: Com recursos como notificações push, é possível engajar com o usuário e fazer com que ele se interesse em utilizar a sua solução.
Instalável: Mesmo não tendo a necessidade de ser baixado em uma loja de aplicativos, um PWA garante com que o usuário possa colocar o ícone da aplicação em sua tela principal, se comportando de forma semelhante a um App depois disso.
Linkável – Compartilhado facilmente por URL.
Tem menos benefícios para os usuários, mas trás um grande benefício para as empresas e desenvolvedores.
Funcionamento offline
Processos rodando em background ( os service workers)
Atualização automática
Notificações push
Sem a necessidade de baixar todos os dados da aplicação.
Acesso a camera, fotos, videos, microfone, geolocalização, e até aos contatos.
Falando sobre plataformas, eu falei lá no inicio que eles utilizam apenas HTML, CSS E JAVASCRIPT, isso faz com que atualizações para outras plataformas se torne muito mais simples.
Independência das Apps Stores acabam sendo uma vantagem de certa forma para as PWAs: como assim?
Muitos usuários apresentam uma resistência a baixar novos aplicativos, seja por conta de espaço de armazenamento, concorrência com outros aplicativos também, ou até mesmo quando a gente baixa um app e só usa ele uma vez na vida.
Esse ultimo pode parecer meio nada a ver, mas tem uma grande relevância para o lado de empresas que investem muito dinheiro para manter seus aplicativos em multi plataformas, sempre mantendo atualizado por conta de concorrência com novos apps que surgem a todo momento.
A apple não adere completamente ainda a utilização de PWAs. Aquelas permissões e funcionalidades ainda não são suportadas 100% no Safari. Por exemplo, ele não deixa fazer push notifications e nem abrir 100% offline
Outra questão é permissão de utilização do bluetooth e do NFC pra todos dispositivos ( dependendo do app)
São altamente isolados, dificultando que PWAs diferentes consigam compartilhar recursos e dados diretamente
Por se tratar de um web app, a performance em comparação com apps nativos pode ser uma desvantagem, mesmo que em alguns casos a percepção seja diferente
O ionic roda em multiplataformas, gratuito, opensource, o proprio slack é desenvolvido com ele.
O polymer desenvolvido pelo google, ele é uma lib, que trás varios web components, ferramentas e templates para desevolver PWAs. Uma vantagem dele é ser uma lib super leve de se utilizar em projetos.
Quando falamos de PWA angular, falamos necessariamente do angular a partir da versao 5, pois as versões anteriores não oferecem tanto suporte
Home Depot, Inc., ou simplesmente Home Depot, é uma companhia varejista norte-americana que vende produtos para casa e construção civil.