Flutter (logiciel)

Flutter est un kit de développement de 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

Informations
Créateur Google
Développé par Google
Première version Alpha (v0.0.6) /
Dernière version 2.2.3 ()[1]
Dépôt github.com/flutter/flutter
Écrit en C, C++, Dart[2]
Système d'exploitation Android, iOS, Google Fuchsia, Web, Windows, macOS et Linux
Type Kit de développement
Framework
Licence Licence BSD
Site web flutter.dev

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[3], avec l'intention déclarée de pouvoir effectuer un rendu cohérent à 120 images par seconde[4] . 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. Le 11 décembre 2019, Flutter 1.12 a été publié lors de l'événement Flutter Interactive[5] .

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.

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 par cette occasion été résolus (ajout de null safety par exemple). De plus, l'utilisation de Windows, Linux et la version Web sont ajoutés à la release.

L'Architecture du framework

Les principales composantes de Flutter sont les suivantes :

  • La plate-forme Dart
  • Le Moteur Flutter
  • La Bibliothèque Foundation
  • Les Widgets spécifiques à la conception

La Plate-forme Dart

Les applications Flutter sont écrites en Dart et utilisent de nombreuses fonctionnalités plus avancées du langage.

Sur Windows, macOS et Linux[6] , Flutter fonctionne dans la machine virtuelle Dart et dispose d'un moteur d'exécution just-in-time. Lors de l'écriture et du débogage d'une application, Flutter utilise la compilation "Just In Time", qui permet de la recharge à chaud "hot reload", avec laquelle les modifications des fichiers sources peuvent être injectées dans une application en cours d'exécution. Flutter étend cette possibilité avec la prise en charge de la recharge à chaud stateful, où dans la plupart des cas les modifications du code source peuvent être reflétées immédiatement dans l'application en cours d'exécution sans nécessiter de redémarrage ou de perte d'état[7].

Les versions des applications Flutter sont compilées avec ahead-of-time (AOT) compilation à la fois sur Android et iOS,[8] rendant possible les hautes performances de Flutter sur les appareils mobiles.

Le Moteur de Flutter

Le moteur de Flutter, écrit principalement en C++, fournit un support de rendu de bas niveau en utilisant la bibliothèque graphique Skia de Google. De plus, il s'interface avec des SDK spécifiques à la plate-forme, tels que ceux fournis par Android et iOS. Le moteur Flutter est un runtime portable pour l'hébergement d'applications Flutter. Il met en œuvre les bibliothèques de base de Flutter, y compris l'animation et les graphiques, les entrées/sorties de fichiers et de réseau, le support de l'accessibilité, l'architecture des plugins, et une chaîne d'outils d'exécution et de compilation Dart. La plupart des développeurs interagissent avec Flutter via le Flutter Framework, qui fournit un cadre réactif, et un ensemble de widgets de plate-forme, de mise en page et de foundation.

La Bibliothèque Foundation

La bibliothèque Foundation, écrite en Dart, fournit des classes et des fonctions de base qui sont utilisées pour construire des applications utilisant Flutter, comme une API pour communiquer avec le moteur.

Les Widgets spécifiques à la conception

Le Framework Flutter contient deux ensembles de widgets qui sont conformes à des langages de conception (design) spécifiques. Les widgets Material Design implémentent le langage de conception de Google du même nom, et les widgets Cupertino implémentent les directives de l'interface humaine iOS d'Apple .

Exemple de Hello World

Un programme de hello world dans Flutter ressemble à ceci :

import 'package:flutter/material.dart';

void main() => runApp(HelloWorldApp());

class HelloWorldApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {

     //MaterialApp agit comme un emballage pour l'application et 
     //fournit de nombreuses fonctionnalités comme le titre(title), la page d'accueil(home), le thème(theme), etc.   
    return MaterialApp(
      title: 'Hello World App',

      //Scaffold agit comme un liant qui lie l'appBar, la barre de navigation inférieure (bottom nav bar) et
     // les autres composants de l'interface utilisateur à leur place.     
      home: Scaffold(

        //Le widget AppBar() crée automatiquement un material app bar (barre de titre).
        appBar: AppBar(
          title: Text('Application Hello World'),
        ),

        //Le widget center aligne le child (enfant) au centre.
        body: Center(
          child: Text('Hello World'),
        ),
      ),
    );
  }
}

Voir aussi

Notes et références

  1. « Flutter SDK releases » (consulté le )
  2. « FAQ - Flutter » (consulté le )
  3. « Sky: An Experiment Writing Dart for Mobile (Dart Developer Summit 2015) »
  4. Ron Amadeo, « Google's Dart language on Android aims for Java-free, 120 FPS apps », Ars Technica,
  5. (en) « Flutter: the first UI platform designed for ambient computing », Flutter blog (consulté le )
  6. (en) « Canonical enables Linux desktop app support with Flutter », sur Ubuntu (consulté le )
  7. Wm Lelel, « Why Flutter Uses Dart », sur HackerNoon, (consulté le )
  8. stephenwzl, « Flutter’s Compilation Patterns », sur ProAndroidDev, (consulté le )

Liens externes

  • Portail des logiciels libres
  • Portail GNU/Linux
  • Portail de la programmation informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.