Google lance Flutter 1.2, son SDK open source de développement d'apps mobiles iOS et Android,
Et Dart DevTools, une suite d'outils de programmation

Le , par Stéphane le calme

526PARTAGES

13  0 
Lancé en 2015, Flutter est l'un des plus récents ajouts à l'arsenal des développeurs d'applications. C’est un SDK open source de développement d'applications mobiles développé par Google. Les applications Flutter sont écrites dans le langage Dart et exploitent bon nombre des fonctionnalités plus avancées du langage.

Si Google a opté pour Dart, c’est parce qu’il offre deux modes de fonctionnement. Le premier, nommé AOT (pour Ahead Of Time), permet de générer une application native pour chaque plateforme. Le code sera optimisé directement pour l’architecture sur laquelle il fonctionnera.

Le deuxième mode de fonctionnement est dit JIT (Just-In-Time) et offre la fonctionnalité de Hot Reload lors des développements. L’idée du Hot Reload avec Flutter est de corriger le problème du temps nécessaire entre chaque build en ne mettant plus que quelques millisecondes (voire secondes dans le pire des cas) entre chaque modification. Le développement de son application est alors bien plus rapide.

Outre ces deux modes, Dart est aussi très performant pour gérer l’allocation et le “garbage collector”, c’est-à-dire l’élimination des objets en mémoire qui ne sont plus utilisés.

La première version stable de la boîte à outils de développement multiplate-forme a été publiée il y a à peine trois mois. Il y a quelques heures, Google a annoncé la première fonctionnalité mise à jour pour Flutter, Flutter 1.2, au Mobile World Congress, ainsi qu'une nouvelle suite d'outils de programmation Web appelée Dart DevTools.

L'un des plus gros avantages de Flutter par rapport à ses alternatives est la communauté de développement. Flutter est open source pour que vous puissiez voir comment il est construit et faire des suggestions pour contribuer à son développement. Google travaille constamment à améliorer la stabilité et les performances du framework, tout en ajoutant quelques outils de développement intéressants.


Flutter 1.2

Citation Envoyé par Equipe Flutter
Flutter 1.2 est la première mise à jour de fonctionnalité pour Flutter. Sur cette version, nous nous sommes concentrés sur quelques domaines principaux :
  • Amélioration de la stabilité, des performances et de la qualité du framework de base.
  • Travaillez pour améliorer la finition visuelle et la fonctionnalité des widgets existants.
  • Nouvel outil Web pour les développeurs qui construisent des applications Flutter.

Après avoir livré Flutter 1.0, au cours des deux derniers mois, nous avons consacré beaucoup d’énergie à l’amélioration de notre infrastructure de tests et de codes, nous attelant à parcourir tous les pull request, ainsi qu’à l’amélioration des performances et de la qualité générale du framework. Nous avons une liste complète de ces demandes dans le wiki Flutter pour ceux qui sont intéressés par les détails. Ce travail incluait également un soutien plus large pour les nouvelles langues d'interface utilisateur telles que le swahili.

Nous continuons à améliorer les ensembles de widgets Material et Cupertino afin de prendre en charge une utilisation plus flexible de Material et de continuer à rechercher une fidélité au pixel près sur iOS. Ce dernier travail inclut la prise en charge de l’édition de texte par curseur flottant, ainsi que l’attention soutenue portée aux détails mineurs (par exemple, nous avons mis à jour la manière dont le curseur d’édition de texte peint sur iOS pour une représentation fidèle de l’animation et de l’ordre de peinture). Nous avons également pris en charge un ensemble plus large de fonctions d’animation inspirées du travail de Robert Penner. Et nous avons ajouté la prise en charge de nouveaux événements de clavier et la prise en charge du survol de la souris, en vue d’une prise en charge plus approfondie des systèmes d’exploitation de bureau.

L’équipe de plug-ins a également été très occupée dans Flutter 1.2, travaillant à l’amélioration de la prise en charge des achats intégrés, ainsi que de nombreuses corrections de bogues pour le lecteur vidéo, la visualisation Web et les cartes. Et grâce à un pull request d’un développeur d'Intuit, nous bénéficions désormais de la prise en charge d'Android App Bundles, un nouveau format de package permettant de réduire la taille des applications et d'activer de nouvelles fonctionnalités telles que la livraison dynamique pour les applications Android.

