Flutter : un framework populaire idéal pour s'initier au développement mobile.

  • Date de parution
  • Date de mise à jour
  • AuteurCarl-Stéphan Parent

Temps de lecture : environ 8 min.

 

Flutter, développé par Google, permet de créer des applications iOS et Android à partir d’un seul code source, avec un rendu visuel uniforme sur toutes les plateformes. Les frameworks cross-platform offrent un avantage stratégique en rationalisant le développement et en réduisant les délais de mise sur le marché. Flutter est populaire auprès de développeurs moins expérimentés, un peu à la manière de WordPress pour le web. Cependant, son moteur graphique uniforme peut limiter l’adhérence stricte aux Human Interface Guidelines d’Apple et aux Material Design Guidelines de Google, et certaines adaptations natives restent nécessaires pour respecter parfaitement les standards UX de chaque plateforme. Un point clef à considérer est le langage Dart, sur lequel Flutter s'appuie. Créé par Google en 2011, Dart est plus ancien que des langages modernes comme Swift et Kotlin. Initialement, il n’a pas rencontré de succès significatif en dehors de certains projets expérimentaux, principalement en raison de son écosystème limité et de la concurrence des langages déjà établis. Pour un développeur souhaitant pousser Flutter plus loin, apprendre Dart peut constituer un frein, puisqu'il faut se familiariser avec un langage moins courant, ce qui peut ralentir l’adoption et la montée en compétence.

 

--

Ce qu'il faut retenir à propos de Flutter :

  • Framework mis au point par une équipe de Google : Flutter est un framework mobile multiplateforme développé par une équipe de Google, qui utilise le langage Dart ;
  • Uniformité et facilité : il est idéal pour créer des applications iOS et Android à partir d'un seul code, avec un rendu visuel élégant et uniforme, grâce à sa bibliothèque de widgets ;
  • Adapté aux petits projets : il est parfait pour les développeurs souhaitant s'initier au mobile et pour la création rapide de prototypes ou de POC (Proof Of Concept) ;
  • Limites et inquiétudes : Le rendu uniforme peut ne pas respecter les codes de chaque plateforme. De plus, des récents licenciements chez Google soulèvent des questions sur son avenir.

--

 

1. Présentation complète de Flutter, architecture et écosystème :

1.1 Historique de Flutter : origine et adoption :

Lancé par Google en 2017, Flutter a rapidement gagné en popularité grâce à sa simplicité et à son moteur graphique propriétaire, Skia. Il permet de créer des applications multiplateformes sans nécessiter une expertise approfondie dans le développement natif, ce qui en fait un choix privilégié pour les développeurs débutants ou intermédiaires. Néanmoins, le langage Dart n’était pas initialement très répandu et son adoption a été freinée par un écosystème limité à ses débuts.

1.2 Architecture et fonctionnement : moteur graphique et Dart :

Flutter repose sur le langage Dart et le moteur graphique Skia, qui rend tous les composants de l’interface indépendamment de la plateforme. Cette approche assure un rendu identique sur iOS et Android, mais peut limiter l’adhérence stricte aux guidelines natives. Les développeurs doivent parfois créer des ajustements natifs pour respecter parfaitement les standards UX. Le langage Dart, bien que mature, reste ancien et moins répandu que Swift ou Kotlin, ce qui peut constituer un frein pour ceux qui découvrent Flutter.

1.3 Écosystème et communauté :

La communauté Flutter est active, avec de nombreux plugins et widgets open source. Ça permet aux développeurs moins expérimentés d’accéder à des fonctionnalités avancées sans connaissance approfondie du natif. Cependant, la dépendance aux plugins peut poser des problèmes de compatibilité ou de maintenance sur le long terme.

1.4 Priorité stratégique de Google : ...Kotlin et l’écosystème Android.

Bien que Flutter soit soutenu par Google, il est important de noter que l’entreprise valorise principalement Kotlin pour le développement Android natif. Kotlin bénéficie d’un support officiel renforcé, d’une intégration profonde dans les outils Android Studio et de mises à jour fréquentes alignées avec les Human Interface Guidelines de Google. Pour une organisation, cela signifie que le choix de Flutter doit tenir compte du fait que, malgré son support, Google privilégie l’écosystème natif Kotlin pour les applications Android, notamment en termes de performance, de compatibilité et de pérennité à long terme.

2. Impact organisationnel : licenciements et prudence quant à l’adoption de Flutter.

En avril 2024, Google a procédé à une série de licenciements touchant plusieurs équipes, dont celles dédiées à Flutter, Dart et Python. Bien que le nombre exact de postes supprimés n'ait pas été officiellement communiqué, des rapports indiquent que jusqu'à 50 employés ont été affectés, principalement dans les bureaux de Sunnyvale, Californie.

