Quelles sont les fonctionnalités des Progressive Web Apps par rapport aux applications natives et vice-versa, sur Android [fermé]

112

En 2015, Google a introduit une nouvelle approche pour développer des applications Web pour Android: les applications Web progressives . On peut créer une application qui ressemblera à une application native, pourra utiliser le matériel de l'appareil comme la caméra et les accéléromètres, recevoir des notifications push, avoir une icône de lanceur, travailler en mode hors connexion, stocker des données locales, etc.

Sur Android, quelles fonctionnalités les applications natives fournissent-elles que les applications Web progressives ne prennent pas en charge, et vice versa.

Michael
la source

Réponses:

201

TL; DR - Depuis février 2017, les applications Web progressives sont une plate-forme suffisamment puissante pour que Twitter ait transféré tout son trafic Web mobile vers une PWA React .

Depuis août 2016, les Progressive Web Apps offrent en fait plus d'accès au matériel qu'on ne le pense généralement. Voici une capture d'écran de whatwebcando.today de mon Chrome 52 stable sur Android:

Ce que le Web peut faire aujourd'hui - Chrome 52 sur Android

L'accès au matériel comprend

Accès matériel à venir

Ces fonctionnalités sont en cours d'implémentation ou fonctionnent déjà dans certains navigateurs:

Un autre point important à noter est que le framework Origin Trials ( implémenté dans Chrome ) permet aux fabricants d'exposer et de tester les capacités matérielles (ou logicielles) sans avoir à passer par le processus de normalisation. Par exemple, un fabricant de téléphone pourrait exposer une API pour lire les valeurs d'un capteur de pression, l'affiner, puis la soumettre pour examen au W3C.

Outre l'accès au matériel, il existe également des fonctionnalités logicielles traditionnellement utilisées par les applications natives qui sont désormais disponibles pour les applications Web.

Fonctionnalités traditionnellement natives que les PWA peuvent également utiliser

Ces fonctionnalités couvrent de nombreux cas d'utilisation, et de nombreuses applications natives populaires de nos jours pourraient être réécrites en tant que PWA. Prenez Slack, par exemple. Son alternative open source, Rocket.Chat, construit une version PWA . Pour plus de démos PWA, voir https://pwa.rocks .

Fonctionnalités de type natif à venir sur les PWA

Fonctionnalités Android natives non encore disponibles pour les PWA

  • accès au capteur d'empreintes digitales (en cours de développement )
  • accès aux contacts, au calendrier et aux signets du navigateur (le manque d'accès à ceux-ci peut être considéré comme une fonctionnalité par les utilisateurs soucieux de leur confidentialité)
  • alarmes
  • fonctions de téléphonie - intercepter des SMS ou des appels, envoyer des SMS / MMS, obtenir le numéro de téléphone de l'utilisateur, lire la messagerie vocale, passer des appels téléphoniques sans la boîte de dialogue du numéroteur
  • accès de bas niveau à certaines fonctionnalités matérielles et capteurs: lampe de poche, capteur de pression atmosphérique
  • accès système: gestion des tâches, modification des paramètres système, journaux

Les applications Web progressives offrent des fonctionnalités qui manquent aux applications natives

  • découvrabilité - le contenu des applications Web progressives peut facilement être trouvé par les moteurs de recherche, mais une application native centrée sur le contenu comme StackOverflow n'apparaîtra pas parmi les résultats de recherche de l'App Store pour le contenu auquel elle offre un accès, comme "pwa vs natif". C'est un problème pour des communautés comme Reddit, qui ne peuvent pas exposer leurs nombreuses sous-communautés à l'App Store en tant qu '«applications» individuelles.
  • linkability - n'importe quelle page / écran peut avoir un lien direct, qui peut être partagé facilement
  • bookmarkability - enregistrez ce lien pour accéder directement à la vue d'une application
  • toujours frais - pas besoin de passer par les magasins d'applications pour pousser les mises à jour
  • accès universel - non soumis par les magasins d'applications, parfois des politiques arbitraires ou des restrictions géographiques (involontaires)
  • d'importantes économies de données , extrêmement importantes dans les marchés émergents avec un accès Internet coûteux et / ou lent. Par exemple, le site Web de commerce électronique Konga a réduit l'utilisation des données de 92% pour la première charge en migrant vers une PWA .
  • faible friction de distribution - si votre application Web progressive est en ligne, elle est déjà accessible pour les utilisateurs d'Android (et d'autres mobiles).

