Moderniser une application mobile avec Flutter

modernisation d’une application métier avec Flutter

Votre application métier (logiciel web ou application mobile) devient problématique à maintenir sur vos différentes plateformes. Elle vous coûte plus cher qu’elle ne vous rapporte en productivité ? C’est qu’il est temps de la  moderniser via une solution cross plateforme. C’est ce que promet Flutter, le framework développé par Google. 

Nous verrons dans cet article : 

  • Les signes d’alertes qui mènent à la modernisation d’un système applicatif. 
  • Ce que peut vous apporter l’utilisation d’un langage cross plateforme. 
  • Et enfin comment s’opère la modernisation d’une application métier avec Flutter. 
Sommaire
 

Pourquoi moderniser : Les signes d’alerte

Le principe d’une application métier est qu’à travers la digitalisation de vos processus métiers, vous profitez d’une productivité optimisée de vos collaborateurs et de votre entreprise. Une application ou plateforme d’entreprise permet à terme de bénéficier d’un avantage concurrentiel clé face à vos concurrents. 

 

Au quotidien, votre solution logicielle doit vous simplifier la vie et vous faire gagner en performance, et non l’inverse. Si vous avez des problématiques récurrentes qui freinent les évolutions de vos applications web et mobiles, il est temps de faire le point. 

Voici les problématiques qui doivent vous alerter pour moderniser votre application. 

La maintenance est problématique

Il est normal de faire des maintenances. Elles peuvent être correctives, c’est-à-dire traiter des bugs et corriger des dysfonctionnements de manière générale, ou évolutives avec l’ajout de nouvelles fonctionnalités. Cependant,  si votre application devient difficile à maintenir, cela peut être le signe que votre application est de mauvaise qualité. 

Les situations qui doivent vous alerter lors de la maintenance : 

  • Les demandes d’évolutions sont difficiles à mettre en œuvre
  • L’ajout de fonctionnalité est lent
  • Les performances se dégradent
  • Les bugs et dysfonctionnements sont imprévisibles

Ceci ouvre la voie à l’enchevêtrement de points de douleurs : vos utilisateurs sont mécontents, vos frais de maintenance explosent, ou encore la coordination de vos équipes de développement réparties sur les différentes technologies devient laborieuse… 

Les technologies sont problématiques ou obsolètes

Dans le monde numérique, les tendances et technologies évoluent très vite. En moyenne, ce qui est admis aujourd’hui ne l’est généralement plus au bout de deux ans. Si une entreprise ne fait que repousser la révision de son application, elle risque des incompatibilités liées à de nouvelles mises à jour et surtout des risques de cybersécurité.

Concrètement, cette insécurité se traduit en data breach, lorsqu’il y a un vol de données à partir de failles présentes dans votre code. Ces failles, favorisées par l’obsolescence, se développent dans des composants, eux-mêmes obsolètes ou laissés à l’abandon. D’après le rapport de 2022 de Synopsys sur l’étude de la sécurité et des risques open source, cette présence, de composants obsolètes ou laissés à l’abandon, concerne 9 applications métiers sur 10 !

Les utilisateurs se plaignent

Au quotidien, vous rencontrez des inconforts plus ou moins contraignants dans l’utilisation de votre application métier. Chose d’autant plus vérifiable auprès de vos collaborateurs et utilisateurs. Pour ne citer que ces exemples : votre application souffre de praticité ou bien d’une apparence qui manque de modernité. 

La dette technique

L’ensemble de ces éléments de douleur (risques accrus de failles de sécurité, indisponibilité aux mises à jour, complaintes…) sont des signaux qu’il faut procéder à la modernisation de votre application. 

Cette opération consistera à réduire (voire supprimer) la dette technique de votre application : le capital de problématiques qui porte préjudice à la pérennité de vos processus métiers. Cette dette sera plus ou moins pénalisante selon les niveaux de difficulté des situations suivantes : 

  • Les technologies utilisées ne sont plus maintenues, obsolètes ou sur le point de le devenir
  • Vous n’êtes pas satisfait(e) des fonctionnalités de l’application
  • Vous devez incrémenter une fonctionnalité majeure, mais les technologies utilisées dans l’application posent problème
  • Les utilisateurs se plaignent de l’application
  • Les frais de maintenance sont démesurés ou augmentent fortement
  • L’application ne dispose pas de plans de tests automatisés
  • Les développeurs et/ou les compétences nécessaires ne sont plus disponibles
  • L’application a des problèmes de conception importants