Ces réductions s'inscrivent dans une réorganisation visant à accroître l'efficacité opérationnelle et à réaligner les ressources sur les priorités stratégiques de l'entreprise. Certaines sources suggèrent que l'équipe Python aux États-Unis a été remplacée par une équipe basée à Munich, probablement pour des raisons économiques.

L’histoire de Google montre que l’entreprise n’hésite pas à abandonner des technologies, même largement adoptées, lorsque ses priorités changent : des exemples connus incluent AngularJS, Google Wave ou Google Reader. Ces précédents soulignent qu’une organisation qui envisage d’adopter Flutter doit tenir compte de ce risque, particulièrement dans le contexte des récents licenciements et de la réorganisation des équipes.

Pour les équipes Flutter et Dart, ces changements ont suscité des inquiétudes quant à l'avenir du framework et du langage. Des membres de l'équipe ont exprimé leurs préoccupations sur les réseaux sociaux, soulignant que de nombreux projets ont perdu des talents clefs. Malgré ces ajustements, Google a assuré que le développement de Flutter et Dart se poursuivrait, avec des mises à jour prévues lors de la conférence Google I/O de mai 2024.

3. Quelles sont les forces et faiblesses de Flutter ?

3.1. Avantages de Flutter dans le domaine du développement mobile multiplateforme :

  • Rendu identique et prévisible sur toutes les plateformes ;
  • Écosystème riche, idéal pour les développeurs moins aguerris ;
  • Développement multiplateforme avec un seul code source ;
  • Rapidité pour créer des prototypes et des POC ;
  • Support de la communauté et documentation complète ;
  • Adapté à la majorité des applications standard et aux interfaces graphiques modérées.

3.2. Limites et précautions à connaître avant de choisir Flutter :

  • Uniformité du rendu pouvant limiter l’adhérence aux guidelines iOS et Android ;
  • Langage Dart ancien et moins répandu, pouvant constituer un frein pour de nombreux développeurs ;
  • Applications souvent plus lourdes que le natif ;
  • Intégrations natives spécifiques parfois complexes ;
  • Dépendance aux plugins tiers pour certaines fonctionnalités ;
  • Performance limitée pour les animations très complexes ou calcul intensif.

3.3. Exemples d’applications mobiles développées avec Flutter :

  • Google Ads ;
  • Alibaba ;
  • Reflectly.

4. Cas d’usage recommandé : projets adaptés à Flutter :

Flutter convient pour des applications multiplateformes avec interface graphique standard ou modérée, des prototypes et POC, ainsi que pour des projets où les développeurs n’ont pas forcément une forte expertise mobile. Pour des applications très complexes ou exigeantes en performance, un développement natif complémentaire reste nécessaire.


Conclusion : pourquoi faire le choix de Flutter pour vos projets mobiles ?

Flutter offre un compromis intéressant entre rapidité de développement, accessibilité pour les développeurs moins expérimentés et compatibilité multiplateforme. Il est particulièrement adapté aux prototypes, POC, et projets avec interfaces graphiques standard ou modérées. Pour les applications très complexes ou à forte exigence de performance et UX native, un développement natif reste conseillé.
 

FAQ 

Question réponses à propos de Flutter :

1. Flutter est-il adapté pour les débutants en développement mobile ? Oui, son écosystème riche et sa simplicité de prise en main le rendent accessible aux développeurs moins expérimentés.

2. Quelles sont les différences entre Flutter et React Native ? Flutter utilise Dart et un moteur graphique propriétaire (Skia), tandis que React Native utilise JavaScript/TypeScript et un bridge vers les composants natifs.

3. Puis-je utiliser Flutter pour un prototype ou un POC ? Oui, il est particulièrement adapté pour créer rapidement des prototypes multiplateformes.

4. Flutter permet-il d’accéder aux fonctionnalités natives du téléphone ? En partie oui, via des plugins, mais certaines fonctionnalités très spécifiques nécessitent parfois un développement natif complémentaire.

5. Quels types de projets conviennent le mieux à Flutter ? Applications mobiles avec interface graphique élémentaire, prototypes, POC, projets nécessitant une solution simple pour développeurs moins expérimentés.

6. L’apprentissage de Dart est-il un obstacle pour les développeurs ? Oui, pour ceux qui n’ont jamais utilisé Dart, l’apprentissage peut ralentir la montée en compétence sur Flutter.

7. Flutter est-il performant pour des animations très complexes ? Pour des animations très poussées ou calcul intensif, la performance peut être limitée par rapport au natif.

8. Peut-on respecter strictement les guidelines iOS et Android avec Flutter ? Partiellement, l’uniformité du rendu peut nécessiter des ajustements natifs pour une adhérence parfaite aux standards UX.

9. Les plugins tiers sont-ils fiables ? La plupart sont utiles, mais certains peuvent poser des problèmes de compatibilité ou de maintenance sur le long terme.

10. Flutter convient-il pour le web et le desktop ? Oui, Flutter Web et Flutter Desktop existent, mais certaines fonctionnalités natives restent limitées par rapport aux applications mobiles.