Developpez.com

Le Club des Développeurs et IT Pro

Un développeur donne des raisons qui peuvent justifier l'utilisation de Flutter

Le framework de Google pour créer des apps natives iOS et Android

Le 2017-06-24 23:50:47, par Stéphane le calme, Chroniqueur Actualités
Il y a deux ans, Google a annoncé Flutter, un projet open source que ses ingénieurs ont présenté dans une FAQ dédiée comme « un moyen facile et productif pour créer et déployer des applications mobiles multiplateformes de haute performance, à la fois sur Android et iOS ». Google a récemment annoncé son nouveau framework permet de créer des applications mobiles natives qui fonctionnent sur Android, iOS et le nouveau système d'exploitation Fuchsia de Google.

David Ford, un développeur logiciel, s’est laissé aller à énoncer quelques raisons qui, selon lui, sont très intéressantes à propos de ce framework :
  1. Son architecture est presque similaire à celle de React, un point positif pour ceux qui, comme David, aiment React ;
  2. Flutter est basé sur Dart, un langage de programmation moderne (développé par Google) qui est très facile à apprendre si vous connaissez déjà Java ou JavaScript. Dart a une vérification facultative du type statique. Dart peut également se compiler sur JavaScript. En fait, Dart a d'abord été conçu comme un langage de compilation JavaScript. Et il y a une machine virtuelle Dart. Vous pouvez donc utiliser Dart pour les applications côté serveur et les utilitaires de ligne de commande (tout comme Node). Et, bien sûr, Dart peut être compilé pour fonctionner sur les téléphones mobiles. Cela met Dart en concurrence avec d'autres langages « full stack » de seconde génération comme Kotlin ;
  3. Qu'est-ce que Polymer, GWT et Adobe Flex ont en commun et dont React ne dispose pas ? Une bibliothèque de widgets UI intégrée. Ceci, pour David, est l’une des grosses faiblesses de React. Raison pour laquelle il estime que si vous avez déjà travaillé avec un framework comme Flex, vous saurez apprécier le fait qu’il soit livré avec un ensemble de composants de haute qualité ;
  4. L'approche de Flutter à l'IU multiplateforme est unique. David assure que Flutter n'est pas comme Cordova ou PhoneGap qui sont essentiellement des applications JavaScript/HTML/CSS déguisées en applications natives mobiles. Les applications Cordova et PhoneGap s'exécutent dans un navigateur mobile enveloppé dans un composant natif (une vue web). Ceux-ci sont lancés comme des applications natives, mais au fond sont des applications Web. Ils n'utilisent pas de widgets mobiles. Au lieu de cela, ils utilisent les éléments Web familiers (<input>, <select>, etc.) pour créer l'interface utilisateur.
    Flutter n'est pas non plus comme React Native (ou NativeScript). React Native utilise les widgets natifs. Cela signifie que vous devez créer des applications distinctes pour Android et iOS. Cela signifie également que l'application ressemble et se comporte plus nativement que, par exemple, une application qui est passée par Cordova ou PhoneGap.
    David avance que Flutter réinvente sa propre bibliothèque de composants UI de zéro. Ces composants sont dessinés à l'aide des primitives graphiques de bas niveau des plateformes. Ainsi, les composants UI de Flutter ne sont pas des éléments HTML ni des widgets Android/iOS natifs. Ce sont des widgets Flutter. Ils ont un look-and-feel enfichable. Ils peuvent donc ressembler à des widgets natifs iOS ou à des widgets natifs Android. C'est essentiellement la même approche que JavaSwing ;
  5. Il n'existe pas de DSL UI externes (c'est-à-dire des fichiers HTML ou XML). Toute l'interface utilisateur est écrite en Dart. Ceci, pour David, est une grande victoire. Il avoue avoir une opinion étrange selon laquelle les DSL externes sont la racine de tout le mal. Ils réduisent considérablement la quantité d'aide qu'un vérificateur de type statique (ou IDE) peut vous fournir. Ils éliminent la refactorisation et la réutilisation du code. C'est l'une des raisons pour lesquelles il aime React.
    Avec Flutter, les UI sont codées dans le même langage que le reste de l'application : Dart. En outre, il n'y a pas d'équivalent JSX dans Flutter. Donc, quand il dit que Flutter est comme React, ce qu’il veut dire, c'est que Flutter est comme React sans JSX. Pour lui, le code privé de JSX est assez indigeste dans la combinaison React/JavaScript, mais plutôt élégant dans la combinaison Flutter/Dart ;
  6. Enfin, Flutter dispose d’un support de première classe pour son IDE préféré (JetBrains).

