Aplicație web progresivă

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Aplicația web progresivă ( PWA , în italiană aplicații web progresive ) este un termen, creat inițial de Google , care se referă la aplicații web care sunt dezvoltate și încărcate ca pagini web normale, dar care se comportă similar cu aplicațiile native atunci când sunt utilizate pe un dispozitiv mobil [ 1] . Spre deosebire de aplicațiile tradiționale, aplicațiile web progresive sunt un hibrid de pagini web normale (sau site-uri web) și aplicații mobile. Acest model de aplicație caută să combine posibilitățile oferite de majoritatea browserelor moderne cu beneficiile utilizării mobile.

Termenul Progresivi se referă la faptul că, din punctul de vedere al experienței utilizatorului, aceste aplicații pot permite o serie de caracteristici suplimentare paginilor web normale, în funcție de funcționalitatea oferită de dispozitiv [2] . De exemplu, browserul poate oferi utilizatorului să le salveze pe ecranul de start al terminalului mobil, pentru a fi perceput din toate punctele de vedere ca aplicații native [3] . Mai multe companii au văzut [4] îmbunătățiri notabile în diferiți indicatori cheie de performanță , cum ar fi o creștere a timpului petrecut pe site sau în conversiile de noi utilizatori.

Prezentare generală

Din 2005, tehnologiile de dezvoltare web s-au mutat de la producerea de pagini statice la pagini dinamice prin utilizarea instrumentelor de pe server ( PHP , ASP.NET ) și de pe partea de client ( javascript prin noua caracteristică Ajax [5] ), și prin intermediul web responsive proiectare . [6] În ciuda impulsului inițial pentru crearea de aplicații web bazate pe aceste tehnologii pe terminale precum iPhone - ul din 2007, încercările cu aplicații web au eșuat în comparație cu aplicațiile native. Aplicațiile native au oferit o experiență de utilizare mai bună, s-au încărcat mai repede în comparație cu încărcarea care trebuia făcută de browser. Resursele de ambalare și accesul direct la hardware au permis aplicațiilor native să fie mult mai rapide și să ofere mai multă funcționalitate. Dar de la mijlocul anului 2010, îmbunătățirile continue în HTML5 , CSS3 și JavaScript , browsere web din ce în ce mai performante, conforme cu standardele, împreună cu procesoare puternice precum A10 și Snapdragon 821 au făcut din aplicațiile hibride o alternativă viabilă.

Aplicații hibride

Aplicațiile hibride sunt un pas intermediar către aplicațiile web progresive: imită experiența utilizatorului aplicațiilor native de pe mobil și au nevoie în continuare de un magazin de aplicații pentru a fi descărcat. Ca atare, consumă spațiu de memorie pe terminal. Combinația de markup , foi de stil și scripturi a permis crearea de elemente interactive personalizate fără utilizarea de sisteme închise precum Flash. În timp ce rulau parțial în browserul terminalului mobil, aplicațiile hibride nu aveau o adresă URL, aveau o interfață de utilizator bogată și acces la funcțiile sistemului. Noile versiuni ale cadrelor CSS3 și JavaScript au permis utilizarea de noi modele de design, cum ar fi modelul box urmat de grile și flex, asociate cu transformări și animații.

Aplicații web progresive

