Notre expérience avec Flutter

Nous avons eu de multiples expériences avec Flutter. Dans nos projets, comme toujours, nous nous concentrons à fournir un produit de bonne qualité. Pour cela, nous avons décidé de changer certains packages utilisés précédemment dans l'application mobile Kariyon et nous avons essayé des alternatives.

Quel package utiliser pour l'architecture ?

Nous utilisions le pattern MVVM comme pattern principal pour nos applications mobiles avec Kotlin et Swift. Pour Flutter, un nouveau pattern a Ă©mergĂ©: le pattern BLoC. Ce pattern a le mĂȘme objectif que le MVVM, c'est-Ă -dire de sĂ©parer la vue de la logique. Ils ont beaucoup de similaritĂ©s entre eux. La principale diffĂ©rence c'est l'affiliation de la logique. Avec le MVVM, le ViewModel est liĂ© Ă  la vue. Pour le pattern BLoC, la logique est centrĂ©e autour d'un groupe de fonctionnalitĂ©s. Pour le pattern BLoC, nous utilisons le package flutter_bloc.

Quel package utiliser pour l'injection de dépendances ?

Il y a deux packages principaux pour l'injection de dépendences: get_it et provider. Le premier utilise le pattern Service Locator. A premiÚre vue, ce package est le meilleur car plus facile à prendre en main. Mais je recommanderais d'utiliser le package provider. Il prend un peu plus de temps à maßtriser, mais vous ne le regretterez pas.
provider suit les bonnes pratiques et l'idĂ©ologie de Flutter. Le projet sera de meilleure qualitĂ© sur la durĂ©e. Et si vous utilisez le package flutter_bloc mentionnĂ© ci-dessus, les deux packages ont la mĂȘme structure et le code sera homogĂšne.

Quel package utiliser pour la localisation de l'utilisateur ?

Nous avons essayé les deux packages location et geolocator. Les deux semblent efficaces et utilisables. Pour le moment, je recommande d'utiliser geolocator car sa communauté est plus active. Lors d'un de nos projets, nous avons expérimenté un bug et l'avons reporté. En quelques jours, le problÚme était résolu.

D'autres packages Ă  surveiller

Nous pourrions parler d'une douzaine de packages et leurs alternatives pour des fonctionnalitĂ©s essentielles. Mais pour le moment, nous nous arrĂȘterons avec cette liste:

  • permission_handler - MĂȘme si chaque package ayant besoin de permissions permet de les demander, c'est une meilleure pratique d'avoir un seul package s'occupant de ça. Cela permet de dĂ©velopper la fonctionnalitĂ© une seule fois.
  • flutter_svg - Le format SVG n'est pas supportĂ© par Flutter sans un package. Celui-ci rĂ©sout le problĂšme.
  • flutter_lints - C'est toujours important d'avoir un linter pour que les projets restent propres.

Et bien d'autres: flutter_secure_storage, url_launcher, intl, firebase_core, cached_network_image, 

Nous sommes curieux d'entendre vos expĂ©riences avec Flutter. Est-ce que vous seriez intĂ©ressĂ© par avoir un projet rĂ©alisĂ© ensemble? N'hésitez pas à avoir une première discussion sur Flutter et autres.