Jakie funkcje mają progresywne aplikacje internetowe w porównaniu z aplikacjami natywnymi i odwrotnie w systemie Android [zamknięte]

112

W 2015 roku firma Google wprowadziła nowe podejście do tworzenia aplikacji internetowych na Androida: progresywne aplikacje internetowe . Można stworzyć aplikację, która będzie wyglądać jak aplikacja natywna, będzie mogła korzystać ze sprzętu urządzenia, takiego jak kamera i akcelerometry, otrzymywać powiadomienia push, mieć ikonę programu uruchamiającego, pracować w trybie offline, przechowywać dane lokalne itp.

Jakie funkcje zapewniają aplikacje natywne w systemie Android, których progresywne aplikacje internetowe nie obsługują i na odwrót.

Michael
źródło

Odpowiedzi:

201

TL; DR - od lutego 2017 r. Progresywne aplikacje internetowe są wystarczająco wydajną platformą, że Twitter przeniósł cały ruch mobilny w sieci Web do React PWA .

Od sierpnia 2016 r. Progresywne aplikacje internetowe oferują większy dostęp do sprzętu, niż się powszechnie uważa. Oto zrzut ekranu tego, co dziś webcando.z mojej stabilnej wersji Chrome 52 na Androida:

Co internet może dziś zrobić - Chrome 52 na Androida

Dostęp do sprzętu obejmuje

Zbliżający się dostęp do sprzętu

Te funkcje są wdrażane lub już działają w niektórych przeglądarkach:

Kolejną ważną kwestią, na którą należy zwrócić uwagę, jest to, że Origin Trials Framework ( wdrożony w Chrome ) umożliwia producentom ujawnianie i testowanie możliwości sprzętu (lub oprogramowania) bez konieczności przechodzenia przez proces standaryzacji. Na przykład producent telefonu może udostępnić API do odczytywania wartości czujnika ciśnienia, udoskonalić go, a następnie przesłać do rozpatrzenia do W3C.

Oprócz dostępu do sprzętu istnieją również funkcje oprogramowania tradycyjnie wykorzystywane przez aplikacje natywne, które są teraz dostępne dla aplikacji internetowych.

Tradycyjnie natywne funkcje, z których mogą również korzystać PWA

Te funkcje obejmują wiele przypadków użycia, a wiele popularnych aplikacji natywnych można obecnie przepisać na PWA. Weźmy na przykład Slack. Jego alternatywa open source, Rocket.Chat, buduje wersję PWA . Więcej demonstracji PWA można znaleźć na stronie https://pwa.rocks .

Funkcje podobne do natywnych w PWA

Natywne funkcje systemu Android nie są jeszcze dostępne dla aplikacji PWA

  • dostęp do czytnika linii papilarnych (w trakcie opracowywania )
  • dostęp do kontaktów, kalendarza i zakładek przeglądarki (brak dostępu do nich może być postrzegany jako funkcja przez użytkowników dbających o prywatność)
  • alarmy
  • funkcje telefoniczne - przechwytywanie SMS-ów lub połączeń, wysyłanie SMS-ów / MMS-ów, uzyskiwanie numeru telefonu użytkownika, odczytywanie poczty głosowej, wykonywanie połączeń telefonicznych bez okna Dialer
  • niskopoziomowy dostęp do niektórych funkcji sprzętowych i czujników: latarka, czujnik ciśnienia atmosferycznego
  • dostęp do systemu: zarządzanie zadaniami, modyfikacja ustawień systemu, logi

Progresywne aplikacje internetowe oferują funkcje, których brakuje aplikacjom natywnym

  • wykrywalność - zawartość w progresywnych aplikacjach internetowych może być łatwo znaleziona przez wyszukiwarki, ale natywna aplikacja zorientowana na zawartość, taka jak StackOverflow, nie wyświetla się wśród wyników wyszukiwania w sklepie z aplikacjami dla treści, do których oferuje dostęp, np. „pwa vs. natywna”. Jest to problem dla społeczności takich jak Reddit, które nie mogą ujawniać swoich licznych pod-społeczności w sklepie z aplikacjami jako indywidualnych „aplikacji”.
  • możliwość łączenia - każda strona / ekran może mieć bezpośredni link, który można łatwo udostępnić
  • bookmarkability - zapisz ten link, aby uzyskać bezpośredni dostęp do widoku aplikacji
  • zawsze świeże - nie ma potrzeby przechodzenia do sklepów z aplikacjami w celu przesyłania aktualizacji
  • dostęp uniwersalny - nie podlega sklepom z aplikacjami, czasem arbitralnym zasadom lub (niezamierzonym) ograniczeniom geograficznym
  • duże oszczędności danych , niezwykle ważne na rynkach wschodzących z drogim i / lub wolnym dostępem do Internetu. Na przykład witryna e-commerce Konga zmniejszyła zużycie danych o 92% przy pierwszym załadowaniu, migrując do PWA .
  • niskie tarcie w dystrybucji - jeśli Twoja progresywna aplikacja internetowa jest online, jest już dostępna dla użytkowników Androida (i innych urządzeń mobilnych).