În 2015, Frances Berriman și dezvoltatorul Google Chrome Alex Russell au inventat termenul „Progresive aplicații web” [7] pentru a descrie aplicațiile care au profitat de noile caracteristici oferite de browserele moderne, inclusiv Service Workers și Web App Manifests, care permit utilizatorilor să promoveze aplicațiile web să se comporte ca aplicații de primă clasă, adică ca aplicații native, în sistemul de operare al dispozitivelor lor. Potrivit dezvoltatorilor Google, [7] [8] [9] aceste funcții sunt:

  • Progresiv - Acestea funcționează pentru fiecare utilizator, indiferent de browserul ales, deoarece sunt construite la bază cu principii de îmbunătățire progresivă.
  • Responsive - Se adaptează la diferite dimensiuni de ecran: desktop, mobil, tabletă sau dimensiuni care pot deveni ulterior disponibile.
  • Independent de disponibilitatea conexiunii - Lucrătorii de servicii vă permit să rulați aplicația offline, atunci când nu există conexiune sau cu conexiuni de calitate scăzută.
  • Asemănător cu aplicațiile - Se comportă cu utilizatorul ca și cum ar fi aplicații native, în ceea ce privește interacțiunea și navigarea.
  • Actualizate - Informațiile sunt întotdeauna actualizate datorită procesului de actualizare a datelor oferit de lucrătorii din service.
  • Sigur - Sunt expuse pe protocolul HTTPS pentru a împiedica conexiunea să expună informații sau conținutul să fie modificat.
  • Descoperibile - Sunt identificate ca „aplicații” datorită manifestului W3C [10] și domeniului de înregistrare a lucrătorilor de servicii care le permite motoarelor de căutare să le găsească.
  • Reactivabil - Faceți mai ușoară reactivarea aplicației cu funcții precum notificările push.
  • Instalabile - Permit utilizatorului să „salveze” aplicațiile pe care le consideră cele mai utile cu pictograma corespunzătoare de pe ecranul terminalului mobil (ecranul de pornire) fără a fi nevoie să facă față tuturor pașilor și problemelor legate de utilizarea magazinului de aplicații.
  • Conectabil - ușor de partajat prin URL și nu necesită instalări complexe.

Aplicațiile web progresive descrise de Shoaib în postarea sa: [11] sunt o evoluție a tehnologiilor web existente. Ca atare, nu necesită implementări sau instalații separate. Publicarea unei aplicații web progresive funcționează la fel ca o altă pagină web. Din 2016, aplicațiile web progresive au fost implementate în browserul Chrome, iar alte browsere au anunțat asistență.

Criteriile tehnice de bază pentru ca un site să fie considerat o aplicație web progresivă de către browser sunt descrise în postarea lui Russell: [12]

  • Acestea sunt expuse de o sursă securizată https. Acestea sunt servite prin protocolul TLS cu lacătul verde afișat în browser.
  • Acestea pot fi încărcate și executate chiar și în timp ce terminalul utilizatorului este offline (chiar dacă este doar o pagină creată în acest scop). Aplicațiile web progresive necesită lucrătorilor de servicii pentru a obține această funcționalitate.
  • Aveți un Manifest de aplicație web de referință cu cel puțin patru proprietăți cheie: nume, scurt_nume, start_url și afișaj (a cărui valoare poate fi independentă sau pe ecran complet)
  • O pictogramă mare de cel puțin 144 × 144 pixeli în format png. De exemplu: "pictograme": [{"src": "/images/icon-144.png", "sizes": "144x144", "type": "image / png"}]

Tehnologii

Tehnologiile utilizate în mod obișnuit pentru a crea aplicații web progresive sunt următoarele:

Manifesta

Manifestul aplicației web este o specificație W3C în format JSON [10] care oferă dezvoltatorilor locul de plasare a metadatelor asociate cu aplicația web, inclusiv:

  • Numele aplicației web
  • Linkuri către pictograme sau imagini ale aplicațiilor web
  • Adresa URL preferată pentru lansarea sau deschiderea aplicației web
  • Configurarea datelor aplicației web pentru mai multe funcții
  • Declarația orientării implicite a aplicației web
  • Activarea setării modului ecran, de exemplu pe ecran complet

Prin setarea și modificarea metadatelor fișierului manifest, dezvoltatorii permit agenților utilizator să creeze moduri de utilizare pentru aplicațiile web progresive care au aceleași caracteristici ca aplicațiile native.

Lucrători de servicii

