Notre choix de Flutter
Pour notre application mobile à destination des patients des cabinets médicaux, nous nous sommes interrogés sur l'usage d'un framework multiplatforme.

React Native, Jetpack Compose & Swift UI, avec ou sans KMM, Flutter… voilà nos candidats 💪
Nous vous exposons dans cet article les critères qui ont guidés notre choix.
Une forte attention au coût d'intégration UI
Nos écrans sont les mêmes sous Android et iOS. De très rares éléments UI sont spécifiques à un OS (par exemple certaines icônes), mais c'est anecdotique. Ce critère favorise clairement React Native et Flutter.
Un coût d'intégration des fonctionnalités natives quasi-nul
Parmi les API de géolocalisation, de bluetooth, de wifi, d'accéléromètre, nous comptons en utiliser… aucune 😅 Encore un critère qui favorise React Native et Flutter, et un peu KMM.
Seule l'API d'accéléromètre est utilisée pour une fonctionnalité cachée : l'affichage de menus cachés sur notre app de Staging.
À ce stade, pour notre business case, il nous reste à trancher entre React Native et Flutter.
Le coût de montée en compétence
Sur les quatre membres de notre équipe tech, un seul possède une expérience mobile (et ce membre n'a pas d'expérience professionnelle en Flutter). Il nous apparaît important que le framework que nous choisirons permette une montée en compétence rapide.
Quels sont les éléments d'un framework permettant une bonne montée en compétence ?
La grammaire, la lisibilité et la verbosité du langage.
La sécurité du langage (= la facilité de se rendre compte de l'introduction d'un bug)
L'activité de la communauté.
La qualité des devtools.
Si sur le premier point, Javascript et Dart sont à peu près au même niveau - et encore c'est un critère dont l'évaluation est très subjective - les trois derniers points sont plus faciles à trancher.
En effet, l'analyzer et le linter Dart sont indéniablement plus puissants que les linters et les LSP Typescript.
Ensuite, comme relevé par Marek Kalnik de BAM dans son introduction de la React Native / Flutter Connection 2023, l'intérêt pour Flutter n'a cessé d'augmenter en France depuis 2017, jusqu'à dépasser React Native au printemps 2020 👇

Enfin, le support intégré des DevTools Flutter via ses intégrations VSCode et Android Studio (ou plus globalement IntelliJ) nous apporte un confort supérieur aux outils de React Native comme Flipper. D'autant plus depuis la version 3.16 de Flutter qui apporte la capacité d'étendre les DevTools.
Rétrospective
Notre app a 6 mois aujourd'hui ! C'est un beau bébé. Il se porte à merveille.
Une qualité qui nous est apparue et qui pourtant n'était pas dans nos critères initiaux est la facilité d'opérer une stratégie monorepo tant les actions de refactos sont complètes, faciles, sécurisantes et rapides.
Nous en parlerons dans un prochain billet de blog 😃
A bientôt !



