Coding by VISEO

Tribune d'Expert

2019, Flutter: j'y vais ou j'y vais pas?

Alors non, “Flutter” n’est pas un nouveau verbe de la langue de Molière… Mais c’est sûrement le truc dont vous avez déjà entendu parlé. Si ce n’est pas le cas, nous vous proposons de poursuivre la lecture de ce billet, et dans le cas contraire, de le lire quand même, parce qu’à ce stade, vous vous dîtes qu’il y a quand même “j'y vais pas” dans le titre…

Une tribune d'Eric, Practice Manager Web & Mobile VISEO.

Flutter (vt. 1er grp) : coder une interface utilisateur efficacement en 2019 (dictionnaire de la transcorporation Google)
 

Flutter a pris son temps pour mûrir, et avec la sortie fin 2018 de la v1.0, “production ready”, Google propose une énième façon de concevoir les interfaces. A première vue, Flutter s’inscrit parfaitement dans cette tradition cross-plateforme, à l’instar de React Native ou de l’écosystème Kotlin (encore en devenir, mais si plein de promesses…). Nous avons donc là une technologie qui permet d’adresser aussi bien le périmètre des applications mobiles, que celui du desktop et cela vient enfin d’être annoncé au Google I/O 19, celui du Web en technical preview.
 

                  

 

   Démo du projet Hummingbird (déclinaison de Flutter pour le Web), à voir : les animations à 18s

 

Nous pourrions être tenté de dire qu’il n’y là rien de bien nouveau, mais la différence est peut-être qu’avec Flutter, ce n’est pas que le cross-plateforme qui compte ! (1). Aussi, je vais essayer de vous brosser un petit topo de la situation suite ce premier semestre 2019.
 

Google est reparti d’un langage qui en son temps aurait dû supplanter javaScript… Dart. Après refonte et modernisation, c’est une toute nouvelle mouture estampillée v2.x qui accompagne Flutter. Elle est dans la logique des langages de cette fin de décennie et apporte son lot de réponses habituel: future, async, await, stream… Si vous avez une expérience en développement, java ou javaScript, la transition se fera aisément, si vous êtes fan de Kotlin, vous y trouverez peut-être quelques frustrations… c’est surtout une affaire de goût et d’usage. Dart est finalement, surtout très bien adapté pour le développement front-end avec Flutter (3).
 

Par “moderne” on entend désormais la nécessité d’un écosystème clair, performant et relativement complet : formatage du code, analyse syntaxique, gestionnaire de packages dédié, environnement de test et de débogage... Dart propose toute la suite nécessaire pour travailler efficacement, sans avoir à chercher à droite ou gauche le complément d’outil ou de librairie ; jusqu’à un “doctor” capable de vous aider à corriger votre environnement de développement ;)
 

Par “moderne” on entend aussi des comportements tels que le “Hot Reload” et là encore Flutter & Dart vont encore un cran plus loin avec le “Statefull Hot Reload ”, qui à l’usage apporte un tel confort, que ceux qui y goûtent en deviennent accrocs.
 

Dart permet aussi une compilation native selon la cible d’exécution. L’idée sur ce point n’est pas des plus originales, mais elle est tout simplement très efficace. Contrairement à React et encore plus à des solutions comme Cordova ou Electron, Dart produit pour la plateforme cible le code natif le plus efficace possible et permet de faire selon les besoins du projet, des bindings natifs (avec Swift ou avec Kotlin pour les environnements mobiles et certainement javaScript pour le Web); CQFD.
 

Du coup, on a la possibilité d’utiliser de vrais types et une vraie phase de compilation pour effectuer tout un ensemble de contrôles statiques sur le code :) et quand on vient de Cordova ou React ou plus généralement de la dimension javaScript, cela peut-être un changement moins anodin qu’il n’y parait.
 

On peut aussi aller se perdre dans le détail des querelles d’experts sur les langages… Je retiendrai surtout que j’ai été surpris pas le maintien de l’usage des null (pratique que de nombreux langages arrivent à rendre obsolète), inconvénient amoindri par quelques opérateurs judicieux (??, ??=, ?.) (4); mais je suis rassuré de voir que comme partout, on cherche le graal avec la mise en place des Types Algébriques.

 

Pour lire la suite de l'article, cliquez ici

Eric

Eric by VISEO
Practice Manager Web & Mobile
Paris

Natif ? cross-plateforme ? SPA ? PWA ? Web Performance ? Cloud ? Qualité des développements ? C'est autour de ces questionnements que j'accompagne nos clients dans l’élaboration de leurs dispositifs mobiles, du cadrage technique au delivery, de la conception au dimensionnement. Je les conseille dans leur transformation digitale, en y intégrant les innovations nécessaires, et répondre ainsi à leurs enjeux métiers de demain.