Flutter : un projet open source qui supporte la construction d'applications mobiles 2D multiplateformes
Pour iOS et Android

Le , par Michael Guilloux, Chroniqueur Actualités
Flutter est un projet open source encore à ses débuts et qui est développé en majorité par des ingénieurs de Google. Dans une FAQ dédiée au projet, il lui est reconnu de donner aux développeurs « un moyen facile et productif pour créer et déployer des applications mobiles multiplateformes de haute performance, à la fois sur Android et iOS ».

Flutter se distingue également des autres options pour la création d’applications mobiles multiplateformes. Il n’utilise ni WebView ni les widgets OEM livrés avec les appareils. Il repose plutôt sur son propre moteur de rendu que ses développeurs estiment « de haute performance pour dessiner des widgets ».

Il dispose de trois composantes principales. Flutter fourni d’abord un moteur de rendu 2D orienté mobile qui offre en plus un support pour le texte. Il vient aussi avec un framework de style fonctionnel réactif. Inspiré par React, ce framework est toutefois optionnel, laissant aux développeurs la possibilité d’utiliser un autre framework. Il est également conçu en couches de sorte que les développeurs puissent choisir d’utiliser uniquement des parties du framework. Flutter fournit encore un ensemble de widgets Material Design, des bibliothèques, des outils et un plug-in pour Atom. À l’instar du framework, les widgets sont optionnels, ce qui signifie que les développeurs pourront également utiliser leurs propres widgets. Flutter est aussi conçu pour permettre aux développeurs de créer facilement leurs propres widgets, ou de personnaliser les modèles existants.

Le projet est construit avec les langages C, C ++ et Dart. Si le framework et les widgets sont écrits avec le langage Dart, le framework graphique sous-jacent et la machine virtuelle Dart ont été implémentés en C/C++, d’après la FAQ sur le projet. Les développeurs du projet justifient le choix de Dart pour le framework par le fait que non seulement il supporte des scripts simples, mais encore il est facilement évolutif pour les applications riches en fonctionnalités. C’est aussi un langage familier pour les développeurs JavaScript, Java et C#, qui permet encore de répondre à la nécessité d’une exécution rapide sur iOS.

Flutter repose aussi sur le moteur de rendu 2D Skia, le système de rendu de texte de Blink, ainsi que sur le système de communication interprocessus (IPC) de Mojo. À travers le système IPC de Mojo, Flutter permet aux développeurs d’accéder à tout service ou API fournis par le système d’exploitation hôte. De manière plus générale, ce système de communication interprocessus permet d’assurer l’interopérabilité entre le code de l’application Flutter et le système d’exploitation hôte.

Flutter peut être utilisé à l’intérieur des applications natives Android et iOS existantes, et les applications développées peuvent être déployées via Apple App Store ou Google Play Store. Toutefois, l’équipe projet envisage de fournir des outils pour générer facilement des fichiers .ipa et .apk (extensions respectives pour les fichiers d’applications iPod/iPhone et Android, dans un ordinateur).

Sur Android, le code C/C++ est compilé avec le kit de développement natif (NDK) Android. La machine virtuelle Dart, sur laquelle la majorité du code du framework et de l’application est exécuté, génère alors un code natif compilé à la volée. Sur iOS, le code est traduit en code natif avec LLVM par compilation anticipée.

Les applications Flutter tournent sous Android Jelly Bean 4.1.x et iOS 5, ainsi que les versions plus récentes des deux systèmes. Une variété de tablettes et téléphones de différentes gammes sont actuellement testés afin de garantir une compatibilité avec les appareils. Ces applications peuvent être développées sur Linux et Mac. Un support pour Windows est également prévu.

Sources : GitHub, FAQ Flutter

Et vous ?

Utilisez-vous des frameworks de développement mobile multiplateforme ? Si oui, lesquels et pourquoi ? Que pensez-vous de Flutter ?

Voir aussi

Forum Mobiles


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de htoukour htoukour - Membre du Club https://www.developpez.com
le 17/11/2015 à 13:39
Un outils de plus qui va faciliter aux debutants la creation des applis pour android et iOS.
Avatar de Stéphane le calme Stéphane le calme - Chroniqueur Actualités https://www.developpez.com
le 24/06/2017 à 23:50
Un développeur donne des raisons qui peuvent justifier l'utilisation de Flutter,
le framework de Google pour créer des applications natives iOS et Android

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 ?
Avatar de moueza moueza - Membre du Club https://www.developpez.com
le 01/07/2017 à 19:25
Reste à voir Flutter vs Titanium !??
Offres d'emploi IT
Ingénieur Développement .NET Confirmé H/F
Page Personnel - Basse Normandie - Caen (14000)
Atos - Basse Normandie - Caen (14000)
Technicien Assistant Utilisateurs H/F
Econocom SAS - Basse Normandie - Flamanville (50340)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil