PWA: istorie, avantaje și neajunsuri
PWA-urile sunt aplicații web care utilizează o strategie de îmbunătățire progresivă, ceea ce înseamnă că verifică dacă browserul acceptă anumite API-uri web și, dacă o face, le pot folosi. De aici și numele – Progressive Web Apps.
Istoric
Termenul a fost inventat în 2015 de un inginer de la Google, Alex Russel și soția acestuia Frances Berriman.
Ideea din spatele PWA nu este nouă – conceptul principal se îndreaptă până la Palm webOS, Firefox OS și Chrome OS, unde toate aplicațiile sunt în esență aplicații web.
În 2007, cu 18 zile înainte de lansarea primului iPhone, Steve Jobs a anunțat ideea că aplicațiile vor fi create folosind tehnologia web și vor fi livrate prin rețea. Inițial, nu existau planuri pentru App Store, iar SDK-ul nativ nu era disponibil în primul an al dispozitivului pe piață.
Iată câteva PWA-uri cunoscute: Instagram, Twitter, Telegram, YouTube, AliExpress, Spotify, TikTok, Tinder, Pinterest, YouPorn, Google și serviciile Microsoft.
Iată un alt fapt interesant: există un logo PWA aprobat de comunitate. Prima persoană care a subliniat că tehnologia avea nevoie de un logo propriu a fost Maxim Salnikov din echipa Microsoft DevRel, care în mai 2017 a lansat un cuvânt pe Twitter, invitând pe toată lumea să-și prezinte propunerile pe GitHub. Logo-ul câștigător, selectat prin votul popular, a fost prezentarea lui Diego Gonzalez. La acea vreme, Diego făcea parte din echipa DevRel pentru Samsung Internet, unul dintre cele mai populare browsere mobile din Asia. Nu cu mult timp în urmă Diego s-a alăturat echipei Microsoft Edge DevRel.
Avantaje
Am discutat cu leader-ul dezvoltatorilor front-end și entuziast PWA al echipei UPGRID despre avantajele și neajunsurile aplicaților PWA.
Sunt cu adevărat cross-platform
PWA-urile pot rula pe dispozitive cu orice factor de formă, pe orice arhitectură și sistem de operare – tot ce au nevoie este un browser și acces la internet. Acestea vor rula pe tot felul de dispozitive: electronice portabile, televizoare inteligente, ochelari VR / AR și chiar dispozitive inimaginabile precum oglinzile inteligente, în timp ce o singură sursă de cod reduce costurile de dezvoltare și suport.
Comportament nativ
PWA-urile arată și funcționează ca aplicații native: se integrează profund în sistemul de operare, sunt lansate printr-o pictogramă pe ecranul de start, pot primi notificări push, pot funcționa offline și pot accesa senzori hardware ai dispozitivului, cum ar fi camera, microfonul, Bluetooth, USB , NFC și altele.
Nu există actualizări de instalat
Pentru a utiliza un PWA, trebuie doar să vizitați site-ul web. Când lansați aplicația pentru prima dată, tot codul de care trebuie să ruleze va fi stocat în cache, iar memoria cache va fi actualizată automat în fundal.
Dimensiune mai mică
PWA-urile în sine nu implementează API-uri – doar apelează API-urile browserului. La pornire, acestea încarcă minimul, apoi adaugă restul după cum este necesar.
PWA-urile sunt descentralizate, deschise și independente
Web-ul este cea mai mare platformă, mai mare decât toate celelalte platforme puse împreună. Pentru a distribui PWA-uri, nu aveți nevoie de magazine de aplicații care să impună propriile reguli. Cu toate acestea, dacă se dorește, un PWA poate fi ambalat într-un aplicație nativă și publicată pe Google Play, App Store sau orice alt magazin.
Securitate
Codul aplicațiilor PWA este executat în sandbox-ul browserului, iar conexiunea securizată HTTPS este utilizată pentru a încărca codul și a transfera date. De asemenea, aplicațiile web utilizează un model de permisiuni mai sigur. De exemplu, spre deosebire de aplicațiile native pentru Android, PWA-urile solicită permisiunea utilizatorului pentru a primi notificări push, pentru a accesa NFC etc.
Pragul de intrare scăzut
Pentru a scrie un PWA, nu este nevoie să înveți alte SDK-uri – cunoașterea HTML, JS și CSS este tot ceea ce ai nevoie. Dezvoltarea nu necesită niciun echipament special, puteți face chiar și fără un IDE sau un compilator – codul JavaScript este interpretat și poate fi depanat în browser.
Dacă aveți deja o aplicație web sau un site web, puteți integra treptat diferite API-uri web.
Neajunsuri
PWA-urile nu sunt susținute în mod egal de diferite platforme. De exemplu, toate browserele iOS trebuie să utilizeze WebKit în loc de propriul motor, iar WebKit nu acceptă anumite API-uri. În special, browserele de pe dispozitivele iOS nu acceptă API-ul Web Push, care este necesar pentru a furniza notificări push.