Un framework de développement créé par Google pour réaliser des applications mobiles Android et iOS

Flutter est un projet open-source créé par Google et mis en avant depuis Google I/O 2017, permettant de développer des applications principalement pour Android, iOS et Fuchsia. Le projet utilise le langage de programmation Dart, présenté par Google en 2011.

Le but premier du projet est de permettre de créer de manière simple et rapide des applications optimisées et multiplateformes. Il permet un design identique sur chaque appareil, quelque soit sa plateforme, la version de son système d’exploitation ou son année de production, en utilisant ses propres Widgets qui sont des copies d’éléments graphiques d’Android et iOS, dessinés directement à l’écran.

Flutter : entre avantages et inconvénients

Le premier avantage de Flutter se trouve du côté du développeur

La plupart des technologies multiplateformes, telles que Xamarin, sont composées de parties spécifiques à Android et iOS ce qui augmente la complexité lors du développement. Ici, seul un code commun est nécessaire et s’adapte parfaitement aux 2 systèmes d’exploitation.

Flutter propose aussi un mode « non-optimisé » utilisé pendant le développement pour intégrer rapidement l’interface, la navigation et la logique de l’application sans devoir redéployer celle-ci sur un appareil entre chaque changement, contrairement à Android ou iOS. C’est un gain de temps considérable, autant pour le client (coûts de développement) que pour le développeur. Une fois le développement terminé, on crée une version optimisée de l’application qui sera utilisée en production.

Ensuite vient l’expérience utilisateur, qui va considérablement être mise en avant via des animations faciles à mettre en place, et surtout des performances proches de celles des applications natives. En effet, Flutter est principalement écrit en C++ et utilise le moteur graphique open source Skia acquis par Google en 2005. Skia est utilisé dans Google Chrome, Chrome OS, ou encore Mozilla Firefox et permet un rendu de bas niveau. De plus, Flutter s’interface avec les SDK spécifiques à chaque plateforme de manière optimisée (caméra, GPS, etc.).

Enfin, Flutter est un projet open source, point sécurisant car si le projet devait être abandonné par Google, celui-ci serait très sûrement repris par un autre développeur, notamment au vu de son engouement.

Certains composants natifs ne sont pas encore disponibles avec Flutter

Etant donné la nature des Widgets, le développement peut se trouver freiné si l’application nécessite un élément d’interface qui n’a pas encore été intégré à Flutter.

Certains composants natifs ne sont pas optimisés pour Flutter comme Google Maps ou les Webviews. Google et la communauté travaillent sur ce sujet.

Le projet dépend également du soutien de Google, et s’il venait à être abandonné et repris par des développeurs tierces, il pourrait être mis à jour moins souvent, et donc moins à même de « coller » aux applications natives.

Flutter et ses concurrents : quelle solution pour des applications multiplateformes ?

React Native

React Native est une solution multiplateforme lancée par Facebook en 2015, utilisant le Javascript et ayant vite fait ses preuves au sein de la communauté des développeurs. Aujourd’hui, son principal avantage face à Flutter est son ancienneté (facilité pour le développeur de trouver des bibliothèques ou du support). Néanmoins, Flutter rattrape bien son retard grâce à sa possibilité de personnaliser les éléments d’interface, et ses performances supérieures à son concurrent direct.

Xamarin

Xamarin est un framework de développement mobile multiplateforme utilisant le langage C# et le framework .NET. Il est fondé en 2011 (à la base appelé « Mono for Android » et « MonoTouch » pour iOS) et fût racheté en 2016 par Microsoft. Bien qu’il soit une alternative forte au développement d’applications natives, il reste tout de même nécessaire d’écrire des parties de code spécifiques à chaque plateforme. Aujourd’hui, les applications natives sont plutôt développées en Kotlin et Swift profitant des dernières optimisations alors que Xamarin base sa partie native sur les langages Java et Objective-C. Flutter est plus accessible pour les développeurs et propose un tronc commun pour toute l’application, ce qui apporte un gain de temps substantiel.