Enfin, Flutter 1.2 inclut le SDK Dart 2.2, une mise à jour qui améliore considérablement les performances du code compilé, ainsi que la prise en charge d’un nouveau langage pour l’initialisation des ensembles.
Nouveaux outils pour les développeurs Flutter

Les développeurs mobiles viennent d'horizons divers et préfèrent souvent des outils de programmation et des éditeurs différents. Flutter lui-même prend en charge différents outils, notamment une prise en charge de premier ordre d'Android Studio et de Visual Studio Code, ainsi que la création d'applications à partir de la ligne de commande. L’équipe savait donc que le framework avait besoin de flexibilité dans la manière d’exposer les outils de débogage et d'inspection du runtime.

En plus de Flutter 1.2, l’équipe a lancé une préversion d’une nouvelle suite d’outils de programmation Web pour aider les développeurs Flutter à déboguer et à analyser leurs applications. Ces outils sont désormais disponibles pour une installation aux côtés des extensions pour Visual Studio Code et Android Studio, et offrent un certain nombre de fonctionnalités :
  • Un inspecteur de widgets, qui permet la visualisation et l'exploration de la hiérarchie de l'arborescence utilisée par Flutter pour le rendu.
  • Une vue chronologique qui vous aide à diagnostiquer votre application au niveau image par image, en identifiant le travail de rendu et de calcul susceptible de provoquer une "anarchie" de vos applications.
  • Un débogueur de niveau source complet qui vous permet de parcourir du code, de définir des points d'arrêt et d'analyser la pile d'appels.
  • Une vue de journalisation indiquant l'activité que vous enregistrez depuis votre application, ainsi que les événements liés au réseau, à l'infrastructure et à la récupération de place.



Dart 2.2

Les développeurs de Flutter et Dart seront heureux de savoir que Dart 2.2 est également disponible. Les développeurs de Flutter devraient noter que Dart 2.2 améliore de 15 à 20% les performances. De plus, le langage a acquis la capacité d'écrire des littéraux Set en utilisant des accolades {}, similaires à Python et à d'autres langages. Cela permet de créer un ensemble en tant que constante.

Dart 2.2 est disponible au téléchargement dès maintenant et est également intégré à la version actuelle de Flutter 1.2. Vous pouvez également jouer utiliser Dart 2.2 maintenant dans l'application Web officielle DartPad.

Pourquoi utiliser Flutter ?

En 2017, 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.
  5. 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.
  6. 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 ;
  7. 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.
  8. 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 ;
  9. Enfin, Flutter dispose d’un support de première classe pour son IDE préféré (JetBrains).

Source : Google

Et vous ?

Avez-vous déjà utilisé Flutter ? Qu'en pensez-vous ?
En général vous servez-vous d'une boîte à outils multi-plateformes pour vos développements mobiles ? Lesquelles avez-vous déjà essayé ?

Voir aussi :

Flutter va bientôt permettre d'écrire de véritables applications multiplateformes y compris pour le desktop et pourrait rivaliser avec Electron
Google publie la Preview finale de Flutter, son SDK mobile Android et iOS, la dernière étape majeure avant la publication de la version stable 1.0
Flutter, le SDK mobile pour Android et iOS sort de la phase bêta, Google annonce la Release Preview 1, une étape importante avant la version 1.0

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de VirgApps
Membre averti https://www.developpez.com
Le 12/04/2019 à 11:07
Citation Envoyé par pierre.E Voir le message
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
1  0 
Avatar de Folgore
Membre du Club https://www.developpez.com
Le 27/02/2019 à 14:16
Le framework est une fusée (avec son live reload performant etc) mais je prefere rester sous xamarin ou react native car pour moi pas possible de faire de l'ihm par code (aucun moyen de faire des vues par balisage et binding des données un peu a la xaml ou tout simplement comme react /angular).
0  0 
Avatar de xarkam
Membre confirmé https://www.developpez.com
Le 27/02/2019 à 16:00
Citation Envoyé par Folgore Voir le message
Le framework est une fusée (avec son live reload performant etc) mais je prefere rester sous xamarin ou react native car pour moi pas possible de faire de l'ihm par code (aucun moyen de faire des vues par balisage et binding des données un peu a la xaml ou tout simplement comme react /angular).
Ben avant l'ère des visual machins choses, on codais les ihm par code.
Ici rien de bien compliqué pour faire des ihm, une fois compris la mécanique de layout.