Pour se faire une idée de l’état actuel  de votre application, nous mettons à disposition un diagnostic gratuit qui ne requiert aucune compétence technique particulière. 

Pour réduire cette dette technique et regagner en compétitivité sur le plan numérique, vous pouvez moderniser votre application métier de plusieurs manières. Celle que nous recommandons le plus est de moderniser pas à pas. Elle consiste à amener le changement en plusieurs blocs (fonctionnels et/ou techniques) selon les actions à mener en priorité. Une façon de faire qui sera d’autant plus bénéfique dans le cadre d’une modernisation via la réécriture du code. Ce qui est sous-entendu lorsque l’on souhaite transposer son application d’un développement natif vers un développement multiplateforme, pour en finir avec les problèmes de transposabilité entre les environnements. 

Flutter : les avantages du langage cross plateforme

Tout développement est conduit vers l’optimisation des tâches. C’est pourquoi il y a un objectif universellement partagé chez les développeurs : “build once, run everywhere” (coder une fois pour déployer sur toutes les plateformes). C’est le principe d’un langage de programmation multiplateforme comme celui de Flutter

Aux origines de l’élaboration de votre application métier, vous avez dû faire le choix entre un premier développement sur une première plateforme (Android, iOS ou Web), qui précède d’autres développements selon votre stratégie de déploiement sur les autres plateformes. Plusieurs codes sont alors développés, pour ne citer que Swift ou C+ pour iOS, Java et Kotlin pour Android.

Avec Flutter, vous n’aurez qu’un seul code avec le même langage que ce soit pour n’importe quelle plateforme. La gestion des problèmes et la conduite du changement sont facilitées. Si l’envie vous prend de déployer votre application sur un énième environnement (exemple en application web) cela se fera facilement à partir du même code (avec les mêmes développeurs et les mêmes compétences techniques). 

Dans l’extrême majorité des projets de développement, il n’y aura plus besoin de code différent pour chaque environnement (iOS, Android, Windows, Mac, Linux, Google Fuchsia et web).