Applications natives Android et iOS

Flutter apporte une solution concrète au développement d’applications mobiles simples : les performances d’un code natif et l’utilisation d’un tronc commun pour les 2 plateformes. Néanmoins le développement natif sera plus adapté à des applications complexes, qui utilisent plusieurs fonctions avancées telles que le Bluetooth, le NFC, Google Maps, des éléments d’interface très spécifiques (existant déjà, alors qu’il faudra les recréer en Flutter), les capteurs présents au sein des smartphones, etc. Les applications natives seront également plus fluides et respecteront les habitudes et usages de leurs utilisateurs respectifs.

Exemple d’applications utilisant Flutter

Des centaines d’applications sont d’ores et déjà disponibles sur le site officiel https://flutter.dev/showcase et sur le site communautaire https://itsallwidgets.com/. Parmi celles-ci, on peut tirer quelques exemples visant plusieurs millions d’utilisateurs.

Alibaba

Le groupe Alibaba, une des plus grandes sociétés de commerce en ligne, a fait le pari réussi d’intégrer Flutter pour certaines parties de leur application principale, qui touche aujourd’hui plus de 50 millions d’utilisateurs. La page de détail d’un produit, écran le plus visité de l’application, a été la première à être migrée en Flutter, suivie par la page de publication d’un article. Alibaba a observé un gain de rendement de 30% grâce au code partagé et à la facilité d’utilisation de Flutter, et compte bien migrer d’autres parties de l’application dans les mois à venir.

Hamilton Music App

L’agence de design et de développement Posse basée à New York a été sollicitée par Hamilton Musical pour développer une application mobile permettant d’avoir des informations sur le spectacle, d’acheter des produits dérivés, de s’inscrire à des tirages au sort pour gagner des places, ou encore de prendre des photos-selfies et les modifier pour y ajouter des accessoires, et ensuite les partager. Posse a choisi Flutter pour sa simplicité, son code commun et ses performances. L’application a été développée en 3 mois, et l’équipe a même pu ajouter une fonctionnalité complète la veille de la mise en production.

Et bien d’autres

Parmi les autres applications, on peut citer Google Ads, Tencent, Philips Hue ou encore Groupon.

Le futur de Flutter

HummingBird

HummingBird est un projet en cours de développement proposé par Google. Le but est de créer une version de Flutter pour le Web, en suivant le même fonctionnement que Flutter pour le mobile.

Google Ads

Google utilise Flutter pour son application Google Ads. Elle totalise plus de 5 000 000 de téléchargements, ne pèse que 27mo et possède une note de 4,3/5. Google semble avoir confiance en Flutter.

Fuchsia

Selon la Google I/O de 2019, Flutter sera compatible avec le nouvel OS de Google, Fuschia, censé être à terme le remplaçant d’Android.

Flutter est jeune, mais déjà très apprécié de la communauté des développeurs mobiles crossplatform, et le langage de développement Dart est accessible pour la plupart des développeurs mobiles et web. Le code commun permet de créer des applications plus rapidement, ce qui est répercuté favorablement sur le coût du développement.

Même si chaque langage de programmation sera plus adapté à certains projets, Flutter semble couvrir un large éventail de possibilités et sera approprié pour des applications simples, sans sacrifier ni le visuel qui reste identique aux applications natives, ni le temps de développement.

Chez IKOMOBI, les développeurs ont déjà pris en main cette alternative intéressante, afin de répondre au mieux aux besoins de ses clients. Ainsi, si vous souhaitez faire appel à nos experts mobiles et bénéficier d’une expertise Flutter, n’hésitez pas à nous contacter.

Fort de plus de 10 ans d’expérience en matière de conception et réalisation d’applications mobiles, IKOMOBI dispose d’un pôle Conseil ainsi que 4 pôles technologiques (Web, iOS, Android et Xamarin) pour vous aider à faire le bon choix pour votre projet.