Puisque tu parle de React, cet article peu t'intéresser: https://blog.geekyants.com/we-rebuil...r-4160f0499a82
(le code flutter n'est pas à jour car le déclaratif new n'est plus obligatoire)

Et une longue analyse: https://medium.com/asos-techblog/flu...t-c41b4e038db9
0  0 
Avatar de NBoulfroy
Membre confirmé https://www.developpez.com
Le 28/02/2019 à 12:23
C'est intéressant mais l’abondance des technologies commence à être un peu trop élevées pour le développements d'applications mobiles.

Selon certains benchmarks, Xamarin a toujours le monopole de l'optimisation pour chaque plateforme donc je ne sais pas trop ...
0  0 
Avatar de pierre.E
Membre actif https://www.developpez.com
Le 08/03/2019 à 8:21
euh
android studio java kotlin reactnative et maintenant Flutter
on a du mal à suivre
0  0 
Avatar de nhugodot
Membre régulier https://www.developpez.com
Le 08/03/2019 à 8:28
Pour des apps de jeux, Flutter n'étant pas en 3D, on préférera Unity.
Pour des apps en 2D comme Google Map, pourquoi pas Flutter, le plus rapide (120fps)
Mais pour la très grande majorité des apps, texte et quelques images et graphiques, après avoir essayé Ionic, les progressive web apps qu'Apple supporte mal (pas de notification), Vue, Angular avec NativeScript, etc il ne reste en fait que React Native qui soit assez facile, universel et mûr pour réellement ne se voir bloqué nulle part, sans mauvaise surprise.
React permet non seulement 2 cibles mobiles mais aussi le Web desktop et mobile. Ça, Flutter ne pourra jamais le faire...
0  0 
Avatar de NBoulfroy
Membre confirmé https://www.developpez.com
Le 12/04/2019 à 11:13
Citation Envoyé par nhugodot Voir le message
Euh... Sur pc, on a n technos et ça n'a jamais posé problème. Sur serveur Web, Java, Perl, Python, PHP, JS, Scala, go et j'en passe, non plus. Sur mobile, alors que Python est le langage le plus enseigné du monde, y'a pas, c'est très bête. Alors à quand le portage de python sur Android et iOS ? Va falloir attendre FuschiaOS...
Il existe un projet Python pour réaliser des applications mobiles (Android de mémoire, iOS peut être pas) mais cela reste marginal.

Python est certainement le plus "enseigné" mais en terme d'offre et de demande, j'ai l'impression que ce langage reste dans le Big Data et la recherche. C'est un peu bête compte tenu du fait qu'il existe, entre autres, le projet IronPython qui permet d'utiliser la librairie GUI C# pour développer des applications graphiques.

A mes yeux, le plus grand frein à ce langage pour du développement logiciel est le problème de la facilité de développer des interfaces graphiques pour les applications desktops, un peu comme le permet Java et C# en fait parce qu'on va pas se mentir, développer avec Tkinter & cie sans interface, c'est pire que la mort.
0  0 
Avatar de jdddeschamps
Membre régulier https://www.developpez.com
Le 27/02/2019 à 12:57
Cela impose d'apprendre un nième langage : Dart.
Xamarin et le C# ne font-ils pas l'affaire ?
0  1 
Avatar de nhugodot
Membre régulier https://www.developpez.com
Le 08/03/2019 à 8:37
Citation Envoyé par pierre.E Voir le message
euh
android studio java kotlin reactnative et maintenant Flutter
on a du mal à suivre
Euh... Sur pc, on a n technos et ça n'a jamais posé problème. Sur serveur Web, Java Perl python PHP JS Scala go et j'en passe, non plus. Sur mobile, alors que Python est le langage le plus enseigné du monde, y'a pas, c'est très bête. Alors à quand le portage de python sur Android et iOS ? Va falloir attendre FuschiaOS...
0  1 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web