Flutter est un SDK - kit de développement logiciel - d’interface utilisateur open-source – libre d’utilisation – permettant de développer des applications sur divers OS (Windows, web, Android, IOS). Il a l’avantage de proposer un seul et même langage, le Dart, également développé par google, pour la création d’application mobile, bureau, linux et web.
La technologie met à disposition aussi un gestionnaire de paquets permettant de télécharger des librairies développées par la communauté et réutilisables permettant d’augmenter la productivité des applications.
Dans le monde de l’entreprise, la technologie est utilisée par BMW, Toyota et bien d’autres enseignes. Flutter a notamment permis de réduire de 75 % l’effort d’ingénierie et réduire de 35 % les lignes de code pour Google Pay https://flutter.dev/showcase/google-pay.
J’ai eu la chance de travailler avec cette technologie dans le cadre de mon alternance à UPSA, les projets Simplification Pocl et Carnet de Santé des équipements m’ont prouvé que Flutter était une technologie de demain, par sa simplicité d’utilisation et sa performance. Elle m’a permis de vite développer des interfaces et j’ai découvert un nouveau type d’architecture logiciel nommé BloC – pour Business Logic Component – très performante. Cette architecture a l’avantage de découper le code en composants permettant sa réutilisation dans d’autres projets.
Pour exemple, grâce à cette disposition, j’ai pu transposer - dans le cadre de mon alternance à UPSA - mes différents composants développés sur une première application vers les autres sans devoir tout redévelopper. Cela m’a permis de concevoir plus vite les futurs programmes, ayant déjà développé les composants métiers, je pouvais me focaliser davantage sur les fonctionnalités répondant spécifiquement au besoin des collaborateurs. Enfin, j’ai déployé sur le Git d’UPSA, un pattern de projet. C’est-à-dire que pour commencer un nouveau projet, je peux m’appuyer sur ce pattern sans avoir tout à redévelopper. Celui-ci intègre :
Evidemment toutes ces parties sont modifiables ou adaptables au besoin.
Pour le projet PocL, mon premier projet avec cette technologie, j’ai dû acquérir la compétence rapidement car le temps de développement était court, 4 mois pour déployer une version 0 pouvant être testée sur le terrain. En plus d’apprendre le SDK Flutter je devais me documenter sur l’architecture BloC qui est un nouveau paradigme de structure du code pour les applications développées sous cette technologie.
C’était un vrai challenge de développer en si peu de temps une application intégrant des fonctionnalités avancées, (appel API, connexion, prise de photos, exportation PDF, gestion d’une grande volumétrie de données avec paginations, etc) et d’apprendre en même temps une technologie. Par ailleurs, le code source de l’application devait répondre à un niveau d’exigence élevé car PocL traite des données pharmacologiques sensibles liées à l’entreprise.
Je qualifierais mon niveau de maîtrise Expert. En effet, le travail effectué
avec cette technologie m’a permis d’acquérir assez de maîtrise pour être autonome dans la plupart des
circonstances.
Ma marge de progression reste légère, je compte néanmoins m’améliorer sur le découpage des
interfaces. En effet, durant le travail effectué sur les divers projets, il m’arrivait de me retrouver pour une
page de mon application avec beaucoup de code (800 – 1200 lignes) sur un seul et même fichier. Or, Flutter
utilise des Widgets – voir cela comme des bouts d’interface qu’on code et qu’on assemble les uns avec les autres
– Par conséquent, la technologie permet de fragmenter aisément le code. Cela m’aurait parfois permis d’éviter de
me perdre dans mon propre développement. A savoir, ces interfaces ont été optimisées par la suite.
Je compte continuer à développer mes compétences dans cette technologie notamment dans le cadre de projets hors UPSA. De plus, je me suis inscrit à plusieurs newsletters afin de me tenir informé sur les dernières actualités de la technologie. A l’évidence, cette technologie a de beaux jours devant elle et sera à l’avenir une compétence de plus en plus recherchée par les recruteurs.
Je conseillerais aux personnes qui souhaiteraient maîtriser cette compétence
de se documenter
tout d’abord sur
l’architecture « BloC ». Cette structure de code donne un réel avantage de scalabilité et de flexibilité à vos
applications. De très bons articles expliquent ce concept comme celui-ci
https://medium.com/flutter-community/flutter-bloc-for-beginners-839e22adb9f5.
Sinon, l’apprentissage du SDK flutter est assez simple, de plus, il dispose d’une documentation très claire et
exhaustive sur internet.