Hummingbird vs Angular Dart

Hummingbird a fost anunțat la evenimentul de lansare Flutter din 4 decembrie. Un proiect care ne va permite să compilăm aplicațiile noastre flutter în Progressive Web Apps cu drepturi depline. Deci… mai merită Angular Dart?

Voi încerca să împărtășesc cât am adunat până acum, în speranța că descoperirile mele îi vor ajuta și pe alții.

:-p

Prima întrebare este dacă putem sau nu să le folosim efectiv pe cele două.

Angular Dart
Versiunea actuală a AngularDart este 5.2.0. Este stabilă(este de câțiva ani), folosită în proiectele de mare impact ale Google și în proiecte din întreaga lume.

Hummingbird
Cei care susțin că hummingbird se află în prezent în faza alfa. Cu toate acestea, tot ce avem este o prezentare tehnică. Mai mult o propunere decât orice altceva, în care echipa a discutat temeinic direcțiile tehnice pe care le are în vedere. (AICI: https://medium.com/flutter-io/hummingbird-building-flutter-for-the-web-e687c2a023a8)

nu există nimic de testat începând cu 5 ianuarie 2019

Ce fac ei de fapt?

Ce se face aici?

Ce bine că ai întrebat! Vom încerca să înțelegem ce sunt aplicațiile cu o singură pagină, ce sunt aplicațiile web progresive și să analizăm rezultatele așteptate de Angular și Hummingbird. Acest lucru ne va ajuta să înțelegem problemele pe care acestea intenționează să le rezolve.

SPAs vs PWAs

Single Page Applications

O aplicație cu o singură pagină (SPA) este o aplicație web sau un site web care interacționează cu utilizatorul prin rescrierea dinamică a paginii curente, mai degrabă decât prin încărcarea unor pagini noi întregi de pe un server. – Wikipedia

Caracterul #, atunci când este inclus în URL-uri, în loc să provoace reîncărcarea paginii, va provoca o anumită interacțiune în cadrul paginii. SPA-urile se folosesc de această caracteristică a browserului.

De exemplu, în Wikipedia, dacă dăm clic pe un titlu din index, în loc să se reîncarce pagina, browserul ne duce la acea secțiune a paginii.

  • Vă la https://www.wikiwand.com/en/Single-page_application#/Ajax
  • Schimbă Ajax în Websockets și apasă enter.
  • Se va reîncărca pagina? Nu. Se va schimba pur și simplu configurația

SPA-urile trec la nivelul următor. Întreaga aplicație și toate ecranele sale funcționează de pe o singură pagină, folosind URL-uri bazate pe # pentru toate funcționalitățile lor.

PWAs

Progressive Web Apps sunt experiențe de utilizator care au raza de acțiune a web-ului și sunt fiabile, rapide și captivante

– developers.google.com

PWA-urile sunt site-uri web (pot fi site-uri web obișnuite sau aplicații cu o singură pagină) care sunt optimizate într-un anumit mod, astfel încât să

  • Funcționeze în mod fiabil atât offline, cât și cu un internet nesigur (Lie-Fi)
  • Sunt rapide, optimizate pentru o performanță percepută ridicată
  • Încântătoare – Se simt ca o aplicație nativă și nu mai puțin.

Ce face AngularDart?
AngularDart sau Angular în general este un framework pentru scrierea SPA-urilor. Acesta oferă dezvoltatorilor o modalitate de a scrie SPA-uri cu caracteristici precum:

  • Bidirectional Data Binding
  • Routing
  • Templating
  • Directives

Și multe altele. UI-ul propriu-zis este în continuare scris cu HTML + CSS. Angular oferă pur și simplu tot ceea ce le permite dezvoltatorilor web să își dezvolte SPA-urile. Ideea principală este:

  • Angular Dart nu este un UI Framework
  • Aplicațiile Angular Dart pot sau nu pot fi PWA-uri

Ce sunt atunci Angular Web Components?
Sunt o grămadă de componente de design material furnizate de pachetul angular_components care acționează ca șabloane cu care se construiesc aplicații.

  • Nu sunt suportate în Internet Explorer
  • Ele sunt încă scrise în HTML + CSS + Dart

Ce va face Hummingbird?
Deocamdată sunt doar speculații. Va avea scopul de a transforma orice aplicație Flutter într-un PWA. Ar putea sau nu să fie un SPA(cel mai probabil va fi). Cu toate acestea, va încerca să facă tot ceea ce face flutter.

Cu el am putea folosi Flutter UI Framework, să folosim toate caracteristicile flutter SDK, cum ar fi widgeturile de gestionare a stării și toate celelalte… și, cu un singur clic, să producem un PWA alături de aplicațiile Android și iOS pe care le avem deja!

Există multe provocări pe parcurs, dar dacă Google realizează acest lucru, acesta va fi totul pentru SDK-uri.

Starea aplicațiilor All-Dart

Dash face furori în acest moment

Să încercăm să înțelegem diferența dintre combinațiile Flutter + AngularDart și Flutter + Hummingbird, dacă ar fi să scriem o aplicație All-Dart.dart un set de aplicații pentru web și native.

PREZENT: Flutter + Angular Dart
Pentru a scrie o astfel de aplicație vom avea nevoie de:

  • Scrieți un pachet de bază care să conțină toată logica de business, asigurându-vă că acesta nu are dependențe angular sau flutter, iar toate aceste dependențe îi sunt injectate din exterior
  • Scrieți PWA-ul Angular care se abonează la nucleu pentru toate funcționalitățile
    * UI cu HTML + CSS sau compunând componente angular
    * Routing, managementul stării cu modul de lucru Angular
  • Scrieți o aplicație Flutter care se abonează la același nucleu pentru toate funcționalitățile
    * UI cu cadrul Flutter UI
    * Routing, State Management etc. cu modul de lucru Flutter
  • Compilați pentru iOS și Android din proiectul Flutter
  • Compilați pentru Web din proiectul Angular

Reduce cantitatea de muncă partajarea codului?
În timp ce partajarea codului reduce cu siguranță „cantitatea de cod”, din experiența mea nu a redus cu adevărat cantitatea de muncă ce trebuie efectuată. Mă obligă să fiu mult mai atent pe parcursul procesului.

Care sunt beneficiile atunci?

  • Codul este mai curat și arhitectura este mai bună
  • Sunt obligat și îmi este mai ușor acum să mențin paritatea funcțiilor între platforme.

FUTURUL: Flutter + Hummingbird
Pentru a scrie o astfel de aplicație va trebui să:

  • Scrieți o aplicație Flutter
    * Interfața utilizator cu cadrul Flutter
    * Rutere, managementul stării etc. în modul Flutter
  • Compilați pe trei platforme diferite
  • Făcut.

Este mai puțin de lucru?
La naiba, da!

Concluzie

Verdictul suprem

Iată-l. O defalcare a ceea ce știm despre flutter, angular dart, hummingbird și partajarea codului unul cu celălalt.

Dacă dezvoltați ceva chiar acum…
Dați-i drumul la flutter + angular dart. Nu este la fel de ușor ca visul hummingbird, dar totuși este cea mai bună cale de urmat.

Hummingbird deocamdată este un vis îndepărtat. Un proiect pe care cu siguranță ar trebui să sperăm că se va realiza cândva și să îl susținem cu toate eforturile noastre, dar Dilli abhi door hai (acel viitor este îndepărtat).