Hummingbird vs Angular Dart
Hummingbird è stato annunciato all’evento di lancio di flutter del 4 dicembre. Un progetto che ci permetterà di compilare le nostre applicazioni flutter in Progressive Web Apps complete. Quindi… Angular Dart vale ancora la pena?
Cercherò di condividere quanto ho raccolto finora, sperando che le mie scoperte aiutino anche gli altri.
La prima domanda è se possiamo effettivamente utilizzare o meno i due.
Angular Dart
La versione attuale di AngularDart è la 5.2.0. È stabile (lo è da qualche anno), usata nei progetti ad alto impatto di Google e in progetti in tutto il mondo.
Hummingbird
Alcuni direbbero che hummingbird è attualmente nella sua alpha. Tuttavia, tutto ciò che abbiamo è una panoramica tecnica. Più che altro una proposta in cui la squadra ha discusso a fondo le direzioni tecniche che stanno contemplando. (QUI: https://medium.com/flutter-io/hummingbird-building-flutter-for-the-web-e687c2a023a8)
Cosa fanno effettivamente?
Grazie per averlo chiesto! Cercheremo di capire cosa sono le Single Page Applications, cosa sono le Progressive Web Applications, e guarderemo i risultati attesi di Angular e Hummingbird. Questo ci aiuterà a capire i problemi che intendono risolvere.
SPAs vs PWAs
Single Page Applications
Un’applicazione a pagina singola (SPA) è un’applicazione web o un sito web che interagisce con l’utente riscrivendo dinamicamente la pagina corrente piuttosto che caricare intere nuove pagine da un server. – Wikipedia
Il carattere #
se incluso negli URL, invece di causare il ricaricamento della pagina, causerà qualche interazione all’interno della pagina. Le SPA fanno uso di questa caratteristica del browser.
Per esempio, in Wikipedia, se clicchiamo su un titolo nell’indice, invece di ricaricare la pagina, il browser ci porta a quella sezione della pagina.
- Vai a https://www.wikiwand.com/en/Single-page_application#/Ajax
- Cambia
Ajax
conWebsockets
e premi invio. - La pagina si ricarica? No. Cambierà semplicemente la configurazione
Le ASP stanno portando questo al livello successivo. L’intera applicazione e tutte le sue schermate funzionano da una singola pagina utilizzando gli URL basati su #
per tutte le loro funzionalità.
PWAs
Progressive Web Apps sono esperienze utente che hanno la portata del web, e sono affidabili, veloci e coinvolgenti
– developers.google.com
Le PWA sono siti web (possono essere normali siti web, o applicazioni a pagina singola) che sono ottimizzati in un certo modo che
- Funzionano in modo affidabile sia offline che con internet inaffidabile (Lie-Fi)
- Sono veloci, ottimizzati per alte prestazioni percepite
- Engaging – Sentirsi come un’applicazione nativa e non meno.
Cosa fa AngularDart?
AngularDart o Angular in generale è un framework per scrivere SPA. Fornisce agli sviluppatori un modo per scrivere le SPA con caratteristiche come:
- Bidirectional Data Binding
- Routing
- Templating
- Directives
E molto altro. L’attuale UI è ancora scritta con HTML + CSS. Angular fornisce semplicemente tutto il resto che permette agli sviluppatori web di sviluppare le loro SPA. Il punto principale è:
- Angular Dart non è un UI Framework
- Le applicazioni Angular Dart possono o non possono essere PWA
Cosa sono allora gli Angular Web Components?
Sono un mucchio di componenti material design forniti dal pacchetto angular_components
che agiscono come modelli per costruire applicazioni.
- Non sono supportati in Internet Explorer
- Sono ancora scritti in HTML + CSS + Dart
Cosa farà Hummingbird? Avrà lo scopo di convertire qualsiasi applicazione flutter in una PWA. Potrebbe essere o meno una SPA (molto probabilmente lo sarà). Eppure cercherà di fare tutto ciò che fa Flutter.
Con esso potremmo usare il Flutter UI Framework, usare tutte le caratteristiche dell’SDK Flutter come i widget di gestione dello stato e tutto il resto… e con un clic, produrre una PWA insieme alle applicazioni Android e iOS che abbiamo già!
Ci sono molte sfide lungo la strada, ma se Google si rende conto di questo, sarà il be all degli SDK.
Lo stato delle applicazioni All-Dart
Cerchiamo di capire la differenza tra le combinazioni Flutter + AngularDart e Flutter + Hummingbird se dovessimo scrivere un insieme di applicazioni all-dart set di applicazioni per il web e native.
IL PRESENTE: Flutter + Angular Dart
Per scrivere una tale applicazione avremo bisogno di:
- Scrivere un pacchetto core contenente tutta la logica di business, assicurandosi che non abbia dipendenze angular o flutter, e che tutte queste dipendenze gli vengano iniettate dall’esterno
- Scrivere la PWA Angular sottoscrivendo il core per tutte le funzionalità
* UI con HTML + CSS o componendo componenti angolari
* Routing, gestione dello stato con il modo di fare Angular - Scrivere un’applicazione Flutter sottoscrivendo lo stesso core per tutte le funzionalità
* UI con il flutter UI framework
* Routing, State Management ecc. con il modo di fare flutter - Compilare per iOS e Android dal progetto flutter
- Compilare per Web dal progetto Angular
La condivisione del codice riduce la quantità di lavoro?
Mentre la condivisione del codice riduce sicuramente la “quantità di codice”, nella mia esperienza non ha realmente ridotto la quantità di lavoro che deve essere fatto. Mi richiede di essere molto più riflessivo durante il processo.
Quali sono i benefici allora?
- Il codice è più pulito e l’architettura è migliore
- Sono costretto, ed è più facile per me mantenere la parità di funzionalità tra le piattaforme ora.
IL FUTURO: Flutter + Hummingbird
Per scrivere una tale applicazione dovremo:
- Scrivere un’applicazione flutter
* UI con il framework flutter
* Routing, State Management ecc. alla maniera flutte - Compilare su tre piattaforme diverse
- Fatto.
C’è meno lavoro?
Certo che sì!
Conclusione
Eccolo. Una ripartizione di ciò che sappiamo su flutter, angular dart, hummingbird e la condivisione del codice tra di loro.
Se stai sviluppando qualcosa in questo momento…
Vai per flutter + angular dart. Non è facile come il sogno del colibrì, ma è ancora il modo migliore per andare.
Il colibrì per ora è un sogno lontano. Un progetto che dovremmo sicuramente sperare di realizzare un giorno e sostenere con tutti i nostri sforzi, ma Dilli abhi door hai
(quel futuro è lontano).