Voici une liste des avantages de Flutter :

  • Gain de temps assuré 
  • Marge d’erreur de transposition supprimée
  • Temps de développement divisé et réduit à un seul exercice de codage plutôt que d’avoir un développement par environnement
  • Efforts de résolution de problèmes canalisés dans un seul univers plutôt qu’éparpillés par code natif
  • Besoin de spécialisation technique réduit à un seul langage de programmation (Flutter) plutôt que disséminé sur plusieurs (C#, C, C++, JavaScript, etc.)

Pour les développeurs, ce système centralisé offre un réel confort d’utilisation. La technologie Flutter ne reposant pas sur des navigateurs web ou des widgets natifs propres à chaque appareil, il utilise son propre moteur et générateur de widget. Un développeur pourra aisément passer d’une plateforme à une autre en travaillant sur une même interface utilisateur installée virtuellement.

Enfin, pour terminer sur ce point, la version 3 de Flutter a été lancée en mai 2022. Depuis, plus de 400 000 applications ont été développées sur plusieurs centaines de millions d’appareils. C’est aujourd’hui un langage de programmation fiable, reposant sur l’open source. Avec à disposition une large documentation sur GitHub où vous retrouverez un ensemble de résolution de problèmes. 

Comment fonctionne Flutter ?

À l’origine développé en 2015 sous le nom Sky, le principe de Flutter est de développer et de créer un seul code à destination de tous les types d’applications : iOS, Android, Windows, Mac, Linux, Google Fuchsia et web. C’est en cela que c’est un langage multiplateforme. 

Flutter est développé par Google avec C, C++, Dart et Skia (un moteur de rendu 2D), sur l’intention d’être en concurrence direct avec JavaScript. La majorité de ses composants sont implémentés par son propre système dans Dart. Framework, widgets, animations, etc. tout ceci est développé sur un langage orienté objet qui facilite les créations et modifications de code. 

Un moteur d’exécution just-in-time (JIT) permet de faire tourner facilement les applications construites pour ARMv7 ou ARM64 sur des appareils Android-x86, ce qui assure la protection contre les cyberattaques. De surcroît, un système de compilation ahead-of-time (AOT) supporté par x86_64, armeabi-v7a et arm64-v8a, permet la vue d’ensemble du code. 

Flutter se base ainsi sur un framework avec : 

  • Un moteur runtime portable qui met en œuvre les bibliothèques d’animations, de graphismes, de plugins, etc. et de compilation Dart. 
  • Une bibliothèque Fondation qui dispose de classes et de fonctions utiles à la construction d’applications, semblable au fonctionnement d’une API 
  • Des widgets (boutons, conteneurs, animations…), spécifiques à Flutter, qui s’adaptent automatiquement à l’endroit exact où vous souhaitez sur votre application

Pour finir, à partir de Skia, Flutter permet le développement avec la visualisation directe. À partir de la même base de code, sur n’importe quel environnement, les composants de l’application (établi par widgets) donnent l’apparence en fonction de leur configuration et de leur état. Le navigateur n’a plus besoin de compiler le code au moment de l’exécution, il peut directement restituer l’application telle quelle. 

Si bien qu’à terme, cela permet une extrême agilité dans le développement d’applications métier et une économie de la charge de processeur.

illustration Flutter

Comment se déroule la modernisation d'une application métier avec Flutter ?

De manière générale, moderniser une application demande la réécriture (totale ou d’une partie) de son code. Et c’est cette réécriture qu’il faut aborder avec réflexion. 

On peut se demander quel framework utiliser pour la réécriture du code ? 

Flutter sera la solution plébiscitée pour en finir avec les difficultés à maintenir de nombreuses applications développées pour les différentes plateformes. Elle l’est aussi pour en finir avec l’hétérogénéité d’expérience utilisateur selon que celui-ci soit sur Android ou iPhone. Dans une démarche d’économie RH,  Flutter permet aussi de concentrer les besoins de développeurs et compétences techniques sur un langage de programmation unique pour toutes les plateformes. 

Dans le cadre de cette réécriture via Flutter, il ne s’agirait pas d’un Big Bang nécessitant l’arrêt total de l’ancienne application. Chez AxioCode, nous préférons aborder la modernisation pas à pas : réécrire son code bloc par bloc, avec la priorisation des mises à jour à effectuer, de sorte à assurer une amélioration continue de son système, parce que cela évite : 

  • L’insatisfaction des utilisateurs qui pourraient se retrouver frustrés et perdus face à une application recréée à neuf
  • Un développement imprévisible
  • Un budget dépassé 

L’utilisation de Flutter permet une réécriture de votre système applicatif de manière uniforme. Le développement est instantané pour toutes les plateformes déterminées. Vous n’aurez plus à coder en double (voire triple), avec l’ensemble des inconvénients de transposabilité que cela implique. Allié avec une méthode pas à pas, Flutter permet ainsi :

  • De développer plus vite
  • De dépenser moins de ressources 
  • D’éviter les risques d’erreurs

Conclusion

Moderniser une application métier s’impose lorsque celle-ci devient difficile à maintenir. L’avantage concurrentiel qu’elle doit vous faire gagner se brouille, les frais de maintenance explosent, ou encore l’expérience utilisateur est mise à mal à cause de bugs de transposition entre les différents environnements de vos versions d’applications ? 

Cette modernisation va passer par la réécriture, bloc par bloc, de votre code de sorte que vous n’ayez qu’un code unique qui s’appliquera pour toutes les plateformes nécessaires désirées (iOS, Android, Windows, Mac, Linux, Google Fuchsia et web). 

Dans cette réécriture de code, AxioCode peut vous accompagner. Nos développeurs travaillent selon une méthodologie éprouvée de sorte à assurer une modernisation de logiciel métier optimale, rapide et qui respecte les budgets alloués. 

Si notre savoir-faire  vous intéresse et que vous avez un projet de logiciel web ou application mobile, ou que vous envisagez une modernisation et souhaitez être accompagné(e), vous pouvez nous contacter ici