Pourquoi utiliser Flutter ?
Tout d’abord, petit rappel du nouveau SDK proposé par Google. Flutter est un kit de développement ou un framework mis en place par Google pour créer rapidement des applications iOS et Android. Il est depuis le 4 décembre 2018 en version stable. Chez hmwk. nous avons suivi de près son évolution bêta sur toute l’année 2017-2018, et nous avons décidé de franchir le pas sur le développement d’une première application en janvier 2019. On vous propose donc aujourd’hui cet article “Flutter : mon avis sur ma première application“.
Dans cet article, je vais revenir sur les points forts de flutter que j’ai pu rencontrer tout au long de ce projet, mais aussi aborder ses points faibles. Bien entendu, cet avis reste subjectif. Personnellement, je peux déjà vous dire que j’ai trouvé bien plus de points forts que de points faibles en ce qui concerne le framework de Google.
Je vais donc séparer mes retours en trois blocs pour cet article : un retour sur l’IDE (environnement de développement) utilisé, un retour sur le côté visuel, et pour finir un retour sur le côté “programmatically.”
IDE compatible Flutter
La documentation officielle de Flutter propose d’utiliser comme IDE Android Studio, IntelliJ ou encore Visual Studio Code. Je suis parti sur Android Studio pour cette première application, vu qu’il était déjà installé sur mon poste de travail. Pour une bonne utilisation, il faut au minimum la version 3.0 et installer les plugins Flutter et Dart.
Voilà, c’est vraiment tout simple au niveau de l’environnement de développement. Dans cet article, je n’expliquerai pas le téléchargement du SDK Flutter, ni la configuration à faire, ce n’est pas le but. il y a en effet déjà pleins de tutoriels, et c’est vraiment simplissime. Nous aborderons le sujet en surface pour répondre à la question “Flutter : mon avis sur ma première application“. Du coup, un point positif de gagné, car si vous avez déjà développé des applications Android, l’IDE vous sera familier.
Flutter, une interface utilisateur belle et rapide
Maintenant qu’on a parlé de l’environnement de développement, place à une partie plus concrète : l’UI de votre application. Au premier abord, un point négatif pour les développeurs déjà formés au développement natif Android et iOS. Ici, on utilise le langage Dart. Personnellement, je n’avais jamais utilisé ce langage, et je pense qu’il sera inconnu pour beaucoup de développeurs. C’est donc un point faible.
Mais tout s’apprend, et là vient le point positif ! On arrive rapidement à créer une vue après avoir parcouru la documentation officielle. Bien sûr, rien de transcendant, mais il faut reconnaître que c’est valorisant de voir son application avancer aussi rapidement. Pour rappel, un autre point positif non négligeable : votre vue est valide pour Android et iOS avec un seul code.
Pour ma part, j’avais prévu trois vues dans mon petit projet. En seulement une demi-journée, j’ai réalisé toute la partie visuelle de mon application pour les deux plateformes à la fois. La communauté de Flutter est d’autant plus très active, ce qui nous permet de trouver facilement des réponses à nos questions.
Flutter, natif et performant
Une fois l’ensemble de mon visuel finalisé, je me suis penché sur mes actions et fonctions de l’application (on va dire le coté “programmatically”). A ce stade, ça se complique un peu ! Il va falloir broder entre votre code Dart, les plugins déjà développés disponibles en ligne ici par exemple, ou encore vos compétences en langage natif Kotlin (ou Java) et Swift (ou objective C).
Mon projet était une application Player Radio. J’ai donc créé toute l’interaction directement en Dart (Action des boutons, récupération Json (épaulé par le plugin http: ^0.12.0), Timer,…). Pour le reste, on navigue entre plugin ou code natif.
Les points forts et points faibles des plugins ?
Tout d’abord, un gros point fort des plugins, c’est qu’il en existe déjà toute une liste disponibles en ligne, ce qui nous fait gagner un temps considérable. Ils sont très faciles d’implémentation et souvent bien documentés. J’ai pu arriver rapidement à mon but grâce à eux.
En revanche, gros point faible, tous ne sont pas compatibles à la fois Android et iOS. En tout cas, beaucoup ne répondent pas intégralement à vos attentes. J’ai parfois dû chercher longtemps, et surtout tester sur les deux plateformes simultanément pour être sûr de garder ce plugin. Le point faible est donc la perte de temps générée lors des phases de test, ainsi que la compilation pour être sûr que tout est bon pour nos deux OS et pour les versions du système que l’on veux toucher. En bref, comme dans tous les langages, il faut faire le choix suivant : “j’utilise un plugin ou pas là ?”.
Pour finir et répondre à la question “Flutter : mon avis sur ma première application”, même si le Dart est le langage utilisé pour Flutter, j’ai eu besoin à plusieurs reprises de compétences en natif. La plupart des plugins ont besoin d’ajouter du code natif, et cela rien que pour les permissions Android ou autre. Ce sont des petites connaissances qui peuvent rapidement vous faire perdre du temps si vous ne les avez pas. Mais ce point faible devient un gros point fort pour Flutter. Si vous avez des connaissances en langage natif, vous pouvez les coupler à votre code Dart et faire des fonctions natives qui renvoient des données sous forme de tunnel (canaux). Encore une fois, la documentation est très explicite, je n’ai donc pas eu de mal à la mettre en place dans mon projet.
Du coup Flutter : mon avis sur ma première application
Une fois mon application finalisée, il ne reste plus qu’a créer ma release. Je peux conclure sur un point positif (je vous l’avais déjà dit en introduction de cet article) : mon projet ma pris peu de temps, même si je partais de zéro sur Flutter et Dart, et c’est vraiment pratique de pouvoir toucher les deux OS d’un coup avec un seul code commun. En bref, je recommande l’utilisation de Flutter en 2019.