Możliwości aplikacji PWA

0

Jestem zagorzałym zwolennikiem podejścia WORA (write once, run anywhere), ewentualnie WOCA, z tego powodu, jeżeli możliwości i moje umiejętności pozwalają, niektóre aplikacje tworzę z wykorzystaniem HTML i JS. Te bardziej udane umieszczam na swoim Githubie:
https://github.com/andrzejlisek/AudioSpectrum
https://github.com/andrzejlisek/Roulette
https://github.com/andrzejlisek/TriStateLogic

Zaleta jest taka, że jedną i tą samą aplikację mogę uruchomić na komputerze i na smartfonie. Aby uruchomić na smartfonie, to po prostu przerzucam plik HTML z towarzyszącymi do smartfona i uruchamiam go w przeglądarce.

Ta technologia jest dobra, ale ma pewne ograniczenia, jak:

  • Brak możliwości zapisu lub odczytu pliku poprzez wskazanie ścieżki, np. zapamiętam w Local Storage nazwę pliku, i żeby aplikacja czytała te właśnie plik, doczytałem, że celowo nie ma takiej możliwości ze względów bezpieczeństwa.
  • Brak możliwości pobrania danych lub wysterowania inną stroną HTML (Same-origin policy).
  • Brak możliwości bardziej zaawansowanych działań, takich jak zrzut ekranu, wysłanie e-maila, połączenia sieciowe w ograniczonym zakresie itd.
  • Można wymieniać więcej, ale to nie jest cel tego wątku

Sprawa jest taka, że niedawno spotkałem się z technologią aplikacji PWA i to mnie zainteresowało. Dla mnie to, czy aplikacja będzie funkcjonować samodzielnie, czy w przeglądarce, czy będzie w Google Play bądź AppStore to wszystko jedno. Na pierwszy rzut oka, aplikacja PWA to jest zapakowany HTML/Javascript w aplikację, która wygląda tak, jak zwykła aplikacja na komputerze lub smartfonie. Z drugiej strony, doczytałem że między innymi potrzebny jest serwer HTTPS, a więc musiałbym specjalnie uruchomić taki serwer, do tego jeszcze kilka pomniejszych wymagań.

W związku z powyższym, czy aplikacja PWA ma takie same możliwości jak HTML z JS, czy ma większe możliwości dostępu do urządzenia? na przykład, jak napisałem, w Javascript w przeglądarce nie ma możliwości odczytu pliku według wskazanej ścieżki, ale aplikacja PWA już miałaby taką możliwość. Czy w ogóle PWA daje coś więcej niż to, że aplikacja HTML/JS wygląda jak aplikacja natywna, a nie wewnątrz przeglądarki?

Czy da się wytworzyć i uruchomić PWA całkowicie offline, czyli bez udziału internetu i tym samym bez HTTPS?

0

To w dalszym ciągu jest www i dalej to jest strona internetowa. Przeglądarki wiedzą co mają zrobić i mają wbudowany "tryb" PWA, w którym to przeglądarka wyłącza swoje podstawowe funkcje (pasek adresu, opcje, jakaś dolna belka) i skupia się głównie na zawartości. W pełni działające PWA potrzebuje SSLa, ponieważ jest opcja, aby taka aplikacja działała offline za pomocą Service Worker. Nie bardzo wiem co ciebie w tej kwestii może zainteresować, czy piszesz w Vue, React, Angular, czysty JS dlatego nie wrzucam linków do artykułów. Myślę, że ogarniesz Google ;-)

0

Moc PWA to przede wszystkim ładowanie całej zawartości w tle (coś jak ajax) i komunikaty "push" np. https://onesignal.com ;)
Oczywiście działa offline, ładuje się cache w tle do smarfona (ikona) i pc (skrót) jest to funkcjonalne, daje wysokie wyniki w testach, lecz oczywiście nie zastąpi w 100% natywnej apk.

0

Ja programuję w czystym JS, jak czegoś nie wiem, to doczytuję korzystając z Google.

Szukam odpowiedzi na jedno proste pytanie: Czy PWA daje coś więcej (jeżeli tak, to co) niż to, że aplikacja uruchamiana w przeglądarce sprawia wrażenie, że jest natywną aplikacją?

Ja działam czysto hobbystycznie. Jeżeli PWA to jest nic więcej, jak ładnie oprawiona strona internetowa (podobnie, jak obraz, który lepiej wygląda, jak jest oprawiony w odpowiednią dla niego ramę), to nie warto sibie tym głowy zawracać. A jeżeli jest to coś więcej (np. PWA ma więcej możliwości niż zwykły HTML+JS, ale mniej możliwości niż aplikacja w C++ lub C#), np. dostęp do plików na dysku, więcej możliwości nagrywania i odtwarzania dźwięku/obrazu, połączenia TCP/IP i dużo można by wymyślać, to wtedy może warto w to brnąć.

Padło stwierdzenie, że mam do dyspozycji ServiceWorker, który pozwala przewidzieć zachowanie w przypadku braku połączenia z internetem. W drugą stronę, czy to samo można uzyskać w zwykłym projekcie HTML/JS w przeglądarce?
Padło stwierdzenie, że jest ładowanie w tle podobne do AJAX i komunikaty push, ale w przeglądarce też jest AJAX i komunikaty push (ostatnio z resztą bardzo modne, bo większość stron wyświetla pytanie o pozwolenie na powiadomienia i zawsze klikam na NIE).

Co do Push, to czy na serwerze IIS w Windows lub NGinx na Linux da się coś takiego uruchomić? Jak szukałem w Google, to jedyne co znalazłem, to oferty film, z którymi trzeba zawrzeć umowę i wstawić na swoją stronę kawałek kodu, który jest dostarczony przez tą firmę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1