Uwaga końcowa: PWA działają z tym samym kodem na komputerach stacjonarnych, a także na większości urządzeń mobilnych. W środowiskach komputerowych (ChromeOS, a później Mac i Windows) są uruchamiane w taki sam sposób, jak inne aplikacje i działają w zwykłym oknie aplikacji (bez karty przeglądarki).

Dan Dascalescu
źródło
1
Mała uwaga: w przypadku „Aplikacji błyskawicznych na Androida” można argumentować, że aplikacjom natywnym (przynajmniej na Androida) nie brakuje już możliwości łączenia.
shawnjan,
Dobra odpowiedź Dan! Czy istnieje sposób, aby PWA uzyskały dostęp do numeru telefonu urządzenia hosta?
Alexander Mills,
@Alexander: nie (zobacz punkt „funkcje telefoniczne”), ponieważ byłoby to naruszenie prywatności. Zamiast tego rozważ użycie autouzupełniania .
Dan Dascalescu
12

Główną zaletą aplikacji natywnych jest to, że mają dostęp do wszystkich natywnych API, które platforma może zaoferować (kontakty, lampa błyskowa aparatu, SMS, telefonia, sieć, bluetooth, czujniki, surowe gniazda ...), podczas gdy progresywna aplikacja internetowa nie może (jeszcze) ponieważ są ograniczone przez możliwości standardowej sieci WWW.

Celem progresywnych aplikacji internetowych jest rozszerzenie tych możliwości, aby obejmowały najbardziej krytyczne przypadki. W tym nastroju spójrz na progresywne aplikacje internetowe: ucieczka z kart bez utraty duszy, gdzie znajdziesz listę tego, co powinna oferować progresywna aplikacja internetowa:

  • Czuły: pasuje do każdego formatu
  • Niezależność od łączności: stopniowo wzbogacana o elementy Service Workers, aby umożliwić im pracę w trybie offline
  • Interakcje podobne do aplikacji: zastosuj model aplikacji Shell + Content, aby tworzyć nawigacje i interakcje aplikacji
  • Świeżość: przejrzysta i zawsze aktualna dzięki procesowi aktualizacji Service Worker
  • Bezpieczne: obsługiwane przez TLS (wymaganie Service Workera), aby zapobiec szpiegowaniu
  • Wykrywalne: są identyfikowalne jako „aplikacje” dzięki manifestom W3C i zakresowi rejestracji Service Workera, który pozwala wyszukiwarkom je znaleźć
  • Możliwość ponownego włączenia: może uzyskać dostęp do interfejsów użytkownika systemu operacyjnego ponownego zaangażowania; np. powiadomienia push
  • Możliwość instalacji: na ekranie głównym za pośrednictwem monitów w przeglądarce, umożliwiając użytkownikom „zachowanie” aplikacji, które uznają za najbardziej przydatne, bez kłopotów związanych z sklepem z aplikacjami
  • Możliwość łączenia: co oznacza, że ​​nie powodują tarcia, nie wymagają instalacji i są łatwe do udostępnienia. Liczy się społeczna siła adresów URL.

Z tych punktów, skorelowane był jednym z pierwszych cech importowanych przez natywnych aplikacji z otwartych sieci w postaci mobilnej głębokiego linkowania .

Ale na szczególną uwagę zasługuje kombinacja świeżo + instalowalna, ponieważ stanowi jedną z głównych zalet sieci jako platformy w porównaniu z natywnymi alternatywami. Tutaj do zainstalowania oznacza, że ​​pojawia się na ekranie głównym. Nie oznacza to, że musisz przejść etapy pobierania i instalacji. Otwierasz adres URL lub odkrywasz usługę podczas przeglądania i gotowe: pojawia się na ekranie głównym .

Fresh odnosi się do sposobu działania zwykłej sieci, oferując natychmiastowe ładowanie i bezproblemowe aktualizacje. Nie jesteś proszony o zainstalowanie aktualizacji z sieci YouTube, jest ona wdrażana i zużywa się ją przy następnej wizycie.

Nie mówię o korzyściach płynących z pozostałych punktów, ponieważ prosiłeś o różnice i na przykład ponowne zaangażowanie jest czymś, co natywne aplikacje już mają za pośrednictwem usług push i powiadomień, a teraz aplikacje internetowe nadrobiły zaległości.

Inne powiązane i kluczowe pytanie dotyczy tego, która platforma jest bardziej odpowiednia dla Twoich potrzeb. Jeśli nie masz dostępu do specjalnych możliwości sprzętowych, internet powinien wystarczyć i wybierając sieć jesteś wolny od rynków, zastrzeżonych ekosystemów, a przy okazji możesz zapewnić pewien stopień powszechności i interoperacyjności .

Na koniec polecam przeglądanie www.flipkart.com na telefonie komórkowym z Chrome. Jest niesamowity: bez błędów, płynna nawigacja, uczucie przypominające aplikację. Przejdź do trybu offline i będzie nadal działać. Prawdziwy przykład tego postu. Dodaj aplikację do ekranu głównego, a następnym razem, gdy ją otworzysz, będzie jeszcze lepsze.

Możesz spojrzeć na Firefox OS, a także na przykład wprowadzenia większej liczby interfejsów API platformy do standardowej sieci (z większym lub mniejszym sukcesem).

Salva
źródło
PWA mogą faktycznie uzyskać dostęp do kamery, a także kilku czujników .
Dan Dascalescu