Aplicațiile mobile native oferă o experiență bogată și performanțe bune, cu prețul ocupării spațiului în terminal, lipsa actualizărilor în timp real și vizibilitate redusă în motoarele de căutare. Aplicațiile web tradiționale, pe de altă parte, lipsesc în alte aspecte: lipsa executabilului compilat în mod nativ, împreună cu dependența de conectivitate care ar putea fi nesigură sau lentă. Lucrătorii de servicii sunt folosiți într-un efort de a oferi cele mai bune din aceste două lumi aplicațiilor web progresive.

Din punct de vedere tehnic, Service Workers oferă un proxy de rețea implementat ca un script JavaScript în browserul web pentru a gestiona programatic cererile web / HTTP. Lucrătorii de servicii se interpun între conexiunea la rețea și terminalul care furnizează conținutul. Sunt capabili să utilizeze mecanismele de cache în mod eficient și să permită un comportament fără erori în perioade lungi de utilizare offline.

Proprietatea lucrătorilor de servicii

  1. Activat și menținut activ de relațiile cu evenimentele, și nu de cele cu documente
  2. Generic în natura lor
  3. Condus de evenimente cu o limită de timp în contextul scriptării și rulează la sursă
  4. Cu obiective naturale pentru un set larg de servicii de runtime
  5. Au un stat
  6. Cu adresa URL a unui script
  7. Acestea conțin înregistrarea
  8. ID sau UUID alocat
  9. Cu evenimente cu cicluri de viață
  10. Au o hartă a resurselor scriptului
  11. Ei pot sări peste așteptare

Avantajele lucrătorilor din servicii

  • Sunt capabili să gestioneze cu ușurință notificările push
  • Acestea sincronizează datele în fundal
  • Sunt capabili să răspundă la solicitările de resurse generate de alte părți
  • Ei primesc actualizări centralizate

Aplicație Shell Architecture

Pentru încărcare rapidă, lucrătorii de service stochează interfața de bază sau „shell” a aplicației web în modul Responsive Web Design. Acest shell oferă un cadru static inițial, aspect sau arhitectură în care conținutul poate fi încărcat atât progresiv, cât și dinamic, permițând utilizatorilor să interacționeze cu aplicația, în ciuda nivelurilor variate ale calității conexiunii. Din punct de vedere tehnic, shell-ul este cod care este stocat local în cache-ul browserului terminalului mobil.

Notă

  1. ^ (EN) Aplicații web progresive pe dezvoltatori Google. Accesat la 6 octombrie 2018 .
  2. ^ (RO) Introducere în aplicația web Progressive Architectures pe Google Developers. Accesat la 6 octombrie 2018 .
  3. ^ (EN) Progressive Web Apps 101: the What, Why and How - freeCodeCamp.org pe freeCodeCamp.org, 20 iulie 2018. Adus pe 6 octombrie 2018.
  4. ^ De ce aplicațiile web progresive sunt viitorul mobilului web (Cercetare 2019) , pe ymedialabs.com .
  5. ^ Jesse James Garrett, Ajax: O nouă abordare a aplicațiilor web , la adaptivepath.org . Adus la 18 februarie 2005 .
  6. ^ Ethan Marcotte, Responsive Web Design , la alistapart.com . Adus la 25 mai 2010 .
  7. ^ a b Alex Russell, Progresive aplicații web: scăparea filelor fără a ne pierde sufletul , la rareori.org . Adus la 15 iunie 2015 .
  8. ^ developer.google.com , https://developers.google.com/web/fundamentals/getting-started/your-first-progressive-web-app/?hl=en .
  9. ^ developer.google.com , https://developers.google.com/web/progressive-web-apps .
  10. ^ a b W3C „Web App Manifest”, Working Draft , recuperat la 12 septembrie 2016
  11. ^ Copie arhivată , pe addonsolutions.com . Adus la 11 decembrie 2016 (arhivat din original la 5 februarie 2017) .
  12. ^ infrequently.org , https://infrequently.org/2016/09/what-exactly-makes-something-a-progressive-web-app/ .

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT