Lorsqu'il s'agit de frameworks de développement mobile multiplateformes populaires comme Xamarin, React Native et Flutter, ma préférence penche fortement vers Flutter. Cette préférence est en partie due à l'implication de Google et en partie à la popularité croissante de Flutter, comme en témoignent les récentes statistiques sur les questions posées sur Stack Overflow.
Cependant, un événement inattendu s'est produit récemment : Google a licencié des coéquipiers des équipes Flutter et Dart. Cela m'a surpris et m'a incité à réfléchir aux raisons possibles de cette décision.
Il ne semble pas qu'il s'agisse d'une vaste restructuration, puisqu'elle ne semble avoir touché que des domaines spécifiques. Cela suggère une hiérarchisation des investissements et une stratégie de désinvestissement progressif, comme l'a indiqué Alex García-Kummert, porte-parole de Google : « Comme nous l'avons dit, nous investissons de manière responsable dans les plus grandes priorités de notre entreprise et dans les opportunités significatives qui s'offrent à nous ».
Après enquête, j'ai découvert qu'il ne s'agissait pas d'un incident isolé. Google avait déjà licencié une partie de l'équipe Fuchsia l'année dernière, qui construit ce système d'exploitation natif de Flutter. Cela m'amène à penser que ces actions font partie d'une stratégie planifiée.
À la lumière de ces événements récents et de la tendance émergente, je me trouve de plus en plus incertain quant à l'avenir de Flutter. Permettez-moi de partager mon point de vue, en commençant par les raisons pour lesquelles Flutter a émergé en premier lieu.
1. Flutter était probablement le plan de secours de Google
En 2010, Oracle a intenté un procès à Google pour son utilisation de Java, en particulier dans Android. Cette bataille juridique a duré des années. Malgré le litige, Android a continué à prospérer au début des années 2010 et reste une plateforme cruciale pour Google afin d'atteindre les utilisateurs mobiles et d'étendre son influence technologique. Une défaite dans l'affaire Oracle contre Google pourrait avoir de graves répercussions pour Google dans le domaine de la téléphonie mobile.
Google a donc dû élaborer une stratégie pour réduire sa dépendance à l'égard de Java. L'adoption de Kotlin en tant que « first-class citizen » en 2017 a été une étape importante. Cette décision a permis d'assurer la continuité du développement d'Android quelle que soit l'issue du procès Oracle contre Google, sauvegardant ainsi la position de Google sur le marché mobile.
Il est clair qu'à l'époque, la décision d'élever Kotlin au rang de « first-class citizen » m'a semblé précipitée, surtout si l'on considère l'évidence de son manque de préparation dans Android Studio 3.0. J'ai souligné ces préoccupations en détail dans un article que j'ai écrit à l'époque.
S'appuyer uniquement sur Kotlin présente des risques, car il s'agit d'un langage développé par JetBrains, et non par Google. Pour atténuer ce risque, Google a cherché à établir une autre option basée sur un langage qui lui appartient pleinement.
Dès 2015, Google avait exposé des plans pour une approche sans Java du développement mobile en utilisant le langage de programmation Dart et un framework connu sous le nom de Sky, qui a ensuite évolué pour devenir Flutter. Flutter a été officiellement publié en 2017, coïncidant avec la désignation de Kotlin comme « first-class citizen » pour le développement Android. Ce mouvement stratégique de Google a fourni une solution alternative, assurant une plus grande flexibilité et un meilleur contrôle dans l'écosystème de développement Android.
De 2017 à aujourd'hui, Kotlin et Flutter ont tous deux connu un succès important à mon avis, ce qui m'amène à croire que les deux resteraient proéminents dans un avenir prévisible.
Cependant, les tendances et les incidents récents suggèrent que Google pourrait finalement donner la priorité à l'un par rapport à l'autre, en éliminant potentiellement l'option secondaire. C'est ce qui ressort des développements décrits ci-dessous.
2. Kotlin a connu plus de succès
Depuis que Kotlin a été annoncé comme le « first-class citizen » pour le développement Android, Google et JetBrains n'ont cessé de l'améliorer au point que Kotlin est devenu proéminent, représentant le summum du développement Android.
Les deux entreprises travaillent en harmonie depuis l'introduction d'Android Studio en 2013, qui est entièrement basé sur IntelliJ. Ce partenariat, qui s'étend sur plus d'une décennie, s'est avéré mutuellement bénéfique. IntelliJ a étendu Kotlin au-delà du développement Android, tandis que Google a approfondi son intégration de Kotlin pour le développement Android.
D'après les statistiques, Kotlin devance clairement Dart
- Kotlin en 19ème position, Dart en 26ème position (Tiobe Index)
- Kotlin préféré par 9 %, Dart préféré par 6 % (StackOverflow 2023 Survey)
Jetpack Compose et Kotlin Gradle
Du côté de Google, la domination de Kotlin dans le développement Android est devenue encore plus évidente avec l'introduction de Jetpack Compose en 2019. Ce framework, purement basé sur Kotlin, a encore solidifié le lien de Kotlin avec le développement natif d'Android.
En outre, l'environnement de construction Gradle est passé de l'utilisation de Groovy à celle de Kotlin. Par conséquent, la grande majorité de l'écosystème de développement Android tourne maintenant autour de Kotlin, cimentant son statut de « first-class citizen » évident pour le développement Android.
Kotlin multiplateforme (KMP)
JetBrains a étendu la portée de Kotlin au-delà du développement Android en ciblant le développement iOS et le développement web grâce au développement Kotlin Multiplatform.
Cette stratégie distingue Kotlin des autres frameworks de développement mobile comme React Native, Xamarin et Flutter, car il fonctionne davantage comme une plateforme que comme un framework. Contrairement à ces frameworks, Kotlin Multiplatform ne dicte pas l'ensemble de l'architecture de l'appli, mais permet d'étendre les projets iOS et Android natifs existants.
Pour garantir une intégration plus harmonieuse du framework Multiplatform dans l'environnement Android, les employés de Google ont activement contribué à son développement. Cette collaboration a facilité l'alignement du framework sur le système d'exploitation Android, simplifiant ainsi les processus de développement sur cette plateforme.
Cette flexibilité permet de passer en toute transparence d'un développement purement natif à un développement multiplateforme en fonction des besoins, ce qui permet aux développeurs d'adapter leurs projets en fonction de l'évolution de leurs exigences.
Je m'y suis personnellement plongé il y a quelque temps et j'ai remarqué son approche unique, qui le distingue des autres frameworks permettant le développement multiplateforme. J'anticipe le potentiel de Kotlin Multiplatform alors qu'il n'en est qu'à ses débuts.
3. Kotlin Multiplateforme (KMP) vs Flutter
Comme mentionné ci-dessus, Kotlin Multiplatform est en fait différent par rapport aux autres frameworks de développement mobile, il s'agit d'une plateforme et non d'un framework.
Ce n'est donc pas vraiment une comparaison des pommes avec les pommes, étant donné que Kotlin Multiplatform, dans les premiers jours, s'appuie encore beaucoup sur le développement natif, en particulier dans le domaine spécifique de l'interface utilisateur d'iOS et d'Android.
Jetpack Compose + Kotlin Multiplateforme
Cependant, ces dernières années, JetBrain a fait passer Jetpack Compose à Kotlin Multiplatform, et l'a appelé Compose Multiplatform.
Cela a permis de développer simultanément l'interface utilisateur native d'iOS et d'Android, d'étendre la plateforme vers le haut et de réduire la nécessité de travailler sur les deux plateformes.
Cette avancée en a fait un très grand concurrent pour Flutter lui-même. Bien qu'il ne soit pas créé par Google, il est en grande partie soutenu par Google.
Quelle est la proposition de valeur de Flutter pour Google ?
Flutter a d'abord été un mouvement stratégique pour Google, visant à répondre à divers domaines tels que son investissement dans le paysage en plein essor du développement mobile et l'atténuation des risques associés au litige Java entre Oracle et Google.
Cependant, le succès remarquable de Kotlin, associé au potentiel prometteur de Kotlin Multiplatform, et la forte collaboration de Google avec IntelliJ, ont remodelé le paysage du développement mobile, diminuant ainsi la proposition de valeur initiale de Flutter pour Google.
Flutter est toujours un succès de Google
Malgré cela, Flutter a également connu un succès considérable, comme en témoigne son adoption par de grands fournisseurs tels qu'Alibaba, ByteDance et Google lui-même, avec des apps comme Google Pay et Google Earth. De plus, il existe une communauté Flutter florissante qui continue de militer pour son adoption.
Bien que l'équipe de Fuchsia ait connu une certaine réduction de ses effectifs, le projet reste actif pour l'instant.
Mon pari sur les prochaines actions de Google
Ma prédiction est que Google va probablement maintenir Flutter dans un avenir prévisible. Il reste l'un des meilleurs frameworks de développement mobile multiplateforme, si ce n'est le premier choix. Par conséquent, je doute que Google l'abandonne brusquement comme Xamarin, dont le support a pris fin le 1er mai 2024.
Ce qui est plus probable, c'est une réduction progressive des équipes Flutter et Dart, ralentissant le développement, tandis que Google observe sa domination dans le paysage mobile, son partenariat avec JetBrains, l'engagement de la communauté et l'orientation de sa technologie.
Personnellement, bien que je ne sois pas un partisan du framework mobile, j'espère que Google n'abandonnera pas Flutter purement et simplement comme ils l'ont fait pour beaucoup d'autres, compte tenu de la dépendance importante de la communauté à son égard. Au minimum, j'espère que Google envisagera de l'ouvrir au soutien de la communauté avant de prendre une décision définitive.
Je souhaite le meilleur à mes collègues développeurs Flutter !
Source : "Is Flutter Facing its End?" (d'après Elye - A One Eye Developer)
Et vous ?
Quel est votre avis sur le sujet ?
Trouvez-vous cette analyse crédible ou pertinente ?
Voir aussi :
Google publie Flutter 3.7 et évoque l'avenir du framework de développement d'applications, cette version améliore le support de Material You, les performances et la gestion de la mémoire
Flutter 3 de Google ajoute la prise en charge des applications de bureau macOS et Linux, le framework s'accompagne d'intégrations plus approfondies avec Firebase