Quali funzionalità hanno le app Web progressive rispetto alle app native e viceversa, su Android [chiuso]


112

Nel 2015 Google ha introdotto un nuovo approccio per lo sviluppo di web app per Android: progressive web app . È possibile creare un'applicazione che assomigli a un'applicazione nativa, sarà in grado di utilizzare l'hardware del dispositivo come fotocamera e accelerometri, ricevere notifiche push, avere un'icona di avvio, lavorare offline, archiviare dati locali, ecc.

Su Android, quali funzionalità forniscono le app native che le app Web progressive non supportano e viceversa.

Risposte:


201

TL; DR - A partire da febbraio 2017, le Progressive Web App sono una piattaforma sufficientemente potente che Twitter ha spostato tutto il loro traffico web mobile su una PWA React .

A partire da agosto 2016, le app Web progressive offrono effettivamente più accesso all'hardware di quanto si pensi comunemente. Ecco uno screenshot di whatwebcando.today dal mio Chrome 52 stabile su Android:

Cosa può fare il Web oggi: Chrome 52 su Android

L'accesso all'hardware include

Prossimo accesso all'hardware

Queste funzionalità sono in fase di implementazione o funzionano già in alcuni browser:

Un altro punto importante da notare è che Origin Trials Framework ( implementato in Chrome ) consente ai produttori di esporre e testare le funzionalità hardware (o software) senza dover passare attraverso il processo di standardizzazione. Ad esempio, un produttore di telefoni potrebbe esporre un'API per leggere i valori di un sensore di pressione, perfezionarlo, quindi inviarlo per esame al W3C.

Oltre all'accesso all'hardware, ci sono anche funzionalità software tradizionalmente impiegate dalle app native che sono ora disponibili per le app web.

Funzionalità tradizionalmente native che possono essere utilizzate anche dalle PWA

Queste funzionalità coprono molti casi d'uso e molte app native popolari al giorno d'oggi potrebbero essere riscritte come PWA. Prendi Slack, per esempio. La sua alternativa open source, Rocket.Chat, sta creando una versione PWA . Per altre demo PWA, vedere https://pwa.rocks .

Funzionalità native in arrivo nelle PWA

Funzionalità Android native non ancora disponibili per le PWA

  • accesso al sensore di impronte digitali (in fase di sviluppo )
  • accesso ai contatti, al calendario e ai segnalibri del browser (la mancanza di accesso a questi potrebbe essere vista come una funzionalità dagli utenti attenti alla privacy)
  • allarmi
  • funzioni di telefonia: intercettare SMS o chiamate, inviare SMS / MMS, ottenere il numero di telefono dell'utente, leggere la posta vocale, effettuare chiamate telefoniche senza la finestra di dialogo Dialer
  • accesso di basso livello ad alcune funzionalità hardware e sensori: torcia, sensore di pressione atmosferica
  • accesso al sistema: gestione delle attività, modifica delle impostazioni di sistema, registri

Le app Web progressive offrono funzionalità che mancano alle app native

  • rilevabilità : il contenuto nelle app web progressive può essere facilmente trovato dai motori di ricerca, ma un'app nativa incentrata sui contenuti come StackOverflow non verrà mostrata tra i risultati di ricerca degli app store per i contenuti a cui offre accesso, come "pwa vs. native". Questo è un problema per comunità come Reddit, che non possono esporre le loro numerose sotto-comunità all'app store come singole "app".
  • collegabilità : qualsiasi pagina / schermata può avere un collegamento diretto, che può essere condiviso facilmente
  • segnalibro : salva il collegamento per accedere direttamente alla visualizzazione di un'app
  • sempre fresco : non è necessario passare attraverso gli app store per eseguire il push degli aggiornamenti
  • accesso universale - non soggetto agli app store a volte a politiche arbitrarie o restrizioni geografiche (non intenzionali)
  • grande risparmio di dati , estremamente importante nei mercati emergenti con accesso a Internet costoso e / o lento. Ad esempio, il sito di e-commerce Konga ha ridotto l'utilizzo dei dati del 92% per il primo caricamento migrando a una PWA .
  • basso attrito di distribuzione : se la tua app web progressiva è online, è già accessibile per gli utenti Android (e altri dispositivi mobili).

Nota finale: le PWA vengono eseguite, con la stessa base di codice, sul desktop e sulla maggior parte dei dispositivi mobili. Sugli ambienti desktop (ChromeOS e, successivamente, Mac e Windows), vengono avviati allo stesso modo delle altre app e vengono eseguiti in una normale finestra dell'app (nessuna scheda del browser).


