Witam.
Ostatnio zastanawiało mnie jakie mam korzyści z natywnej aplikacji. Lubię Fluttera i przyjemnie się w tym piszę ale... Czy to nie jest tak, że teraz PWA, albo ogólnie web ma sporo możliwości, które w zupełności wystarczą do poprawnej pracy/funkcjonowania?
DANE/KONFIGURACJA
- W natywnych mamy pełny dostęp do plików i możliwość tworzenia plików konfiguracyjnych, baz danych SQLite itp
- W webie mamy: cookies, web storage oraz indexedDB
DOSTĘPY
- W natywnych mamy pełny dostęp do hardware'u ale wykorzystujemy go tylko gdy aplikacja ma taką potrzebę
- WHAT WEB CAN DO TODAY? oraz What PWA Can Do Today
INTERNET
- Natywne mogą pracować offline. Facebook tutaj jest dobrym przykładem cache'owania offline.
- Jest Service Worker do pracy offline ale on działa w określonych przypadkach dobrze.
SKLEP/AKTUALIZACJE
- W natywnych wiadomo. Największym problemem jest iOS. Google nawet dobrze to znosi. Płacisz za deweloperkę.
- Omijasz sklep, aktualizuje się "samo", twoim kosztem jest tworzenie oprogramowania i hosting.
UŻYTKOWNICY
- Tak jak już pisałem wyżej. Ja sobie mogę we Fluterze pisać ale tylko na androida. Dobrze wiemy jakie durne zasady ma iOS.
- Każdy ma dostęp. Może iOS niekoniecznie dobrze obsługuje PWA ale otworzyć web w safari nie powinno stanowić problemu.
PODSUMOWANIE
Wyszło mi, że PWA przegrywa z native tylko w kwestii pracy offline, chociaż to też bym podciągnął pod wyjątkowe przypadki, tak jak dostęp do hardware'u. Martwi mnie również kwestia zapisywania danych lokalnie. W przypadku natywnych te dane są bardziej trwałe. W przypadku web, wystarczy wyczyścić dane przeglądarki.
Może też moje przypadki powodują, że mam tego typu przemyślenia. Projekty zaczynam od web (.NET Core + Angular). Dlaczego tego tylko nie dostosować do innych urządzeń?