Hummingbird vs Angular Dart

Hummingbird a été annoncé lors de l’événement de lancement de flutter du 4 décembre. Un projet qui nous permettra de compiler nos applications flutter en Progressive Web Apps à part entière. Alors… Angular Dart en vaut-il encore la peine ?

J’essaierai de partager tout ce que j’ai rassemblé jusqu’à présent, en espérant que mes conclusions aident également les autres.

:-p

La première question est de savoir si nous pouvons réellement utiliser les deux.

Angular Dart
La version actuelle d’AngularDart est 5.2.0. Elle est stable(l’est depuis quelques années maintenant), utilisée dans les projets à fort impact de Google, et dans des projets à travers le monde.

Hummingbird
Certains prétendront que hummingbird est actuellement dans son alpha. Cependant, tout ce que nous avons est un aperçu technique. Plus une proposition qu’autre chose où l’équipe a discuté en profondeur des orientations techniques qu’elle envisage. (ICI : https://medium.com/flutter-io/hummingbird-building-flutter-for-the-web-e687c2a023a8)

il n’y a rien à tester au 5 janvier 2019

Que font-ils réellement ?

Que faites-vous ici ?

Grâce à votre question ! Nous allons essayer de comprendre ce que sont les applications à page unique, ce que sont les applications Web progressives, et regarder les résultats attendus d’Angular et Hummingbird. Cela nous aidera à comprendre les problèmes qu’ils ont l’intention de résoudre.

SPAs vs PWAs

Applications à page unique

Une application à page unique (SPA) est une application web ou un site web qui interagit avec l’utilisateur en réécrivant dynamiquement la page actuelle plutôt que de charger de nouvelles pages entières depuis un serveur. – Wikipedia

Le caractère # lorsqu’il est inclus dans les URL, au lieu de provoquer le rechargement de la page, provoquera une certaine interaction au sein de la page. Les SPA utilisent cette fonctionnalité du navigateur.

Par exemple, dans Wikipédia, si on clique sur un titre dans l’index, au lieu que la page se recharge, le navigateur nous amène à cette section de la page.

  • Voir https://www.wikiwand.com/en/Single-page_application#/Ajax
  • Changer Ajax en Websockets et appuyer sur entrée.
  • La page se rechargera-t-elle ? Non. Elle changera simplement de configuration

Les APS passent au niveau supérieur. L’ensemble de l’application et tous ses écrans fonctionnent à partir d’une seule page en utilisant les URL basées sur # pour toutes leurs fonctionnalités.

PWAs

Les applications Web progressives sont des expériences utilisateur qui ont la portée du web, et qui sont fiables, rapides et engageantes

– developers.google.com

Les PWA sont des sites web (peuvent être des sites web ordinaires, ou des applications à page unique) qui sont optimisés d’une certaine manière pour qu’ils

  • Fonctionnent de manière fiable à la fois hors ligne et avec un internet non fiable (Lie-Fi)
  • Sont rapides, optimisés pour une performance perçue élevée
  • Engageants – Ressentez comme une application native et pas moins.

Que fait AngularDart ?
AngularDart ou Angular en général est un framework pour écrire des SPAs. Il fournit aux développeurs un moyen d’écrire les SPA avec des fonctionnalités comme :

  • Binding de données bidirectionnel
  • Routing
  • Templating
  • Directives

Et bien plus encore. L’interface utilisateur proprement dite est toujours écrite en HTML + CSS. Angular fournit simplement tout le reste qui permet aux développeurs web de développer leurs SPAs. Le point principal est :

  • Angular Dart n’est pas un Framework UI
  • Les apps Angular Dart peuvent ou non être des PWA

Que sont alors les composants Web Angular ?
Ils sont un tas de composants de conception matérielle fournis par le package angular_components qui agissent comme des modèles pour construire des applications avec.

  • Ils ne sont pas supportés dans Internet Explorer
  • Ils sont toujours écrits en HTML + CSS + Dart

Que fera Hummingbird ?
Pour l’instant, ce ne sont que des spéculations. Il aura pour objectif de convertir n’importe quelle application flutter en une PWA. Il pourrait ou non être un SPA(il le sera très probablement). Pourtant, il essaiera de faire tout ce que fait flutter.

Avec lui, nous pourrions utiliser le Flutter UI Framework, utiliser toutes les fonctionnalités du SDK de flutter comme les widgets de gestion d’état et tout… et en un clic, produire une PWA aux côtés des applications Android et iOS que nous avons déjà !

Il y a de nombreux défis sur le chemin mais si Google le réalise, ce sera le be all des SDK.

L’état des applications tout-Dart

Dash déchire en ce moment

Essayons de comprendre la différence entre les combinaisons Flutter + AngularDart et Flutter + Hummingbird si nous devions écrire un ensemble d’applications tout-.dart ensemble d’applications pour le web et le natif.

LE PRÉSENT : Flutter + Angular Dart
Pour écrire une telle application, nous aurons besoin de :

  • Écrire un package de base contenant toute la logique métier, en s’assurant qu’il n’a pas de dépendances angular ou flutter, et que toutes ces dépendances lui sont injectées de l’extérieur
  • Écrire la PWA Angular s’abonnant au noyau pour toutes les fonctionnalités
    * UI avec HTML + CSS ou en composant des composants angular
    * Routage, gestion d’état avec la manière Angular de faire les choses
  • Écrire une application Flutter souscrivant au même noyau pour toutes les fonctionnalités
    * UI avec le framework UI flutter
    * Routage, gestion d’état etc. avec la manière flutter de faire les choses
  • Compiler vers iOS et Android à partir du projet flutter
  • Compiler vers le Web à partir du projet Angular

Le partage du code réduit-il la quantité de travail ?
Bien que le partage de code réduise définitivement la « quantité de code », dans mon expérience, il n’a pas vraiment réduit la quantité de travail qui doit être faite. Cela m’oblige à être beaucoup plus réfléchi tout au long du processus.

Quels sont alors les avantages ?

  • Le code est plus propre et l’architecture est meilleure
  • Je suis obligé, et il est plus facile pour moi de maintenir la parité des fonctionnalités entre les plateformes maintenant.

L’AVENIR : Flutter + Hummingbird
Pour écrire une telle application, nous devrons :

  • Écrire une application flutter
    * UI avec le framework flutter
    * Routage, gestion d’état etc à la manière flutte
  • Compiler sur trois plateformes différentes
  • Fait.

C’est moins de travail ?
Bien sûr que oui!

Conclusion

le verdict suprême

Le voilà. Une ventilation de ce que nous savons sur flutter, angular dart, hummingbird et le partage de code les uns avec les autres.

Si vous développez quelque chose en ce moment…
Optez pour flutter + angular dart. Ce n’est pas aussi facile que le rêve de hummingbird, mais c’est encore la meilleure façon d’aller.

Hummingbird à partir de maintenant est un rêve lointain. Un projet que nous devrions certainement espérer voir se concrétiser un jour et soutenir de tous nos efforts, mais Dilli abhi door hai (cet avenir est lointain).