PWA vs Flutter: o comparație detaliată
Publicat: 2020-07-10Cuprins
Cu toate complicațiile care au loc între aceste tehnologii, este de înțeles că la început s-ar putea găsi un pic confuz atunci când încercați să aflați diferența dintre cele două tehnologii — Progressive Web App și Flutter. La urma urmei, sună mult similar în teorie, deoarece ambele pot fi folosite pentru a oferi experiențe captivante pe toate dispozitivele, folosind o singură bază de cod.
În efortul de a le deosebi pe acestea două, astăzi vom face o scufundare profundă în aceste două tehnologii, de la modul în care funcționează până la utilizarea lor în viața reală. Să intrăm direct în asta:
O scurtă prezentare generală

Ce este PWA?
Pentru a spune simplu, Progressive Web Apps sunt site-uri web care arată și se simt ca o aplicație. Tehnologia este o combinație a celor mai bune funcții atât de pe web, cât și din aplicațiile native, ceea ce înseamnă că utilizatorii care folosesc PWA pot beneficia de toate funcțiile care anterior exclusiv aplicațiilor native, cum ar fi notificările push, localizarea geografică etc., toate păstrând în continuare. cele mai bune caracteristici de pe Web
Este o nouă tehnologie promițătoare; și combinat cu adoptarea în masă de la toți băieții mari, inclusiv Microsoft, cu recenta lor împingere a PWA pe Windows, puteți fi sigur că veți vedea doar mai mult de PWA de acum înainte.
Ce este Flutter?
Cunoscut pentru capacitatea sa de dezvoltare perfectă a pixelilor, Flutter este cel mai recent SDK (kit de dezvoltare software) open-source de la Google pentru a face treaba dacă doriți să creați aplicații mobile care au aspectul și senzația unei aplicații native, în timp ce sunteți în continuare. multiplatformă disponibilă. Aceasta înseamnă că aplicațiile Flutter sunt construite având în vedere o singură bază de cod, reducând astfel substanțial costurile de dezvoltare.
Acest lucru poate arăta foarte asemănător cu Progressive Web App, dar vă putem asigura că mecanismele de bază care fac posibile toate aceste experiențe de aplicație nativă sunt foarte diferite.
Intrând în specific
Limba
Progressive Web Apps, așa cum s-a menționat anterior, seamănă mai degrabă cu noul standard al web-ului și nu există o regulă strictă cu privire la limbajul de programare în care trebuie să fie codificată. Cu toate acestea, deoarece este încă o tehnologie de pe web, web- limbaje bazate pe JavaScript este încă fundamentală pentru dezvoltarea PWA.
Flutter, pe de altă parte, folosește limbajul de programare Dart . Dart este un limbaj de programare complet orientat pe obiecte și, deoarece are un stil de sintaxă bazat pe C, este ușor de învățat și de preluat dacă sunteți familiarizat cu stilul de sintaxă similar. Mai mult, Dart poate fi compilat în cod ARM și x86, iar cu versiunea mai nouă a Flutter, vă puteți aștepta chiar să îl puteți transpila în JavaScript, astfel încât codul dvs. Dart să poată rula eficient pe web.
Complexitate
Deoarece PWA se bazează pe JavaScript, care este un limbaj mai vechi și mai matur, vă puteți aștepta ca curba de învățare să fie mai îngăduitoare, deoarece există numeroase cadre și biblioteci JavaScript disponibile din care puteți alege. Flutter – fiind o limbă mult mai nouă – poate părea puțin mai complicat la prima vedere, deoarece totul, de la interfața de utilizare până la codul logic, poate apărea mai mult sau mai puțin amestecat în Flutter. Și din moment ce totul este practic un widget în Flutter , vă puteți găsi în situații în care ajungeți cu un „arboresc widget” neobișnuit de mare, profund și complex.
Performanţă
Când vine vorba de performanță, acești doi sunt unul cu celălalt și nu o potrivire unilaterală așa cum s-ar aștepta. În comparație cu o aplicație Flutter, un PWA obișnuit ar trebui să aibă un pic de performanță atunci când încearcă să „vorbească” direct cu codul nativ – deoarece PWA de multe ori trebuie să folosească o punte JavaScript pentru a obține acces la caracteristicile de bază ale dispozitivului. , de exemplu, GPS, cameră etc.
Cu toate acestea, când ne uităm la benchmark-uri, este clar că cadrele JavaScript, de exemplu, NodeJS , pot funcționa la egalitate, dacă nu chiar mai bine decât Dart (coloana vertebrală a aplicațiilor Flutter) de mai multe ori.

Acest lucru se datorează faptului că JavaScript poate valorifica mai bine natura multicore a procesoarelor moderne și poate distribui sarcinile de lucru mai uniform, în ciuda faptului că limbajul în sine este cu un singur thread. Odată cu modulul recent worker_threads
introdus de NodeJS, care permite utilizarea firelor de execuție pentru execuțiile paralele ale procesului JavaScript, JavaScript poate gestiona acum mai bine sarcinile de lucru care consumă mult CPU și poate învinge limbaje precum Dart.


