Google Flutter Review - Pourquoi les développeurs d'applications mobiles aiment Flutter

Pourquoi les créateurs d'applications aiment Flutter? Parce que Flutter est incroyable.

Flutter s'adresse à la fois aux entreprises (en offrant des coûts de développement raisonnables) et aux développeurs (en offrant une grande convivialité et une grande vitesse). C'est pourquoi certaines grandes entreprises ont opté pour Flutter, telles que Google Ads, Alibaba, Reflectly et bien d'autres.

Google a fait un excellent travail en créant Flutter et continue d'améliorer ce cadre.

Dans cet article, je donnerai un bref aperçu de Flutter et de ses tout nouveaux avantages, et je vous expliquerai pourquoi ce cadre vaut la peine de travailler. De plus, je discuterai de ce qui pourrait empêcher les grandes entreprises d'adopter Flutter.

Mais tout d'abord.

Quel est l'essentiel de Flutter?

Voici des choses que vous connaissez peut-être déjà sur Flutter:

  • c'est une boîte à outils open-source et multiplateforme
  • les applications sont écrites dans le langage de programmation Dart
  • il a son propre moteur graphique (Skia)
  • il prend officiellement en charge trois plates-formes: iOS, Android et Web (en version bêta)
  • officieusement - il prend également en charge le bureau

Google a présenté la première version de Flutter fin février 2018. Depuis avril 2020, la version 1.12 est disponible.

Qu'est-ce que Flutter a de si spécial?

Flutter associe la qualité des applications natives à la flexibilité du développement multiplateforme.

En fait, de nombreux outils multiplateformes vous permettent d'écrire le code une fois et de l'utiliser à la fois sur iOS et Android. Pourtant, tous ne peuvent pas donner le même aspect comme une application native.

Mais c'est exactement ce que fait Flutter: au lieu d'être un wrapper au-dessus des composants natifs de l'interface utilisateur (comme React Native et Xamarin), Flutter dessine l'interface utilisateur à partir de zéro.

Flutter maintient l'expérience et la convivialité natives de l'application, et vous n'avez pas à vous soucier de ses performances sur n'importe quelle plate-forme.

De plus, puisque Flutter est un framework open-source, tout développeur peut y apporter des modifications sur GitHub et envoyer des demandes de fusion. Et si vous jetez un œil à la popularité de Flutter - 90,4K étoiles GitHub , 12k fourchettes et 18,445 commits - vous aurez l'idée que les développeurs aiment Flutter et contribuent à l'améliorer.

Comment fonctionne Flutter?

Flutter n'est pas compilé directement dans les applications iOS ou Android . Les applications sont lancées sur la base d'une combinaison de moteur de rendu (basé sur C ++) et Flutter (basé sur Dart). Tous les fichiers générés de cette manière sont attachés à chaque application et à chaque logiciel d'assemblage SDK pour une plate-forme spécifique.

C'est comme le développement de jeux: un jeu n'alloue pas son cadre et la fonctionnalité est réalisée avec le moteur de jeu. Idem pour le logiciel Flutter - toutes les applications basées sur le SDK Flutter remplacent des parties des frameworks natifs par des éléments Flutter.

Bien que cela puisse avoir un impact sur la taille de l'application finale, les performances sont toujours assez bonnes - le rendu est effectué avec des vitesses allant jusqu'à 120 FPS .

Grâce à la compilation native pour les processeurs ARM, au rendu simple et à un ensemble de widgets et d'outils intégrés, Flutter simplifie le processus de développement.

De plus, il offre quelques fonctionnalités très savoureuses comme Hot Reload .

Voilà comment cela fonctionne:

Lorsque vous cliquez sur le bouton Hot Reload, toutes les modifications du code sont immédiatement affichées dans les gadgets, les émulateurs et les simulateurs. L'application continue de fonctionner là où elle était avant le rechargement à chaud: le code se met à jour, mais l'exécution se poursuit.

Pourquoi choisir Flutter pour les applications multiplateformes?

Les nouvelles versions de Flutter continueront à sortir avec des fonctionnalités plus avancées dans leurs manches. Mais il existe déjà de nombreuses fonctionnalités améliorées qui expliquent parfaitement pourquoi Flutter est si apprécié.

Premièrement , le développement multiplateforme avec Flutter, contrairement à la croyance populaire, n'empire pas les logiciels.

