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).