web-dev-qa-db-fra.com

Quelles sont les fonctionnalités des applications Web progressives par rapport aux applications natives et vice-versa, sur Android

En 2015, Google a introduit une nouvelle approche pour développer des applications Web pour Android: 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.

Sous Android, quelles sont les fonctionnalités proposées par les applications natives que les applications Web progressives ne prennent pas en charge, et inversement.

109
Michael

TL; DR - Depuis février 2017, les applications Web progressives constituent une plate-forme suffisamment puissante pour que Twitter a déplacé la totalité de son trafic Web mobile vers un PWA React .

Depuis août 2016, les applications Web progressives offrent 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:

What Web Can Do Today - Chrome 52 on Android

L'accès au matériel comprend

Accès au 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 cadre Origin Trials ( implémenté dans Chrome ) permet aux fabricants d’exposer et de tester les capacités matérielles (ou logicielles) sans passer par le processus de normalisation. . Par exemple, un fabricant de téléphone peut exposer une API permettant de lire les valeurs d’un capteur de pression, de l’affiner, puis de 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, désormais disponibles pour les applications Web.

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

Ces fonctionnalités couvrent un grand nombre de cas d'utilisation et de nombreuses applications natives populaires pourraient aujourd'hui ê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émonstrations PWA, voir https://pwa.rocks .

Fonctionnalités de type natif pour les PWA

Fonctionnalités Android natives pas encore disponible pour les PWA

  • accès au capteur d'empreinte digitale ( en développement )
  • accès aux contacts, au calendrier et aux favoris du navigateur (le manque d'accès à ceux-ci pourrait être considéré comme une fonctionnalité par les utilisateurs soucieux de leur vie privée)
  • les 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 Numéroteur
  • accès bas niveau à certaines caractéristiques 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

  • découvrabilité - le contenu des applications Web progressives peut être facilement trouvé par les moteurs de recherche, mais une application native centrée sur le contenu, telle que StackOverflow, ne s'affichera pas parmi les résultats de recherche de magasin d'applications. pour les contenus auxquels il offre un accès, tels que "pwa vs. native". Ceci est un problème pour les communautés comme Reddit, qui ne peuvent pas exposer leurs nombreuses sous-communautés à la boutique d'applications en tant qu '"applications" individuelles.
  • linkability - toute page/écran peut avoir un lien direct, qui peut être facilement partagé
  • bookmarkability - enregistrez ce lien pour accéder directement à la vue d'une application
  • toujours frais - inutile de passer par les magasins d'applications pour mettre à jour vos mises à jour
  • accès universel - non soumis aux magasins d'applications politiques parfois arbitraires ou (non voulu) restrictions géographiques
  • économies importantes de données , extrêmement importantes sur les marchés émergents disposant d'un accès Internet coûteux et/ou lent. Par exemple, le site Web de commerce électronique Konga réduction de l’utilisation des données de 92% pour le premier chargement en migrant vers un PWA .
  • faible friction de distribution - si votre application Web progressive est en ligne, elle est déjà accessible pour les utilisateurs de Android (et autres utilisateurs mobiles).

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

189
Dan Dascalescu

Le principal avantage des applications natives est qu'elles peuvent accéder à toutes les API natives qu'une plate-forme pourrait offrir (contacts, flash d'appareil photo, SMS, téléphonie, réseau, Bluetooth, capteurs, sockets bruts, etc.), alors qu'une application Web progressive ne peut pas (encore) car ils sont contraints 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 oeil à Applications Web progressives: échapper à des onglets sans perdre notre âme où vous pouvez trouver une liste de ce qu'une application Web progressive devrait offrir:

  • Responsive: pour s'adapter à tout facteur de forme
  • Indépendamment de la connectivité: amélioré progressivement avec les travailleurs du service pour leur permettre de travailler hors connexion
  • App-like-interactions: Adoptez un modèle d’application Shell + Content pour créer des interactions et des navigations
  • Frais: toujours à jour en toute transparence grâce au processus de mise à jour de Service Worker
  • Coffre-fort: Servi via TLS (une exigence de l'agent de service) pour empêcher l'espionnage
  • Découvrable: identifiables en tant qu '"applications" grâce à la portée d'enregistrement des manifestes du W3C et du Service Service permettant aux moteurs de recherche de les trouver
  • Ré-engageable: peut accéder aux UI de ré-engagement du système d'exploitation; par exemple. Notifications push
  • Installable: sur l'écran d'accueil par le biais d'invites fournies par le navigateur, permettant aux utilisateurs de "conserver" les applications qu'ils jugent les plus utiles sans les tracas d'un magasin d'applications.
  • Linkable: signifie qu’ils sont zéro frottement, zéro installation et faciles à partager. Le pouvoir social des URL est important.

linkable était l'une des premières caractéristiques importées par les applications natives à partir d'Open Web sous la forme de lien profond mobile =.

Mais une mention spéciale mérite le combo frais + installable car il représente l'un des les 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 lors de la navigation et c'est fait: il apparaît dans votre écran d'accueil .

Fresh indique comment fonctionne un site Web classique, offrant un chargement instantané et des mises à jour transparentes. On ne vous demande pas d'installer une mise à jour à partir du site Web de YouTube, elle est déployée et vous la consommez à la prochaine visite.

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

Une autre question connexe et essentielle concerne la plate-forme la mieux 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 site Web, vous êtes libre des marchés, des écosystèmes propriétaires et, par la même occasion, vous pouvez garantir un degré d'ubiquité et d'interopérabilité . .

Pour terminer, 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'app-like. Passez en mode hors connexion et cela continuera à fonctionner. Un exemple vraiment réel de ce post. Ajoutez l'application à l'écran d'accueil et la prochaine fois que vous l'ouvrirez, l'expérience sera encore meilleure.

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

12
Salva