Flutter est livré avec tous les widgets natifs pour les interfaces Android et iOS comme Material Design et Cupertino. En outre, le framework peut changer le comportement d'éléments séparés pour créer une UX similaire pour les utilisateurs de l'application.

Deuxièmement , Flutter permet d'implémenter la compilation de fichiers discrets en mode dev. La compilation JiT accélère le développement et le débogage des logiciels.

Troisièmement , Flutter permet un backend flexible et évolutif.

Il prend en charge des plugins comme Firebase, SQLite, etc. (pub.dev vous aidera à trouver celui dont vous avez besoin). Firebase rend l'infrastructure de l'application évolutive, sans serveur et redondante.

Donc, si vous travaillez sur des applications qui nécessitent des bases de données en temps réel ou des fonctions cloud, Flutter est là pour vous.

Et le dernier: Flutter est très facile à apprendre .

Dès le début, les développeurs de Google se sont fixé comme objectif de réduire la barrière d'entrée. Ils ont soigneusement élaboré la documentation et les ressources que les développeurs peuvent utiliser. Il comporte même des sections spéciales que vous pouvez utiliser pour commencer à apprendre le framework en fonction de votre spécialisation:

  • Flutter pour les développeurs Android
  • Flutter pour les développeurs iOS
  • Flutter pour les développeurs React Native
  • Flutter pour les développeurs Xamarin.Forms
  • Flutter pour les développeurs Web

Grâce à la documentation détaillée de Flutter, vous comprendrez comment écrire du code dans Dart, même si vous n'avez de l'expérience qu'avec les outils graphiques Unity pour créer des jeux Android.

Flutter 1.12 (dernière version) et ses avantages

Voyons quelles fonctionnalités intéressantes Flutter a introduit dans sa dernière version 1.12:

Mode sombre iOS

À partir de maintenant, Flutter prend en charge l'apparence et la convivialité d'iOS 13, y compris la prise en charge complète du mode sombre dans les widgets Cupertino. Et il ne s'agit pas seulement d'échanger l'arrière-plan, mais d'adapter le reste des couleurs pour qu'il corresponde bien.

Prise en charge des ajouts à l'application

Une autre grande amélioration est la mise à jour Add-to-App, qui permet d'intégrer Flutter dans des applications iOS / Android déjà existantes.

La nouvelle version de Flutter prend en charge l'ajout d'une instance Flutter plein écran à l'application, ainsi que:

  • Intégration d'API stabilisées dans Java, Kotlin, Objective-C et Swift
  • Prise en charge de l'utilisation de plugins dans les modules Flutter
  • Mécanismes d'intégration supplémentaires via les AAR Android et les frameworks iOS

Assistance Web bêta

Les nouveaux canaux Flutter master, dev et beta offrent une meilleure prise en charge du Web. Vous voulez des exemples?

Voici Rivet , un projet éducatif qui a utilisé Flutter et Firebase pour créer une version Web de leur application.

Fléchette 2.7

La nouvelle version du framework introduit Dart 2.7.

Cette mise à jour améliore l'expérience de fonctionnement avec Dart 2.5 dans la façon dont les chaînes sécurisées gèrent les capacités et les processus d'extension. Cela aide les développeurs à éviter les erreurs lorsque les variables obtiennent une valeur nulle et analysent les entiers d'une chaîne.

Et voici quelques autres fonctionnalités de la dernière version de Flutter:

  • Prise en charge du bureau macOS (alpha)
  • débogage multi-périphérique
  • test d'image d'or
  • Améliorations de la version Android
  • mis à jour DartPad

C'est bien, mais pas sans problèmes: qu'est-ce qui retient les développeurs?

Flutter est vraiment cool: facile à démarrer, simple à utiliser et présenté par une énorme entreprise de technologie. Pourtant, voici les raisons pour lesquelles votre développeur principal peut ne pas partager votre optimisme.

La (faible) popularité de Dart

Contrairement à Java / Kotlin pour Android ou Swift / Objective-C pour iOS, Dart n'a pas encore une grande popularité. Et il est hautement improbable que ce soit le cas.

Dart n'est pas trop difficile à apprendre, et il existe des tonnes de tutoriels (comme celui-ci), mais certains développeurs continuent de s'en tenir à Java et à d'autres outils familiers.

En même temps, vous ne pouvez pas utiliser Flutter et ne pas utiliser Dart: même la fonction tueur de Flutter - Hot Reload - ne fonctionnera pas sans Dart.

Ne prend pas en charge tous les appareils

