Qu’est-ce que Flutter ?
-
Objectifs
- Connaitre le Framework Flutter
-
Présentation
- À l’époque avec Objective C/Swift et Java/Kotlin en tant que langages principaux pour le développement mobile, la création d’applications mobiles coûtait cher. Vous deviez créer deux applications distinctes, ce qui impliquait évidemment de travailler deux fois.
- Pour résoudre ce problème, plusieurs frameworks ont été créés pour créer des applications hybrides (ou multiplateformes) en HTML5 et Javascript, tel que notamment PhoneGap, Xamarin, React Native, etc.
- Flutter est une boîte à outils d’interface utilisateur portable permettant de créer des applications de type natif sur mobile, Web et ordinateur de bureau à partir d’une seule base de code.
- Flutter utilise le langage de programmation Dart et intègre les widgets Material Design et Cupertino.
- Dart est un langage de programmation créé par Google et utilisé dans les applications Web ou de bureau applications bureautiques et mobiles.
- Cette langue a été inventée par Bak Lars et Lund Kasper et la première version est sortie en 1122.
- Il est important de savoir que Dart est un langage Platform-Cross, ce qui signifie qu’il fonctionne également sur diverses plateformes.
- C’est Language Native, ce qui signifie qu’il traite le matériel directement sans interprètes intermédiaires, ce qui lui donne de la vitessetrès haut.
- Quant aux Flutter, c’est une plate-forme qui nous permet de construire des applications mobiles avec des interfaces graphiques basées sur le langage Dard.
- Flutter : vous n’avez pas besoin d’un pont entre l’application et le matériel, et nous en concluons que Flutter est actuellement la meilleure solution pour les applications mobiles.
- Flutter est un kit de développement logiciel (SDK) d’interface utilisateur open-source créé par Google. Il est utilisé pour développer des applications pour Android, iOS, Linux, Mac, Windows, Google Fuchsia et le web à partir d’une seule base de code.
- Flutter est un framework et non un langage de programmation. Il est fondé sur le langage Dart. Ce dernier est un langage orienté objet comme la plupart des langages utilisés pour développer des applications mobiles.
- Flutter offre un moyen de créer des applications pour iOS et Android à la fois, en utilisant le même code.
- Flutter utilise un langage de programmation compilé, appelé Dart, qui est compilé “ahead of time” (AOT) en code natif pour iOS et Android.
- Flutter fournit des vues réactives sans avoir besoin d’un bridge Javascript pour communiquer avec la plateforme.
- Les principaux blocs de construction de Flutter sont les Widgets. Ils sont fortement inspirés par la syntaxe JSX de React, ce qui permet aux développeurs natifs d’aborder facilement Flutter.
-
Qu’est-ce que Flutter Framework ?
- Flutter est un framework développé par Google, le plus récent de tous. De ce fait, les ingénieurs ont pu observer les points forts et les faiblesses de chaque outil existant pour n’en extraire que la quintessence.
- Flutter est un framework open source qui fonctionne avec le langage de programmation Dart de Google.
- Il est souvent appelé une boîte à outils d’interface utilisateur améliorée pour créer des applications multiplateformes à partir d’une seule base de code.
- Flutter est une boîte à outils open source et multiplateforme utilisée pour créer des applications pour les systèmes d’exploitation mobiles, le Web et les ordinateurs de bureau avec la même base de code.
- Cela signifie que les développeurs écrivent le code une fois et l’appliquent à toutes les plates-formes – iOS, Android, plate-forme Web, macOS (Windows et Linux sont toujours en cours de développement) et même Wear OS.
-
Version et historique Flutter
- Flutter a été lancé en tant que projet appelé Sky qui au début ne fonctionnait que sur Android.
- Voici une brève présentation de l’histoire relativement courte de Flutter.
-
2015 code « Sky »
- La première version de Flutter était connue sous le nom de code « Sky » et fonctionnait sur le système d’exploitation Android.
- Elle a été dévoilée lors du sommet des développeurs Dart de 2015, avec l’intention déclarée de pouvoir effectuer un rendu cohérent à 120 images par seconde4 .
-
2018 Flutter 1.0
- Lors du discours d’ouverture des Google Developer Days à Shanghai, Google a annoncé la sortie de Flutter Release Preview 2 qui est la dernière grande version avant Flutter 1.0.
- Le 4 décembre 2018, Flutter 1.0 a été publié lors de l’événement Flutter Live, ce qui représente la première version « stable » du Framework.
- La version bêta de Flutter a été lancée le 13 mars 2018 et elle a été lancée pour la première fois le 4 décembre 2018. En si peu de temps, Flutter a déjà établi sa position sur le marché.
-
2019 Flutter 1.12
- Le 11 décembre 2019, Flutter 1.12 a été publié lors de l’événement Flutter Interactive.
-
2020 Flutter 1.17
- Le 6 mai 2020, le SDK de Dart en version 2.8 et celui de Flutter en version 1.17.0 sont sortis. La prise en charge de l’API Metal a été ajoutée, améliorant les performances des appareils iOS (environ 50 %), de nouveaux widgets Material et de nouveaux outils de suivi de réseau.
-
2021 Flutter 2.0
- Le 3 mars 2021, l’équipe de développement de Flutter a annoncé la release de son SDK en version 2.0.0. De nombreux bugs et problèmes de jeunesse ont été résolus à cette occasion (ajout de null safety par exemple). De plus, l’utilisation de Windows, Linux et la version Web sont ajoutés à la release.
-
Versions récentes
- 3.11.0.300 (2023-10-31)
- 3.7.0.300 (2022-12-12)
- 3.2.0.301 (2022-06-10)
- 3.2.0.300 (2021-12-31)
- 3.2.0.300 (2021-11-30)
-
Conclusion
-
Développement cross-platform
- Le point fort incontestable de Flutter est la possibilité de pouvoir réaliser des applications pour différents supports tels qu’Android et iOS à partir d’un seul et unique code source.
- Le problème avec ce type de technologie reste dans la part de code « spécifique » à adapter sur chaque OS qui peut être plus ou moins conséquente.
- Avec Flutter, il n’y a quasiment aucun reste à charge. Pourquoi ? Cela est dû à la façon dont Flutter est constitué. En effet, il n’utilise pas les composants natifs mais l’ensemble de ces éléments a été recréé. Dès lors, le développeur dispose d’un ensemble de fonctionnalités (boutons, champs, dispositions…) propres à chaque plateforme (voir juste après Organisation par Widgets).
- Il n’est pas faux de dire qu’une application peut être écrite à partir d’un seul et unique code.
- Toutefois, il reste quelques manipulations particulières qui ne relèvent pas vraiment du code mais plus de la configuration, comme les autorisations de localisation par exemple, et évidemment les builds permettant d’obtenir une application finale pour chaque support.
-
Le hot reload
- Google a pensé Flutter comme un produit qui doit séduire les développeurs, mais aussi les entreprises afin qu’il soit massivement utilisé.
- Il fallait donc optimiser certains points. Le rendu est un des éléments délicats du développement mobile. En effet, les modifications du code obligent à relancer l’émulateur (ou au moins l’application) afin de voir les changements s’opérer. Dans tous les cas, comme l’application est relancée à son point de départ, il faut naviguer jusqu’à atteindre l’écran affecté par les corrections.
- À chaque fois, les développeurs doivent attendre plusieurs secondes. Il est aisé de comprendre que finaliser une page avec tous ses aspects graphiques qui confinent parfois au détail est un vrai labeur.
- Au bout du compte, à l’échelle d’une application entière, le temps perdu est important.
- Google a répondu à cette problématique avec le hot reload. Toute création, changement, modification superficielle ou en profondeur est vue directement sans avoir ni à relancer l’émulateur, ni l’application.
- Le gain de temps est donc énorme. C’est un avantage non négligeable face au développement natif. Les développeurs n’ont plus à s’agacer devant ces moments perdus et les entreprises voient d’un bon œil ce gain de productivité.
Flutter 1.12 | Flutter 1.17 | Flutter 1.20 | Flutter 1.22 | Flutter 2.0 |
---|---|---|---|---|
Sorti en décembre 2019 | Sortie en mai 2020 | Sorti en août 2020 | Sorti en octobre 2020 | Sortie en mars 2021 |
Dart 2.7 | Dart 2.8 | Dart 2.9 | Dart 2.9 et 2.10 | Dart 2.12 |
Mise à jour d’application à application | Accessibilité et internationalisation | Page des licences réactives | Nouvelle prise en charge de la localisation et de l’internalisation | Plusieurs instances Flutter avec Add-to-App |
Assistance Web bêta | Support métallique | Mise à jour des outils de développement Dart | Mises à jour dans ios14 | mise à jour de la prise en charge du DartPad |
Améliorations de la version Android | MGM et Superformula | Prise en charge de la saisie automatique mobile | Restauration de l’état Android | Extension Android Studio/IntelliJ |
Prise en charge du bureau macOS | Améliorations des performances et de la taille des mobiles | Canaux de la plate-forme Typesafe via Pigeon | Liaison de sortie améliorée dans Visual Studio Code | Extension de code Visual Studio |
Nouveau paquet de polices Google | Polices Google pour Flutter | Importer la mise à jour de la déclaration | Plugins Google Maps et WebView | Mises à jour de l’écosystème |
Déboguer les problèmes de mise en page avec l’explorateur de mise en page | Widgets matériels : NavigationRail, DatePicker | Curseur de matériau mis à jour, RangeSlider | Améliorations de l’apparence de l’application | Nouveaux widgets : saisie semi-automatique et ScaffoldMessenger |
Outillage flottant | Modernisation de la thématisation du texte Flutter | Sécurité nulle dans Dart | nouvel outil de développement Dart unifié | FlutterDevTools |