IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Pourquoi Flutter est le SDK mobile multiplateforme le plus populaire ?
42 % des développeurs de logiciels dans le monde l'utilisent désormais

Le , par Bill Fassinou

989PARTAGES

10  0 
Environ 5 ans après son lancement, Flutter serait devenu le SDK mobile multiplateforme le plus populaire utilisé par les développeurs du monde entier. Selon une enquête menée auprès des développeurs en 2021 par le site de statistiques Statista, 42 % des développeurs de logiciels utilisent Flutter. Dans l'ensemble, environ un tiers des développeurs mobiles utilisent des technologies ou des SDK multiplateformes ; le reste des développeurs mobiles utilisent des outils natifs. Si Flutter possède également des faiblesses, ses avantages semblent l'emporter sur ses inconvénients.

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

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Kikuts
Membre éprouvé https://www.developpez.com
Le 23/02/2022 à 16:59
J'ai plus de 6 ans d'expérience sur Xamarin Forms et quasi 1 an sur Flutter (avant Flutter j'avais déjà fait un site web avec Angulart et Dart (du front au backend oui oui : j'ai bien dit backend, juste pour tester la tech).

Et bien j'avoue que côté UI, Flutter permet de réaliser une UI bien plus belle (sans rien changer des composants : en les utilisant sans fioriture, personnalisation etc).
Même si je pense que Xamarin, dès lors qu'on privilégie le XAML au C#, donne une meilleure productivité que Flutter (réorganiser la structure, changer l'agencement, ce genre de chose),
la richesse des composants Flutter et de la documentation permettent de rattraper le retard et même d'aller bien plus vite au final.

Le hot reload de Flutter met à l'amende le pseudo hot reload offert par Visual Studio (et de loin).

J'ai adoré Dart. Même si je préfère C#, la simplicité de Dart évite de perdre des heures en relecture de code parce que des devs ne sont pas d'accord sur le choix d'un type d'objet.
Exempe :
- oh moi je verrai plus un IReadOnlyDictionary
- tu es fou ! Un IEnumerable suffit !
- mais non les gars, vous n'y êtes pas du tout, faut utiliser une IList
- vous me faites halluciner : pourquoi aurait-on besoin d'exposer l'interface alors que ce bon List suffit ?
- moi je préfère les array donc faites comme vous voulez...
- ba en fait, ce code est exécuté sur le DbContext donc faut retourner IQueryable
- oui mais on partage aussi ce bout de code avec les règles de validations métiers donc IEnumerable je vous dis ! ou alors on surcharge
...
2 jours après, on y est encore

En Dart, pas de prise de tête, on utilise soit une liste, soit un dictionnaire et basta (oui il y a aussi les queue, linkedlist etc mais ça ne sert pas aussi souvent que les 2 principaux)

Par contre, pour produire des grosses applis (bien que possible) j'ai vraiment le sentiment que Xamarin est bien au dessus. Peut être une question d'habitude me direz-vous.
Et si jamais il existe un backend en .NET Core ou .NET 5/6 alors là, Xamarin prend encore plus de distance.

Je n'ai pas énormément accroché avec Sink Stream et le pattern Bloc. Bien que très séduisant, en condition réelle, j'avais pas l'impression d'être très productif et de me poser souvent des questions.
Certains utilisent des singletons à tout va, d'autres utilisent des callback partout, ce n'est pas mon genre : je voulais respecter le pattern.
Alors qu'en C# et ce bon INotifyPropertyChanged, c'est super facile de rafraichir une portion de la page et d'avancer "tranquillou"

Du coup, je pense que pour avoir un niveau correcte en Dart/Flutter, c'est loin d'être aussi rapide que ce que la communauté ne laisse penser.

Oui faire un count++ ou une UI avec 1 niveau de navigation, on a un truc super sympa et vite fait. Mais pour ce genre de petit projet, n'importe quelle techno fait le taff.

Si jamais d'autres dév aguerris ayant survolés ces problématiques acceptaient de partager avec moi en privé ou sur discord ou autre, ça serait trop cool

Je reprécise que Dart/Flutter est une des technos que je préfère. Je ne dis pas du mal gratuitement, c'est une critique basée sur mon retour d'expérience.
2  0 
Avatar de emilie77
Membre éprouvé https://www.developpez.com
Le 23/02/2022 à 11:16
Mes raisons:
- GUI moderne
- on peut faire des GUI desktop
- maintenu par Google
- documentations
- dart
- fonctionne sans gros problemes
1  0 
Avatar de Turvy
Membre confirmé https://www.developpez.com
Le 23/02/2022 à 20:51
Ayant une certaine expérience en développement mobile, natif, React et Flutter depuis presqu'un an, je mettrais quelques bémols sur ce qui est dit.

Oui, les UI sont comme avec une application native, mais contrairement au React où tout est une View, dans Flutter, les composants sont à usage unique, c'est à dire qu'un Text affiche du text formatté et c'est tout. Pour rajouter un margin ou padding, vous devez l'englober dans un autre composant. Au final, le moindre écran prends beaucoup de ligne de code. Des lignes quasi vides, mais rendent la lecture pas toujours aisée.

Pour ma part, le framework manque de maturité vis à vis des capteurs du téléphone (bluetooth dans mon cas).

Pour les points positifs :
- développement sur Android Studio
- dart pas si compliqué à prendre en main. A part les Future et Stream au début, le reste coule tout seul.
- possibilité de Redux et Hook comme sur React (pour ceux qui veulent faire la transition)
0  0 
Avatar de nickylarson
Membre habitué https://www.developpez.com
Le 24/02/2022 à 23:50
La richesse des composants , la vitesse de développement (la version 2.10. Vient de sortir), sa capacité à être connecté aux langage mobile natifs android ou ios et autres (JavaScript, c++…). J’ai perso été amené à interface une app flutter web avec du js sans trop de difficultés.

La force de Flutter c’est pour moi sa communauté, la com, les events.

Je pense que la difficulté pourrait résider dans l’approche souhaitée pour gérer les states dans le cas de grosse applications.

Mais une fois le choix fait ça roule.

Je n’ai jamais accroché à Xamarin , Reac pour le mobile non plus et Cordova même si ça depannait ça restait pas terrible en perf… le jour et la nuit avec Flutter
0  0