Source : Code Burst

Et vous ?

Avez-vous déjà utilisé Flutter ? Qu'en pensez-vous ?
Quels sont les points que vous préférez ?
Quels sont ceux qui vous intéressent le moins ?
  Discussion forum
36 commentaires
  • Kriskev
    Membre à l'essai
    Je ne comprend pas la stratégie de google. L'an dernier, c’était les louanges de Kotlin vu leur partenariat avec JetBrain pour le dev mobile, maintenant on parle de Flutter.

    Finalement on est censé utiliser quoi Java, Kotlin, Flutter(Dart) ? Ça commence à faire beaucoup.
  • youtpout978
    Expert confirmé
    Envoyé par yoshi_120
    Il me semble que le Flutter utilise le Android Studio et dépend toujours de la purge Java. Bref le développement mobile reste un purgatoire.
    Tu as mal lu alors le langage utilisé est Dart, Android Studio c'est juste un IDE, comme Eclipse/Visual studio ... où tu peux développer sur plusieurs langage différent.
  • VirgApps
    Membre averti
    Envoyé par pierre.E
    euh
    android studio java kotlin reactnative et maintenant Flutter
    on a du mal à suivre
    Android Studio n'est ni un langage,ni un framework mais un IDE
  • moueza
    Membre régulier
    Reste à voir Flutter vs Titanium !??
  • redcurve
    Membre extrêmement actif
    Mouais bof les trucs google je préfère éviter, et puis la seconde version sera complètement incompatible avec lol
  • doug92
    Candidat au Club
    je pense bien que ''Flutter'' auras une places!!!!
  • codec_abc
    Membre confirmé
    Je trouve que c'est un peu irresponsable de la part de Google de recommander l'utilisation en production d'une techno encore en béta auprès des développeurs. Surtout que c'est pas juste un upgrade de version c'est une nouvelle techno. Ça veut dire que pour la plupart ceux qui vont l'utiliser partent de 0. Et partir avec une techno qui n'a jamais passé la 1.0 stable il faut oser quand même.
  • alves1993
    Membre éclairé
    Envoyé par codec_abc
    Je trouve que c'est un peu irresponsable de la part de Google de recommander l'utilisation en production d'une techno encore en béta auprès des développeurs. Surtout que c'est pas juste un upgrade de version c'est une nouvelle techno. Ça veut dire que pour la plupart ceux qui vont l'utiliser partent de 0. Et partir avec une techno qui n'a jamais passé la 1.0 stable il faut oser quand même.
    Google a utilisé Flutter pour l'application mobile Google Ad Words.
    Je pense que si Google dit que Flutter peut être utilisé en production alors ça peut vraiment être utilisé en production. Le risque vient dans la nature du projet dans lequel Flutter sera utilisé.
    Google est dans une optique d'adoption du langage Dart chez les développeurs, elle n'a pas donc intérêt a dit des mensonges qui seront tôt ou tard découverts.
  • codec_abc
    Membre confirmé
    Flutter est cross-platform la ou Kotlin génère du bytecode (il y a bien du Kotlin native mais on a pas encore la 1.0). Donc, si tu fais uniquement du Android, partir sur Kotlin me semble mieux car c'est fait par Jetbrain qui contrairement à Google n'abandonne pas ses projets dès qu'il n'y voit plus d’intérêt.
  • tails
    Membre chevronné
    J'ai trouvé le concept très interessant :
    • le framework s'intègre parfaitement à Android Studio (je n'ai pas de mac pourtester sous XCode et IOS)
    • la rapidité de la mise à jour du code sur l'émulateur/le périphérique de test : un peu comme les instant run d'Android mais en plus efficace
    • le langage Dart ne m'a pas semblé difficile à appréhender


    En revanche, les points suivants m'ont un peu plus g&#7871;né :
    • le système de composants StateFull et StateLess nécessite de repenser sa façon de coder les composants, et j'ai eu un peu de mal à m'y faire
    • les bibliothèques Dart ne sont pas très nombreuses pour certains domaines (je parle aussi bien de Google que de la communauté) : par exemple pour les échecs. De plus certaines librairies sont plus difficiles à utiliser sous Dart : notamment ANTLR, qui n'a pas de version 4 sous Dart. Quelqu'un y a pensé, mais n'a pas été au bout ...


    Ce qui fait qu'au final, je lui préfère toujours
    • soit React Native
    • soit le développement natif (Android + Kotlin)