Flutter bouleverse le développement mobile : notre aventure avec le framework
Frédéric Dinand
Publié le 6 septembre 2022 - 3 min de lecture
Natif ou Flutter, toute une histoire 📖
Il fut un temps chez Playmoweb, où le développement d’applications mobiles en natif était une évidence lorsque nous débutions un projet.
Pendant longtemps, le développement natif était vu par les développeurs·euses comme la manière la plus optimale pour réaliser une application performante, d’une qualité visuelle et d’une ergonomie irréprochable.
De leur côté, les technologies multiplateformes ou hybrides ont longtemps été méprisées au détriment du natif, réputé de meilleure qualité.
Cependant, des lignes de code ont coulé sous les ponts depuis l’apparition de ces dernières. Les habitudes des développeurs·euses ont eu le temps de changer.
Aujourd’hui, de nombreux projets se basent sur ces technologies nouvelles. Et c’est notamment le cas chez Playmoweb, où nous avons su intégrer le multiplateforme à nos services sans pour autant dénigrer le natif.
Multiplatformes, hybride, quelles différences ❓
Avant d’entrer dans le vif du sujet, il est primordial de comprendre ce que ces termes signifient. Il faut savoir identifier les différences des technologies se cachant derrière.
De manière générale, ces dernières permettent de développer une application sur plusieurs plateformes en écrivant un seul code source.
C’est l’avantage principal par rapport au natif. Lui, nécessite d’écrire par exemple un code source en langage Swift pour une application sur iOS, et en langage Kotlin pour une application sur Android.
Multiplatformes
Généralement appelé “cross-platform” dans la communauté dev, le multiplateforme a conquis de nombreux·euses développeurs·euses.
Il existe désormais plusieurs grands frameworks très répandus : Flutter, React Native, Xamarin, pour n’en citer que quelques-uns.
Il existe un point commun entre ces trois derniers.
Contrairement à beaucoup d’autres, ils redessinent entièrement l’interface, ou se basent sur des composants natifs au système. C’est ce qui leur permet d’assurer un gros gain de performance et de faire face à leurs concurrents.
Hybride
Il est important de ne pas confondre solution multiplateforme et hybride. Elles n’ont pas grand chose en commun, si ce n’est d’être des applications mobiles.
Là où les applications multiplateformes gardent un lien étroit avec le natif, les applications hybrides s’en abstraient quasiment totalement.
Les applications hybrides se basent sur des technologies et langages propres au web pour fonctionner (HTML, CSS, Js). Le code est exécuté dans une web view, qui est en soi un conteneur semblable à un navigateur internet.
De par leur conception, les frameworks hybrides possèdent plus de couches d’abstraction entre le code et le système que les frameworks multiplateformes. Et cela se ressent forcément dans les performances.
Playmoweb + natif = ❤️
Pendant longtemps, nous avons considéré le natif comme une évidence pour réaliser une application mobile.
Cela s’explique par le fait que, même aujourd’hui, le natif permet d’obtenir des performances optimales et un rendu visuel parfait.
Étant donné que le langage a été conçu spécifiquement pour la plateforme sur laquelle l’application est exécutée, rien n’est surprenant. C’est d’autant plus vrai pour les projets conséquents, qui nécessitent une grande fluidité et des performances importantes.
C’est pour ces raisons que nous développons toujours des applications natives, qui n’ont pour nous plus aucun secret.
De plus, il est important de rappeler que Playmoweb existe depuis 2013, et qu’à cette époque, le multiplateforme existait déjà, mais n’était pas aussi qualitatif qu’aujourd’hui.
Certains des principaux frameworks d’aujourd’hui tels que Flutter ou React Native n’existaient même pas !
Depuis 2019, nous développons sur Flutter (qui était à ce moment-là une étoile montante du développement multiplateforme), et tentons de changer notre façon de voir le développement d’applications mobiles (SPOILER : elle a changé).
Quel bonheur de n’avoir à écrire qu’une seule fois le code source pour cibler iOS et Android, tout en obtenant une application fluide et qualitative ! Nous venions de découvrir une nouvelle façon de développer certaines de nos applications. Vous pouvez consulter certains de nos projets développés en Flutter ici et là.
On fait le bilan calmement 😌
À l’heure où on écrit ces lignes, c’est environ 30% de nos projets qui sont réalisés avec Flutter, dont une bibliothèque open source permettant d’éditer du Markdown.
Et les avantages sont nombreux : intégration de nouvelles fonctionnalités, résolution de bugs et maintien dans le temps facilité par la présence d’un seul et même code source, rafraîchissement de l’application à chaque changement dans le code sans avoir à recompilier (hot reload), coûts de développement…
Le grand plus de Flutter est qu’il dispose d’une communauté très active et qui grandit de jours en jours. De nouvelles fonctionnalités voient le jour régulièrement, et les plateformes supportées sont de plus en plus nombreuses. Si nous devions développer une application sur mobile et sur bureau (macOS, Windows ou Linux), nous choisirions probablement Flutter pour cette raison.
Évidemment, nous ne sommes pas prêts de mettre le natif de côté, bien au contraire. Chaque projet est différent par sa taille, sa nature ou ses fonctionnalités. C’est pourquoi certains nécessiteront du natif tandis que d’autres nous permettront d’utiliser Flutter.