Hummingbird vs Angular Dart

Hummingbird werd aangekondigd op het 4 dec flutter launch event. Een project dat ons in staat zal stellen om onze flutter applicaties te compileren in volwaardige Progressive Web Apps. Dus… is Angular Dart nog steeds de moeite waard?

Ik zal proberen te delen hoeveel ik tot nu toe heb verzameld, in de hoop dat mijn bevindingen anderen ook helpen.

:-p

De eerste vraag is of we de twee daadwerkelijk kunnen gebruiken of niet.

Angular Dart
De huidige versie van AngularDart is 5.2.0. Het is stabiel (al een paar jaar), wordt gebruikt in projecten van Google met een grote impact, en in projecten over de hele wereld.

Hummingbird
Sommigen beweren dat Hummingbird zich momenteel in de alfa-fase bevindt. We hebben echter alleen een technisch overzicht. Meer een voorstel dan iets anders waarin het team de technische richtingen die het overweegt, grondig heeft besproken. (HIER: https://medium.com/flutter-io/hummingbird-building-flutter-for-the-web-e687c2a023a8)

er valt vanaf 5 jan 2019 nog niets te testen

Wat doen ze eigenlijk?

wat doen jullie hier?

Gelukkig dat u het vraagt! We zullen proberen te begrijpen wat Single Page Applications zijn, wat Progressive Web Applications zijn, en kijken naar de verwachte output van Angular en Hummingbird. Dit zal ons helpen de problemen te begrijpen die ze willen oplossen.

SPA’s vs PWA’s

Single Page Applications

Een single-page applicatie (SPA) is een webapplicatie of website die interactie heeft met de gebruiker door de huidige pagina dynamisch te herschrijven in plaats van hele nieuwe pagina’s van een server te laden. – Wikipedia

Het teken # wanneer het in URL’s wordt opgenomen, zal in plaats van de pagina opnieuw te laden, enige interactie binnen de pagina veroorzaken. SPA’s maken gebruik van deze browser-feature.

Bijv. Wikipedia, als we op een kop in de index klikken, in plaats van de pagina te herladen, brengt de browser ons naar dat deel van de pagina.

  • Ga naar https://www.wikiwand.com/en/Single-page_application#/Ajax
  • Wijzig Ajax in Websockets en druk op enter.
  • Wordt de pagina herladen? Nee. Het zal gewoon van configuratie veranderen

SPAs nemen dit naar het volgende niveau. De hele applicatie en al haar schermen werken vanaf een enkele pagina met behulp van de #-gebaseerde URL’s voor al hun functionaliteiten.

PWA’s

Progressive Web Apps zijn gebruikerservaringen die het bereik van het web hebben, en betrouwbaar, snel en boeiend zijn

– developers.google.com

PWA’s zijn websites (kunnen gewone websites zijn, of apps met één pagina) die op een bepaalde manier zijn geoptimaliseerd dat ze

  • Betrouwbaar werken, zowel offline als met onbetrouwbaar internet (Lie-Fi)
  • Snel zijn, geoptimaliseerd voor hoge waargenomen prestaties
  • Engaging – Voelen als een native applicatie en niet minder.

Wat doet AngularDart?
AngularDart of Angular in het algemeen is een raamwerk voor het schrijven van SPA’s. Het biedt ontwikkelaars een manier om SPA’s te schrijven met functies zoals:

  • Bidirectional Data Binding
  • Routing
  • Templating
  • Directives

En nog veel meer. De eigenlijke UI wordt nog steeds geschreven met HTML + CSS. Angular biedt alleen al het andere dat webontwikkelaars in staat stelt om hun SPAs te ontwikkelen. Het belangrijkste punt is:

  • Angular Dart is geen UI Framework
  • Angular Dart apps kunnen wel of niet PWA’s zijn

Wat zijn Angular Web Components dan?
Het zijn een stel material design componenten die door het angular_components pakket worden geleverd en die fungeren als sjablonen om applicaties mee te bouwen.

  • Ze worden niet ondersteund in Internet Explorer
  • Ze zijn nog steeds geschreven in HTML + CSS + Dart

Wat zal Hummingbird doen?
Tot nu toe zijn het slechts speculaties. Het zal gericht zijn op het omzetten van elke flutter applicatie in een PWA. Het kan wel of niet een SPA zijn (hoogstwaarschijnlijk wel). Maar het zal proberen om alles te doen wat flutter doet.

Met het kunnen we het Flutter UI Framework gebruiken, alle Flutter SDK functies zoals state management widgets en alles … en met een klik, produceren een PWA naast de Android en iOS apps die we al hebben!

Er zijn veel uitdagingen langs de weg, maar als Google dit realiseert, zal het de al van SDK’s zijn.

De staat van All-Dart Apps

Dash is rocking it right now

Laten we proberen het verschil te begrijpen tussen Flutter + AngularDart en Flutter + Hummingbird combinaties als we een all-dart-reeks applicaties voor web en native.

HET HEDEN: Flutter + Angular Dart
Voor het schrijven van zo’n applicatie zullen we moeten:

  • Een core pakket schrijven dat alle business logica bevat en ervoor zorgt dat het geen angular of flutter afhankelijkheden heeft, en al die afhankelijkheden worden er van buitenaf in geïnjecteerd
  • De Angular PWA schrijven die zich abonneert op de core voor alle functionaliteiten
    * UI met HTML + CSS of het samenstellen van angular componenten
    * Routing, state management met de Angular manier van doen
  • Schrijf een Flutter Applicatie die zich abonneert op dezelfde core voor alle functionaliteiten
    * UI met het Flutter UI framework
    * Routing, State Management etc met de Flutter manier van doen
  • Compileer naar iOS en Android vanuit het Flutter project
  • Compileer naar Web vanuit het Angular project

Vermindert het delen van code de hoeveelheid werk?
Hoewel het delen van code zeker de “hoeveelheid code” vermindert, heeft het in mijn ervaring niet echt de hoeveelheid werk verminderd die gedaan moet worden. Het vereist dat ik veel meer doordacht te werk ga.

Wat zijn dan de voordelen?

  • Code is schoner en de architectuur is beter
  • Ik ben gedwongen, en het is nu makkelijker voor mij om feature parity te behouden op verschillende platforms.

DE TOEKOMST: Flutter + Hummingbird
Voor het schrijven van zo’n applicatie zullen we moeten:

  • Een flutter applicatie schrijven
    * UI met het flutter framework
    * Routing, State Management etc op de flutte manier
  • Compileren op drie verschillende platformen
  • Gedaan.

Is het minder werk?
Hell yeah!

Conclusie

het opperste oordeel

Daar is het. Een uitsplitsing van wat we weten over flutter, angular dart, hummingbird en het delen van code met elkaar.

Als je nu iets aan het ontwikkelen bent…
Ga voor flutter + angular dart. Het is niet zo eenvoudig als de Hummingbird droom, maar nog steeds de beste manier om te gaan.

Hummingbird vanaf nu is een verre droom. Een project waarvan we zeker moeten hopen dat het ooit tot bloei komt en dat we het met al onze inspanningen steunen, maar Dilli abhi door hai (die toekomst is ver weg).