Quais recursos os Progressive Web Apps têm vs. os aplicativos nativos e vice-versa, no Android [fechado]
112
Em 2015, o Google introduziu uma nova abordagem para o desenvolvimento de aplicativos da web para Android: aplicativos da web progressivos . Pode-se criar um aplicativo que se parecerá com um aplicativo nativo, será capaz de usar o hardware do dispositivo como câmera e acelerômetros, receber notificações push, ter um ícone de iniciador, trabalhar offline, armazenar dados locais, etc.
No Android, quais recursos os aplicativos nativos fornecem que os aplicativos da web progressivos não suportam e vice-versa.
Em agosto de 2016, os Progressive Web Apps oferecem, na verdade, mais acesso ao hardware do que normalmente se pensa. Aqui está uma captura de tela do whatwebcando.today do meu Chrome 52 estável no Android:
O acesso ao hardware inclui
geolocalização - compatível com a grande maioria dos navegadores
Outro ponto importante a ser observado é que o Origin Trials Framework ( implementado no Chrome ) permite que os fabricantes exponham e testem os recursos de hardware (ou software) sem ter que passar pelo processo de padronização. Por exemplo, um fabricante de telefones pode expor um API para ler os valores de um sensor de pressão, refiná-lo e, em seguida, enviá-lo para consideração ao W3C.
Além do acesso ao hardware, também existem recursos de software tradicionalmente empregados por aplicativos nativos que agora estão disponíveis para aplicativos da web.
Recursos tradicionalmente nativos que os PWAs também podem usar
"A lição mais importante é que, embora ainda existam áreas em que o WebGL é significativamente mais lento do que o código nativo, em geral você pode esperar um desempenho muito decente e isso só pode melhorar no futuro."
Esses recursos abrangem muitos casos de uso, e muitos aplicativos nativos populares hoje em dia podem ser reescritos como PWAs. Veja o Slack, por exemplo. Sua alternativa de código aberto, Rocket.Chat, está construindo uma versão PWA . Para obter mais demonstrações do PWA, consulte https://pwa.rocks .
acesso a contatos, calendário e favoritos do navegador (a falta de acesso a eles pode ser vista como um recurso por usuários preocupados com a privacidade)
alarmes
recursos de telefonia - interceptar SMS ou chamadas, enviar SMS / MMS, obter o número de telefone do usuário, ler correio de voz, fazer chamadas sem a caixa de diálogo do discador
acesso de baixo nível a alguns recursos de hardware e sensores: lanterna, sensor de pressão atmosférica
acesso ao sistema: gerenciamento de tarefas, modificação das configurações do sistema, registros
Os Progressive Web Apps oferecem recursos que faltam aos aplicativos nativos
descoberta - o conteúdo em aplicativos da web progressivos pode ser facilmente encontrado por mecanismos de pesquisa, mas um aplicativo nativo centrado em conteúdo como o StackOverflow não aparecerá entre os resultados de pesquisa da loja de aplicativos para conteúdo ao qual oferece acesso, como "pwa vs. nativo". Este é um problema para comunidades como o Reddit, que não pode expor suas numerosas subcomunidades à loja de aplicativos como "aplicativos" individuais.
capacidade de ligação - qualquer página / tela pode ter um link direto, que pode ser compartilhado facilmente
bookmarkability - salve esse link para acessar a visualização de um aplicativo diretamente
sempre fresco - não há necessidade de passar pelas lojas de aplicativos para enviar atualizações
baixo atrito de distribuição - se seu aplicativo da web progressivo estiver online, ele já estará acessível para usuários de Android (e outros dispositivos móveis).
Nota final: os PWAs são executados, com a mesma base de código, no desktop e na maioria dos dispositivos móveis. Em ambientes de desktop (ChromeOS e posterior Mac e Windows), eles são iniciados da mesma forma que outros aplicativos e executados em uma janela de aplicativo normal (sem guia do navegador).
A principal vantagem dos aplicativos nativos é que eles podem acessar todas as APIs nativas que uma plataforma pode oferecer (contatos, flash de câmera, SMS, telefonia, rede, bluetooth, sensores, sockets raw ...) enquanto um aplicativo Web progressivo não pode (ainda) pois são restringidos pelos recursos da Web padrão.
O objetivo dos aplicativos da web progressivos é expandir esses recursos para cobrir os casos mais críticos. Nesse clima, dê uma olhada em Progressive Web Apps: Escape Tabs Without Loosing Our Soul, onde você pode encontrar uma lista do que um aplicativo progressivo da web deve oferecer:
Responsivo: para caber em qualquer fator de forma
Independente de conectividade: progressivamente aprimorada com Service Workers para deixá-los trabalhar offline
Interações semelhantes a aplicativos: adote um modelo de aplicativo Shell + Conteúdo para criar navegações e interações atraentes
Fresh: Transparentemente sempre atualizado, graças ao processo de atualização do Service Worker
Seguro: servido via TLS (um requisito do Service Worker) para evitar espionagem
Detectáveis: são identificáveis como "aplicativos" graças aos manifestos do W3C e ao escopo de registro do Service Worker, permitindo que os mecanismos de pesquisa os encontrem
Reengajável: Pode acessar as UIs de reengajamento do SO; por exemplo, notificações push
Instalável: para a tela inicial por meio de prompts fornecidos pelo navegador, permitindo que os usuários “mantenham” os aplicativos que consideram mais úteis sem o incômodo de uma loja de aplicativos
Linkable: o que significa que são sem atrito, sem instalação e fáceis de compartilhar. O poder social dos URLs é importante.
A partir desses pontos, linkable foi uma das primeiras características importadas por aplicativos nativos da Open Web na forma de deep linking móvel .
Mas uma menção especial merece o combo fresh + installable , pois representa uma das principais vantagens da Web como plataforma sobre as alternativas nativas . Aqui, instalável significa que ele aparece na tela inicial. Isso não significa que você precisa passar pelos estágios de download e instalação. Você abre um URL ou descobre um serviço enquanto navega e pronto: ele aparece na tela inicial .
Fresh se refere a como uma web normal funciona, oferecendo carregamento instantâneo e atualizações contínuas. Não é solicitado que você instale uma atualização da web do YouTube, ela é implantada e você a consome na próxima vez que visitá-la.
Não estou falando sobre os benefícios dos pontos restantes porque você estava pedindo as diferenças e, por exemplo, reengajamento é algo que os aplicativos nativos já possuem por meio de serviços de push e notificações e agora os aplicativos da web estão atualizados.
Outra questão relacionada e importante é sobre qual plataforma é mais adequada para suas necessidades. Se você não está acessando recursos especiais de hardware, a Web deve ser suficiente e escolhendo a web você está livre dos mercados, ecossistemas proprietários e, por falar nisso, você pode garantir certo grau de ubiqüidade e interoperabilidade .
Como notas finais, recomendo que você navegue em www.flipkart.com de um celular com Chrome. É incrível: sem bugs, navegação suave, sensação de app. Fique offline e ele continuará funcionando. Um exemplo do mundo verdadeiramente real dessa postagem. Adicione o aplicativo à tela inicial e, da próxima vez que abri-lo, a experiência será ainda melhor.
Você pode dar uma olhada no Firefox OS , bem como um exemplo de trazer mais APIs de plataforma para a Web padrão (com mais ou menos sucesso).
A principal vantagem dos aplicativos nativos é que eles podem acessar todas as APIs nativas que uma plataforma pode oferecer (contatos, flash de câmera, SMS, telefonia, rede, bluetooth, sensores, sockets raw ...) enquanto um aplicativo Web progressivo não pode (ainda) pois são restringidos pelos recursos da Web padrão.
O objetivo dos aplicativos da web progressivos é expandir esses recursos para cobrir os casos mais críticos. Nesse clima, dê uma olhada em Progressive Web Apps: Escape Tabs Without Loosing Our Soul, onde você pode encontrar uma lista do que um aplicativo progressivo da web deve oferecer:
A partir desses pontos, linkable foi uma das primeiras características importadas por aplicativos nativos da Open Web na forma de deep linking móvel .
Mas uma menção especial merece o combo fresh + installable , pois representa uma das principais vantagens da Web como plataforma sobre as alternativas nativas . Aqui, instalável significa que ele aparece na tela inicial. Isso não significa que você precisa passar pelos estágios de download e instalação. Você abre um URL ou descobre um serviço enquanto navega e pronto: ele aparece na tela inicial .
Fresh se refere a como uma web normal funciona, oferecendo carregamento instantâneo e atualizações contínuas. Não é solicitado que você instale uma atualização da web do YouTube, ela é implantada e você a consome na próxima vez que visitá-la.
Não estou falando sobre os benefícios dos pontos restantes porque você estava pedindo as diferenças e, por exemplo, reengajamento é algo que os aplicativos nativos já possuem por meio de serviços de push e notificações e agora os aplicativos da web estão atualizados.
Outra questão relacionada e importante é sobre qual plataforma é mais adequada para suas necessidades. Se você não está acessando recursos especiais de hardware, a Web deve ser suficiente e escolhendo a web você está livre dos mercados, ecossistemas proprietários e, por falar nisso, você pode garantir certo grau de ubiqüidade e interoperabilidade .
Como notas finais, recomendo que você navegue em www.flipkart.com de um celular com Chrome. É incrível: sem bugs, navegação suave, sensação de app. Fique offline e ele continuará funcionando. Um exemplo do mundo verdadeiramente real dessa postagem. Adicione o aplicativo à tela inicial e, da próxima vez que abri-lo, a experiência será ainda melhor.
Você pode dar uma olhada no Firefox OS , bem como um exemplo de trazer mais APIs de plataforma para a Web padrão (com mais ou menos sucesso).
fonte