Flutter serait devenu le SDK mobile multiplateforme le plus populaire
Pour rappel, Flutter est un SDK gratuit et open source créé à la base par Google pour le développement d'applications mobiles multiplateformes. À l'aide d'une base de code unique indépendante de la plateforme, Flutter aide les développeurs à créer des applications performantes et évolutives dotées d'interfaces utilisateur attrayantes et fonctionnelles pour Android ou iOS. Flutter s'appuie sur une bibliothèque de widgets préfabriqués qui permettent même aux personnes ayant une expérience limitée de la programmation ou du développement de lancer rapidement leurs propres applications mobiles. Il a été créé en 2015, mais a été lancé officiellement en 2018.
Ces dernières années, Google a étendu son SDK afin de permettre aux développeurs de l'utiliser pour créer des applications pour Windows et pour le Web. Avec la sortie de Flutter 2.10 au début du mois, Google a annoncé que "Flutter for Windows" était prêt pour un environnement de production. Ainsi, Flutter serait rapidement devenu le SDK de choix des développeurs d'applications. Selon Statista, Flutter a récemment dépassé React Native de Facebook pour devenir le framework de développement d'applications mobiles numéro un. Le site allemand d'analyse statistique estime qu'en 2021, au moins 42 % des développeurs de logiciels ont utilisé Flutter.
Alors, pourquoi Flutter est-il si populaire auprès des développeurs d'application mobile ? Selon Theodoros Karasavvas, qui écrit sur les tendances technologiques, la popularité de Flutter a grimpé en flèche pour une très bonne raison. Il estime que Flutter offre aux développeurs un large éventail d'avantages qui accélèrent le développement et conduisent à des applications mobiles plus conviviales. Dans une tribune publiée sur le site de programmation informatique Stack Overflow, Karasavvas a listé les principales caractéristiques qui, selon lui, font de Flutter le meilleur dans son domaine.
Flutter est indépendant de la plateforme
Selon lui, tout développeur qui prévoit de lancer une application mobile sait combien il est important de disposer de versions pour Android et iOS. Android maintient une emprise ferme sur le marché mobile avec une part de marché de près de 70 %. Mais iOS compte également un grand nombre d'utilisateurs, avec une part de marché de 29,49 %. Ainsi, il estime qu'en se concentrant sur la création d'une seule application native, l'on ignore une grande partie du marché et on limite le succès potentiel futur de l'application. Mais le développement d'applications natives distinctes peut prendre beaucoup de temps et être coûteux.
« Flutter simplifie le développement multiplateforme. Plutôt que de créer un code distinct pour chaque plateforme, les développeurs peuvent tirer parti de la base de code unique de Flutter. Mais l'adéquation de Flutter au développement multiplateforme va au-delà de la portabilité du code. Contrairement à d'autres frameworks multiplateformes tels que React Native et Xamarin, les interfaces utilisateur (IU) construites par Flutter sont également agnostiques par rapport à la plateforme, car le moteur de rendu Skia de Flutter ne nécessite aucun composant IU spécifique à la plateforme », a déclaré Karasavvas.
Flutter simplifie et accélère le développement
Flutter possèderait de nombreuses fonctionnalités différentes qui rendent le développement d'applications mobiles multiplateformes plus simple et plus rapide. Le plus évident serait sans doute la possibilité de s'appuyer sur une base de code et un moteur d'interface utilisateur uniques pour le développement multiplateforme, ce qui réduirait l'effort nécessaire pour produire des versions d'une application pour Android et iOS. Selon Karasavvas, la vaste bibliothèque de widgets de Flutter permet également aux développeurs d'accéder facilement à des fonctionnalités prêtes à l'emploi, ce qui réduit le temps de codage global.
« Qui dit temps de codage réduit dit coûts de développement réduits », a-t-il déclaré. Karasavvas explique que l'une des caractéristiques les plus importantes de Flutter pour réduire le temps de développement est sa capacité de rechargement à chaud. Le rechargement à chaud, qui s'appuie sur la compilation JIT, accélère la mise en œuvre des modifications apportées au code. Dans le cas du rechargement à chaud, Flutter insère les changements de code dans une VM (machine virtuelle) Dart en cours d'exécution sans modifier les états préservés.
Comme il n'y a pas de recompilation complète du code de l'application, le rechargement à chaud présente plus rapidement les effets des révisions du code. Le rechargement à chaud permet aux développeurs de voir l'effet des changements en temps réel sans modifier l'état actuel de l'application. Ainsi, les développeurs peuvent tester plus rapidement les fonctionnalités et les versions, ainsi que corriger les bogues. Il faut théoriquement donc moins de temps pour mettre sur le marché les applications initiales et les mises à jour. Flutter serait donc optimal pour la création et la diffusion d'applications MVP (minimum viable product).
« En raison de son efficacité, Flutter est un excellent choix pour les startups disposant de fonds limités. Par exemple, une startup peut avoir déjà investi au moins 75 dollars de l'heure dans un concepteur Web et devra faire face à des coûts similaires ou plus élevés pour les développeurs d'applications. Flutter constitue un outil de développement efficace pour les entreprises soucieuses des coûts en réduisant le temps de développement et en accélérant la mise sur le marché des produits », a-t-il conclu sur ce point.
Flutter est facile à apprendre et à utiliser
À en croire Karasavvas, Flutter est facile à prendre en main, que vous ayez ou non une grande expérience du développement. Selon lui, les développeurs qui travaillent souvent avec d'autres langages tels que Java, Python, C# ou d'autres langages orientés objet n'auront aucun problème à ajouter Flutter et Dart à leur répertoire, car Dart est structurellement et syntaxiquement semblable à ces langages. En outre, pour ceux qui ont moins d'expérience en matière de développement, Karasavvas pense que la vaste bibliothèque de widgets de Flutter facilite la création d'applications sans avoir à écrire beaucoup de code.
Il estime que plusieurs plateformes utilisent Flutter pour créer des applications sans avoir à écrire le moindre code. Flutter disposerait également d'une excellente documentation. En plus du manuel de référence général, les ressources d'aide de Flutter comprennent de nombreux exemples d'applications, un "livre de recettes" montrant aux développeurs comment accomplir des tâches courantes, et même une recommandation pour un camp d'entraînement Flutter. Mais la large adoption de Flutter aurait créé une communauté florissante qui fournit de l'aide et des ressources aux développeurs Flutter, nouveaux ou expérimentés.
Flutter s'adapte bien aux changements
Les développeurs doivent pouvoir facilement ajouter des fonctionnalités ou augmenter la base d'utilisateurs d'une application sans la casser. Pour cela, Flutter utilise l'application Firebase de Google en arrière-plan, qui a été conçue dans un souci d'évolutivité. Firebase fournit des mises à jour de la base de données en temps réel, ce qui permet de garantir une synchronisation rapide des données entre les clients. Firebase optimise et minimise également le nombre de mises à jour nécessaires à la synchronisation, ce qui, selon Karasavvas, signifie que l'ajout de fonctionnalités pour les utilisateurs n'a pas d'impact négatif sur les performances.
Flutter offre une excellente expérience utilisateur
« Pour que les applications mobiles connaissent un véritable succès, elles doivent avoir des interfaces utilisateur bien conçues, attrayantes et fonctionnelles. Et Flutter excelle dans la création d'une expérience utilisateur exceptionnelle », a déclaré Karasavvas. Le catalogue de widgets intégré de Flutter se concentrerait sur la fourniture d'éléments d'application performants et visuellement passionnants. La création d'interfaces utilisateur, des plus basiques aux plus complexes avec de multiples composants, est presque sans effort avec Flutter.
Les applications Flutter sont compilées directement en code natif, sans nécessiter d'étapes intermédiaires d'interprétation du code. « Par rapport à d'autres applications de développement multiplateforme comme React Native qui nécessitent des ponts entre leur code et les éléments natifs, Flutter élimine les étapes de traitement supplémentaires qui diminuent les performances, ce qui le rend sensiblement plus rapide », a-t-il ajouté.
Quels sont les inconvénients de l'utilisation de Flutter ?
Comme tout autre SDK, Flutter n'est pas parfait. Karasavvas estime que si ses faiblesses sont plus que compensées par ses avantages, les développeurs potentiels de Flutter doivent néanmoins être conscients de ses limites. Voici quelques-unes qu'il a citées.
Des applications de grandes tailles
La taille des applications est une préoccupation majeure pour de nombreux développeurs. Bien que la plupart des appareils mobiles disposent d'un espace de stockage généreux, de nombreuses photos, vidéos et jeux à forte intensité graphique peuvent rapidement remplir un appareil à ras bord. Et plus l'appareil est ancien, plus le problème est important. Cela dit, les applications Flutter sont autonomes et contiennent tout le code nécessaire à leur fonctionnement, plutôt que de dépendre d'éléments de la plateforme, ce qui donne lieu à des applications plus volumineuses que les autres.
Karasavvas est d'avis avec le fait que pour les développeurs qui cherchent à séduire le plus grand nombre d'utilisateurs potentiels, la taille des applications Flutter peut être problématique et conduire le développeur à choisir un autre langage.
Manque de bibliothèques tierces
L'accès à des bibliothèques tierces permet de réduire le temps et les coûts de développement, et de nombreux développeurs s'appuient fortement sur des ressources tierces. Le catalogue de widgets intégrés de Flutter est vaste, et le site officiel des paquets de Flutter propose des milliers d'options. Mais comme Flutter est encore relativement jeune, les bibliothèques tierces disposent encore de moins de ressources que celles disponibles pour d'autres outils de développement.
Toutefois, Karasavvas a déclaré que l'environnement tiers de Flutter se développe rapidement à mesure que les utilisateurs passent à Flutter, et vous pouvez vous attendre à ce que ce problème s'estompe au fil du temps.
Non prise en charge de certaines plateformes populaires
Pour l'instant, le nombre de plateformes sur lesquelles les applications Flutter fonctionnent est limité : Android, iOS, Google Fuchsia, Linux, macOS, Windows et le Web. Par exemple, vous ne pouvez pas développer des applications watchOS ou tvOS, ou Apple CarPlay en utilisant Flutter. Avec des ventes totales de montres connectées qui devraient atteindre un quart de milliards d'unités dans les cinq prochaines années, il s'agit d'une limitation critique. Selon Karasavvas, Flutter tente de résoudre ce problème en proposant des solutions de contournement, comme l'ajout d'extensions natives Apple Watch aux applications Flutter.
Vous devez apprendre Dart
Pour utiliser Flutter, vous devez connaître le langage de programmation Dart de Google. Bien que Dart ne soit pas si difficile à apprendre pour les programmeurs orientés objet, il n'est pas aussi largement connu ou utilisé que d'autres langages orientés objet tels que C#, Java et JavaScript. Par conséquent, les développeurs désireux de se lancer rapidement sur le marché risquent d'ignorer Flutter en raison de cet ajout à la courbe d'apprentissage.
Il pourrait être meilleur sur Android que sur iOS
Selon Karasavvas, il ne faut pas s'étonner que les fonctionnalités de Flutter soient meilleures sur Android que sur iOS. Il existerait déjà des exemples de fonctionnalités iOS en retard sur Android au fur et à mesure que les corrections et les mises à jour de Flutter arrivent sur le marché. Rappelons que si Google est à l'origine de Flutter, il est également le développeur d'Android. En sus, son système d'exploitation représente la grande majorité du marché mobile.
Comme Flutter est un produit Google, les développeurs Android sont plus nombreux à l'utiliser que les développeurs iOS. Et, selon Karasavvas, il semblerait que les nouvelles fonctionnalités d'Android soient intégrées à Flutter plus rapidement que celles d'iOS. Les développeurs qui se concentrent sur le marché iOS devraient donc garder un œil sur les futures versions de Flutter.
Que réserve l'avenir à Flutter ?
« Après une augmentation explosive de son utilisation au cours des trois dernières années, la part de marché de Flutter commence à plafonner. Mais les développeurs ne doivent pas y voir le signe d'une disparition prochaine de Flutter. On peut seulement supposer que la popularité actuelle de l'outil incitera Google à tenter de résoudre certains des problèmes les plus problématiques de Flutter, notamment la taille des applications, et que le manque de ressources tierces se résoudra de lui-même », a déclaré Karasavvas.
« Étant donné la simplicité et la puissance de Flutter, il continuera probablement à être largement utilisé par les développeurs. De nouveaux outils à la mode tenteront-ils de supplanter Flutter ? C'est presque certain. Mais les perspectives de Flutter restent brillantes dans un avenir prévisible. », a-t-il conclu.
Sources : StatCounter : parts de marché des OS mobiles, Statista : popularité de Flutter, Theodoros Karasavvas
Et vous ?
Quel est votre avis sur le sujet ?
Que pensez-vous de la popularité de Flutter auprès des développeurs mobiles ?
Voir aussi
Flutter 2.10 est disponible avec la prise en charge en production des applications Windows, le framework de dev multiplateformes de Google est désormais utilisé par près d'un demi-million d'apps
Flutter : un projet open source qui supporte la construction d'applications mobiles 2D multiplateformes pour iOS et Android
Ubuntu fait de Flutter un « choix par défaut » pour les futures applications de bureau, Canonical veut parier sur le futur du framework libre et open source de développement d'UI proposé par Google
La version 2 du SDK Flutter de Google est disponible avec la prise en charge des applications de bureau et Web, ainsi que le support pour les appareils pliables et embarqués
Google lance Flutter 1.0, son SDK pour développement Mobile Android et iOS, la toute première version stable et native