Publié le 9 février 2021.
Par Christophe Romei
App

Flutter, le game changer du développement mobile

Publié le 9 février 2021.
Par Christophe Romei

Flutter est un projet open source que Google a lancé en 2015 pour donner aux développeurs la possibilité de créer et déployer des applications mobiles à la fois sur Android et iOS.

Flutter lance une conférence spéciale virtuelle le 3 mars, “Flutter Engage”. L’idée est de rassembler la communauté Flutter tout en y annonçant des nouveautés. Google propose une retransmission en français de l’événement sur la chaîne YouTube de Flutter France.

À cette occasion, nous faisons un point de cet outil.

Dans le développement d’applications mobiles, il y a 2 impératifs : y passer le moins de temps et le moins d’argent possible. Flutter n’est pas un choix mais une option sérieuse, qui doit être intégrée au modèle commercial car la vitesse et l’agilité deviennent rapidement la nouvelle norme. Flutter est d’ailleurs comparable à React Native de Facebook et Xamarin de Microsoft, qui permettent également aux développeurs de créer des applications multiplateformes natives.

Quelques chiffres (avril 2020)

  • 50 000 applications Android construites par Flutter sur le Google Play Store.
  • Les principales régions utilisant Flutter sont l’Inde, la Chine, les États-Unis, l’UE et le Brésil.

Avec Flutter, les implémentations sur iOS et Android sont identiques. Ce qui permet de ne pas perdre de temps et d’énergie à rechercher des erreurs de programmation qui n’existent pas.

Flutter est un cadre de programmation multiplateforme, visant à résoudre les problèmes de développement d’applications multiplateformes en code non natif. Avec la connaissance du langage de programmation Dart, un développeur peut créer des applications pour Android, iOS, Web et bureau avec une interface utilisateur unifiée pour tous. Peu de gens savent que Flutter est basé sur le langage de programmation interne de Google “Dart”. Ce langage est si simple à apprendre que les développeurs n’ont plus de difficulté à apprendre des termes complexes. En effet, ce langage de programmation est très propre et clair à comprendre avec une syntaxe standard et incroyablement puissante.

Il est intéressant de noter que la plate-forme de recrutement en ligne Freelancer.com a signalé que le nombre d’emplois sur sa plate-forme avait augmenté de 17 % en 2020. En examinant les emplois à la croissance la plus rapide pour 2020 sur Freelancer.com, 8 des 10 à la croissance la plus rapide concernaient le développement d’applications et le développement de sites Web avec en tête de liste Flutter ! Google affirme en avril 2020 que deux millions de développeurs ont utilisé Flutter.

eBay

De nombreuses grandes marques qui recherche des SDK multiplateformes l’ont adopté, comme eBay qui a créé la nouvelle application eBay Motors avec Flutter en étant deux fois plus rapide que le développement de leur plate-forme précédente. Ce qui a été vraiment apprécié par leurs équipes c’est le fait de tester rapidement ce que vous développez et pour cela, Flutter est parmi les meilleures. Il est simple aussi d’intégrer les API pour permettre l’utilisation de la caméra, la capture vidéo, l’apprentissage automatique, la géolocalisation, le stockage sécurisé et d’autres fonctionnalités du smartphone. L’écosystème Flutter fournit d’excellents plugins pour ces services.

Les équipes de eBay n’ont pas eu besoin de créer des designs uniques basés sur chaque plateforme. Les widgets Prebuilt Material et Cupertino leur ont permis de préférer les bons paramètres par défaut et de créer des expériences utilisateur personnalisées uniquement en cas de besoin. Cela a abouti à une expérience utilisateur finale cohérente sur chaque appareil sans sacrifier les mécanismes des plateformes spécifiques sur lesquels les clients eBay sont présents.

 

Il y a de nombreux autres avantages. Nous avons demandé à un Flutter Senior Developer son avis sous forme de questions, Romain Rastel qui nous montre “qu’une partie de l’intérêt de Flutter réside en sa capacité à cibler plusieurs plateformes avec une seule base de code. En effet, toute la logique de l’application, ainsi que l’interface utilisateur sont entièrement écrites en Dart et qu’avant d’être envoyées sur les différents stores, les applications Flutter sont compilées en natif, ce qui leur permet d’avoir un niveau de performance équivalent aux applications natives.”

Quand on est une entreprise, on peut se poser des questions sur le choix des outils, Romain poursuit : “En écrivant une application en Flutter, au lieu de le faire en natif, une équipe de développement réduira donc les coûts de réalisation, de tests et de maintenance. Elle pourra donc davantage se concentrer sur l’ajout de nouvelles fonctionnalités et sur les retours utilisateurs afin de leur donner la meilleure expérience possible. De plus, une fonctionnalité très prisée des développeurs Flutter, appelée Hot Reload, leur permet de faire un changement dans le code de l’application et de le voir en temps réel sur leur appareil pendant le développement. Ceci offre un gain de temps non négligeable, et moins de frustration pour le développeur. Mais ce n’est pas tout, Flutter permet également de créer des applications ciblant le web, macOS, Windows et Linux. Même si pour l’instant, la prise en charge de ces plates-formes n’est pas entièrement stabilisée, ceci offre une plus grande portée afin d’acquérir de nouveaux utilisateurs.”

Certains parlent d’imitation des composants natifs pour Flutter, pouvez-vous nous expliquer ? “La particularité de Flutter par rapport à d’autres alternatives est qu’il fonctionne un peu comme un moteur de jeu vidéo. C’est lui qui a la maîtrise de chaque pixel qui s’affiche à l’écran. Il n’utilise aucun composant prédéfini des SDKs natifs pour dessiner les écrans des applications. Afin de fournir aux développeurs des composants clé en main, l’équipe Flutter a donc fait un travail remarquable pour réimplémenter de zéro, en Flutter, les composants natifs que l’on peut trouver à la fois sur Android, mais aussi sur iOS.

Si on le souhaite, on peut donc réaliser une application Flutter qui ressemblera comme deux gouttes d’eau à une autre application iOS, et qui pourra être exécutée sur un smartphone Android. Les composants embarqués sont donc liés à la version de Flutter utilisée pour développer l’application et non à la version du système embarquée sur le téléphone. Ce qui permet d’avoir une interface utilisateur qui reste identique quelle que soit la version du système d’exploitation.

On pourrait se dire qu’en faisant cela les nouveaux composants mettront alors plus de temps à arriver sur Flutter. Pour iOS, il est possible que ça soit le cas, car l’équipe ne peut travailler sur une nouvelle implémentation qu’à partir de la sortie publique du nouveau SDK d’iOS. Par contre pour Android, on remarque plutôt l’inverse. En effet, dernièrement certains composants ont été publiés sur Flutter quelques jours après les nouvelles spécifications de Material Design (règles de design utilisées par Android), et ce bien avant que ces composants aient été mis à disposition sur le nouveau SDK d’Android.”

On peut donc écrire tout un projet ciblant iOS, Android, le web, macOS, Windows et Linux avec l’écosystème Flutter + Dart.

Lire aussi