Vous ne pouvez pas créer d'applications pour les appareils iOS 32 bits comme ceux plus anciens que l'iPhone 5s. Idem pour les postes de travail Windows: vous ne pouvez pas exécuter Flutter sur votre ordinateur portable 32 bits.

Et les développeurs de Flutter n'ont pas l'intention de le réparer car "cela impliquerait une quantité de travail très importante".

Donc, si vous souhaitez coder avec Flutter, vous devrez posséder un appareil x64 bits ou mettre à niveau celui que vous utilisez maintenant.

Nombre limité de bibliothèques

Bien qu'il existe de nombreuses bibliothèques Flutter comme fl_chart (pour dessiner des graphiques dans Flutter), path_provider (utilisé pour localiser un fichier sur Android / iOS), flutter_sliding_tutorial et bien d'autres, le nombre est toujours limité.

Ce n'est pas difficile à expliquer: Flutter est un framework relativement nouveau, et les développeurs n'ont pas eu assez de temps pour développer autant de bibliothèques que les langages natifs offrent.

Pourtant, les bibliothèques les plus importantes sont déjà là, et de nouvelles sortent tout le temps.

Les applications Flutter sont plus grandes

... par rapport aux applications développées nativement. L'équipe de Flutter a mesuré la taille minimale de l'application (sans composants matériels, juste un seul widget Center, construit avec flutter build apk --split-per-abi), groupée et compressée, à 4,3 Mo pour ARM et 4,6 Mo pour ARM 64 .

L'application de base pèse désormais environ 4 Mo sous Android et environ 10 Mo sous iOS.

Peu d'expertise éprouvée

Flutter est peut-être aimé des développeurs, mais les grandes entreprises ne se sont pas pressées d'arrêter de créer des applications natives (ou React Native) et de se tourner vers Flutter.

Pour la plupart des entreprises, le plus gros problème est la nouveauté de Flutter. Dart est plus récent que Java ou C #, et Flutter lui-même est tout nouveau.

Bien sûr, il existe de nombreuses applications open-source Flutter, y compris des plus grandes comme Google Ads ou Hamilton (consultez la liste complète ici), mais pas trop.

Et personne ne veut être la personne qui adopte un tout nouveau framework pour avoir à passer au développement natif quelques mois plus tard.

Mais ce qui est encore plus important, c'est que Flutter est le chemin sur lequel vous marchez seul:

  • il n'y a pas beaucoup de bonnes pratiques confirmées (du moins pour les projets à grande échelle)
  • toujours une chance que vous soyez le premier à faire face à ce problème particulier
  • peu d'espoir que quelqu'un vous aidera - vous devrez faire chaque étape avec soin et être prêt à faire face aux conséquences

Où utiliser Flutter

Tout d'abord, il est préférable d'utiliser Flutter pour les startups MVP lorsque vous avez peu de temps et souvent d'argent pour vérifier le modèle commercial.

Une application Flutter est moins chère *:

  • * par rapport au coût de deux applications natives
  • l'équipe de développement est 40% plus petite
  • processus linéaires
  • vous pouvez passer plus de temps à travailler sur les fonctionnalités de l'application

En optant pour un projet Flutter, vous réduisez le nombre d'heures de développement. Le développement Flutter ne prend pas autant de temps que le développement natif.

Voici un exemple. Disons que vous créez une application de type Instagram pour deux plates-formes. le développement iOS va prendre, à peu près, environ 700 heures, Android - aussi 700h .

Avec Flutter, vous couvrirez les deux plates-formes et gagnerez du temps: 700h Android + 700h iOS contre 700h Flutter.

Vous gagnez beaucoup de temps que vous pouvez consacrer à autre chose, comme peaufiner les fonctionnalités.

Emballer

Si vous créez des applications dans un temps limité avec un budget limité, Flutter vaut vraiment la peine d'être essayé.

C'est aussi bon qu'il y paraît, et à chaque nouvelle mise à jour, les développeurs de Google ajoutent encore plus d'outils pour le développement multiplateforme.

Bien sûr, ce framework peut sembler inhabituel pour les amateurs de C # et Java, mais cela ne signifie pas qu'il vous forcera à sortir de votre zone de confort. Après avoir maîtrisé les petites différences de syntaxe, vous verrez bientôt que le développement de l'interface utilisateur est quelques fois plus rapide que le développement natif.

Et si vous réussissez et si Flutter reste fidèle, cela pourrait vous apporter une expérience et des opportunités de développement mobile passionnantes à l'avenir.