Remarque finale: les PWA fonctionnent, avec la même base de code, sur le bureau ainsi que sur la plupart des appareils mobiles. Sur les environnements de bureau (ChromeOS, et plus tard Mac et Windows), ils sont lancés de la même manière que les autres applications et s'exécutent dans une fenêtre d'application standard (pas d'onglet de navigateur).

Dan Dascalescu
la source
1
Une petite note: avec "Android Instant Apps", vous pourriez affirmer que les applications natives (au moins sur Android) ne manquent plus de lien.
shawnjan
Bonne réponse Dan! Existe-t-il un moyen pour les PWA d'accéder au numéro de téléphone du périphérique hôte?
Alexander Mills
@Alexander: non (voir la puce «fonctionnalités de téléphonie»), car ce serait une violation de la vie privée. Pensez à utiliser le remplissage automatique à la place.
Dan Dascalescu
12

Le principal avantage des applications natives est qu'elles peuvent accéder à toutes les API natives qu'une plateforme pourrait offrir (contacts, flash d'appareil photo, SMS, téléphonie, réseau, bluetooth, capteurs, prises brutes ...) alors qu'une application web progressive ne peut pas (encore) car ils sont limités par les fonctionnalités Web standard.

L'objectif des applications Web progressives est d'étendre ces capacités pour couvrir les cas les plus critiques. Dans cette ambiance, jetez un œil à Progressive Web Apps: Escaping Tabs Without Loosing Our Soul où vous pouvez trouver une liste de ce qu'une application Web progressive devrait offrir:

  • Réactif: pour s'adapter à tous les facteurs de forme
  • Indépendant de la connectivité: progressivement amélioré avec les techniciens de service pour leur permettre de travailler hors ligne
  • Interactions de type application: adoptez un modèle d'application Shell + Content pour créer des navigations et des interactions avec des applications
  • Frais: toujours à jour de manière transparente grâce au processus de mise à jour du Service Worker
  • Sûr: Servi via TLS (une exigence du Service Worker) pour empêcher l'espionnage
  • Découvrable: sont identifiables comme des «applications» grâce aux Manifestes W3C et à la portée d'enregistrement des Service Worker permettant aux moteurs de recherche de les trouver
  • Réengageable: peut accéder aux interfaces utilisateur de réengagement du système d'exploitation; par exemple, notifications push
  • Installable: sur l'écran d'accueil via des invites fournies par le navigateur, permettant aux utilisateurs de «conserver» les applications qu'ils trouvent les plus utiles sans les tracas d'un magasin d'applications
  • Lien: ce qui signifie qu'ils sont sans friction, sans installation et faciles à partager. Le pouvoir social des URL est important.

À partir de ces points, le lien a été l'une des premières caractéristiques importées par les applications natives de l'Open Web sous la forme de liens profonds mobiles .

Mais une mention spéciale mérite le combo frais + installable car il représente l'un des principaux avantages du Web en tant que plate-forme par rapport aux alternatives natives . Ici installable signifie qu'il apparaît dans votre écran d'accueil. Cela ne signifie pas que vous devez passer les étapes de téléchargement et d'installation. Vous ouvrez une URL ou découvrez un service en naviguant et c'est fait: il apparaît dans votre écran d'accueil .

Fresh fait référence au fonctionnement d'un site Web régulier, offrant une charge instantanée et des mises à jour transparentes. Vous n'êtes pas invité à installer une mise à jour à partir du Web de YouTube, elle est déployée et vous la consommez la prochaine fois que vous la visitez.

Je ne parle pas des avantages des points restants parce que vous demandiez les différences et, par exemple, le réengagement est quelque chose que les applications natives ont déjà via des services push et des notifications et maintenant les applications Web ont rattrapé leur retard.

Une autre question connexe et clé est de savoir quelle plate-forme est la plus adaptée à vos besoins. Si vous n'accédez pas à des capacités matérielles spéciales, le Web devrait suffire et en choisissant le Web, vous êtes libre des marchés, des écosystèmes propriétaires et, en passant, vous pouvez garantir un certain degré d'ubiquité et d' interopérabilité .

Pour finir , je vous recommande de parcourir www.flipkart.com depuis un mobile avec Chrome. C'est assez génial: pas de bugs, navigation fluide, sensation d'apps. Mettez-vous hors ligne et cela continuera à fonctionner. Un exemple vraiment réel de ce poste. Ajoutez l'application à l'écran d'accueil et la prochaine fois que vous l'ouvrez, l'expérience est encore meilleure.

Vous pouvez jeter un oeil à Firefox OS ainsi qu'à un exemple d'amener plus d'API de plate-forme au Web standard (avec plus ou moins de succès).

Salva
la source
Les PWA peuvent effectivement accéder à la caméra, ainsi qu'à plusieurs capteurs .
Dan Dascalescu