Caracteristici
Fără îndoială, Flutter – un SDK creat special pentru dezvoltarea multiplatformă a aplicațiilor mobile – este mult mai caracteristic decât PWA, care este construit pe tehnologiile web. Aplicațiile Flutter au o integrare mai profundă cu sistemul și, prin urmare, pot folosi mai multe funcții native ale dispozitivului.
Mai mult, când vine vorba de experiența generală a utilizatorului, Flutter are mâna de sus aici, deoarece adoptă o filozofie perfectă a pixelilor, cu care utilizatorii atât de pe platformele iOS, cât și de pe Android pot experimenta aceeași experiență perfectă.
Acest lucru se datorează faptului că Flutter își redă propriile componente UI, spre deosebire de majoritatea celorlalte cadre care folosesc componente native ale platformei. În acest fel, aplicațiile Flutter sunt mult mai consistente pe toate dispozitivele, dar, în consecință, dimensiunea unei aplicații Flutter tipice este semnificativ mai mare decât o PWA obișnuită. Un simplu „Bună, lume!” Aplicația Flutter, de exemplu, poate avea o dimensiune mai mare de 7 MB, în timp ce un PWA cu același conținut nu depășește niciodată marcajul de 1 MB.
Cazuri de utilizare
Deci, când ar trebui să fie aleasă oricare dintre acestea? Ei bine, aici devine greu (așa a spus ea), deoarece ambele pot oferi experiențe de utilizator aproape identice pe diferite platforme și dispozitive diferite. Punctul cheie este ce punct forte al acestor tehnologii preferați mai mult - acoperire sau experiență de utilizator.
Bineînțeles, PWA se bazează pe tehnologia web, motiv pentru care poate ajunge la o gamă mai largă de public și poate fi chiar disponibilă în Microsoft Store, extinzând efectiv acoperirea la fiecare la întreaga bază de instalare Windows 10 de aproape 700 de milioane de utilizatori activi lunari.
O aplicație Flutter, pe de altă parte, și cu filozofia sa perfectă pentru pixeli, poate face experiența în aplicație mult mai captivantă, fiind în același timp o soluție rentabilă pentru companii, deoarece este necesară o singură bază de cod atât pentru Android, cât și pentru platforme iOS.
Exemple
Dintre aplicațiile PWA și Flutter pe care le-am adunat, acestea sunt cele mai proeminente despre care credem că le pot reprezenta cel mai bine capacitățile:
Flutter — The New York Times
Flutter și-a început noul capitol foarte recent la jumătatea anului 2019, deoarece potențialul său a fost validat cu noua versiune Flutter Web a jocului KENKEN al New York Times.

Pentru dezvoltatorii care au lucrat la realizarea versiunii web a aplicațiilor lor Flutter, aceasta este o veste grozavă, deoarece arată de ce este capabil cadrul Flutter atunci când este împins la maximum.
PWA—Twitter Lite
Se poate spune că Twitter Lite este cea mai de succes implementare PWA de până acum, deoarece face ceea ce face cel mai bine PWA - oferind experiențe captivante, asemănătoare aplicațiilor, pe toate dispozitivele. Utilizatorii care doresc să experimenteze Twitter PWA pot lansa aplicația pe fiecare dispozitiv la care se gândesc, fie că este pe desktop, mobil sau tabletă...
Iar distincția de bază a PWA cu cea mai bună performanță, în comparație cu aplicațiile Flutter de aceeași performanță, este că dimensiunea totală a PWA nu ar trebui să ocupe mai mult de 2 MB pe dispozitiv.

După ce și-a convertit site-ul într-un PWA, Twitter a văzut rezultate impresionante. Cifrele vorbesc de la sine:
- Scădere cu 20% a ratei de respingere,
- Creștere cu 65% a paginilor pe sesiune,
- Creștere cu 75% a tweet-urilor trimise.
Articol înrudit: 12 exemple de aplicații web progresive pentru inspirația ta
O PWA Flutter, este posibil?
Suportul web pentru Flutter este deja o discuție în curs și în stadiul beta. Procesul de a face Flutter-ul dvs. disponibil pe Web poate fi la fel de simplu ca compilarea Dart în JavaScript, în loc să îl compilați în codul mașinii ARM care este utilizat pentru aplicațiile mobile.
Există, totuși, unele complicații care fac toate acestea puțin mai greu de realizat; dar așa cum sa observat în jocul KENKEN de la New York Times de mai sus, este posibil să se realizeze o implementare web decentă a aplicațiilor Flutter, iar Flutter PWA va fi probabil un lucru în curând.
Concluzie
Având în vedere că ambele sunt tehnologii relativ noi, cu mult potențial, ar putea merita să explorați mai multe opțiuni și să vedeți singur care dintre ele este cea mai potrivită pentru nevoile dvs. de dezvoltare.
La SimiCart, suntem o agenție de dezvoltare PWA recunoscută de Google, gata să aducem experiența de cumpărături de nouă generație în magazinul dvs. Magento.
Citeste mai mult:
PWA vs Electron: A Deep Dive
Ce este un PWA? Tot ce trebuie să știți despre Progressive Web App
Magento PWA Studio vs Vue Storefront: care este pentru tine?