1
Una piccola nota: con "Android Instant Apps" si potrebbe sostenere che le Native Apps (almeno su Android) non mancano più di collegabilità.
shawnjan

Bella risposta Dan! Esiste un modo per consentire alle PWA di accedere al numero di telefono del dispositivo host?
Alexander Mills

@Alexander: no (vedi il punto "funzioni di telefonia"), perché sarebbe una violazione della privacy. Considera invece l' utilizzo della compilazione automatica .
Dan Dascalescu


12

Il vantaggio principale per le applicazioni native è che possono accedere a tutte le API native che una piattaforma potrebbe offrire (contatti, flash della fotocamera, SMS, telefonia, rete, bluetooth, sensori, prese raw ...) mentre un'applicazione web progressiva non può (ancora) poiché sono vincolati dalle funzionalità Web standard.

L'obiettivo per le applicazioni Web progressive è espandere queste capacità per coprire i casi più critici. In questo stato d'animo, dai un'occhiata alle app Web progressive: sfuggire alle schede senza perdere la nostra anima dove puoi trovare un elenco di ciò che dovrebbe offrire un'applicazione web progressiva:

  • Reattivo: per adattarsi a qualsiasi fattore di forma
  • Indipendente dalla connettività: progressivamente migliorato con i Service Worker per consentire loro di lavorare offline
  • Interazioni simili ad app: adotta un modello di applicazione Shell + Content per creare navigazioni e interazioni appy
  • Fresco: Trasparentemente sempre aggiornato grazie al processo di aggiornamento del Service Worker
  • Sicuro: servito tramite TLS (un requisito del Service Worker) per prevenire lo snooping
  • Rilevabili: sono identificabili come "applicazioni" grazie ai manifesti del W3C e all'ambito di registrazione dei Service Worker che consentono ai motori di ricerca di trovarli
  • Riattiva: può accedere alle interfacce utente di reimpegno del sistema operativo; ad esempio notifiche push
  • Installabile: sulla schermata iniziale tramite prompt forniti dal browser, consentendo agli utenti di "conservare" le app che ritengono più utili senza il fastidio di un app store
  • Collegabile: significa che sono zero attriti, installazione zero e facili da condividere. Il potere sociale degli URL è importante.

Da questi punti, il linkable è stata una delle prime caratteristiche importate dalle applicazioni native dall'Open Web sotto forma di deep linking mobile .

Ma una menzione speciale merita la combo fresca + installabile in quanto rappresenta uno dei principali vantaggi del Web come piattaforma rispetto alle alternative native . Qui installabile significa che appare nella schermata iniziale. Ciò non significa che devi superare le fasi di download e installazione. Apri un URL o scopri un servizio durante la navigazione e il gioco è fatto: appare nella schermata iniziale .

Fresh si riferisce a come funziona un normale web, offrendo un caricamento istantaneo e aggiornamenti senza interruzioni. Non ti viene chiesto di installare un aggiornamento dal web di YouTube, viene distribuito e lo consumi la prossima volta che lo visiti.

Non sto parlando dei vantaggi dei punti rimanenti perché stavi chiedendo le differenze e, ad esempio, il re-engagement è qualcosa che le applicazioni native hanno già tramite i servizi push e le notifiche e ora le applicazioni web hanno raggiunto.

Un'altra domanda correlata e chiave riguarda quale piattaforma è più adatta alle tue esigenze. Se non si accede a funzionalità hardware speciali, il Web dovrebbe essere sufficiente e scegliendo il Web si è liberi dai mercati, dagli ecosistemi proprietari e, a proposito, è possibile garantire un certo grado di ubiquità e interoperabilità .

Come note finali, ti consiglio di navigare su www.flipkart.com da un cellulare con Chrome. È davvero fantastico: nessun bug, navigazione fluida, sensazione simile a un'app. Vai offline e continuerà a funzionare. Un vero esempio del mondo reale di quel post. Aggiungi l'app alla schermata iniziale e la prossima volta che la apri, l'esperienza è ancora migliore.

Puoi dare un'occhiata a Firefox OS e un esempio di come portare più API della piattaforma sul Web standard (con più o meno successo).


I PWA possono effettivamente accedere alla fotocamera, oltre a diversi sensori .
Dan Dascalescu
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.