La nouvelle application Affluences

Comme nous l’avons annoncé dans notre précédent article, la prochaine version majeur de l’application Affluences sera développée avec Flutter, un SDK permettant de réaliser des applications cross-platform avec le langage Dart.

Avant de commencer à porter l’application Affluences du natif vers Flutter, nous nous sommes assurés que toutes les fonctionnalités nécessaires étaient disponibles (couche réseau, persistance des données, géolocalisation, traductions, etc). Malgré la jeunesse du projet (la première version stable a été publiée en décembre 2018); Flutter dispose de suffisamment de packages et de librairies pour développer une application nécessitant des fonctionnalités natives. L’autre interrogation majeure que nous avions concernait les performances. Après plusieurs séries de tests, les résultats étaient pleinement satisfaisants avec un framerate stable à 60 fps.


Flutter nous apporte différents avantages. Le plus important est indéniablement le gain de temps que génère l’utilisation d’un framework cross-plateforme, puisque nous utilisons une seule et même base de code pour Android et iOS. D’autres fonctionnalités, comme le Hot-reload, facilitent le processus de développement. Le fonctionnement par Widget permet également de développer des vues uniformes sur iOS et Android. La construction de vues complexes n’a jamais été aussi simple !

Malgré cela, quelques doutes subsistent : certains packages de base, comme l’affichage de contenu sur une carte, semblent encore être en développement. Notre utilisation de ce module étant assez simple, les fonctionnalités disponibles sont suffisantes, mais cet exemple témoigne de la jeunesse du framework que nous avons déjà évoqué. Cependant, nous pouvons d’ores et déjà compter sur une communauté dynamique et grandissante qui aide Flutter à se développer.

Pour développer la nouvelle version de l’application Affluences, nous utilisons VSCode avec le plugin Dart et Flutter. Cet environnement fonctionne parfaitement et est bien moins gourmand comparé à Android Studio.

Avec Flutter, de très belles perspectives s’ouvrent pour l’application mobile Affluences, aussi bien d’un point de vue fonctionnalités que d’un point de vue design. Pour preuve, voici un premier rendu de la prochaine version !

L’application mobile Affluences, du natif vers le cross-platform.

L’application Affluences a officiellement été lancée le 1er octobre 2014. À cette époque, nous diffusions uniquement le temps d’attente de la Bpi, l’une des bibliothèques les plus fréquentées de Paris. Lorsque nous avons commencé le développement de l’application, les solutions cross-plateform existantes ne supportaient pas toutes les fonctionnalités systèmes et souffraient de problèmes importants de performances (chargement des données lent, latences visibles dans les animations ou la navigation, …), même sur les smartphones les plus répandus.

Malgré le gain de temps certain que nous apportaient ces framework, nous avons décidé d’utiliser les langages natifs sur chaque plateforme afin de garantir une expérience fluide à nos utilisateurs.

Première version de l'application mobile Affluences iOS Trois écrans : temps d'attente, horaires et infos pratiques

La première version de l’application Affluences était… épurée !

À mesure que de nouveaux établissements partenaires rejoignaient l’application, celle-ci a gagné de nouvelles fonctionnalités : informations pratiques, services, filtres, visualisation des établissements à proximité, … La dernière en date a d’ailleurs été suggérée directement par nos utilisateurs : la vue « Mes réservations ».

La vue "Mes réservations" permet de consulter l'historique des réservations faites par l'utilisateur
La vue « Mes réservations » permet de consulter l’historique des réservations faites par l’utilisateur.

Nous avons en parallèle fait évoluer nos applications en fonction des nouveautés apportées pour chaque plateforme. C’est donc naturellement que nous avons migré notre base de code d’Objective-C vers Swift lorsque la version 2.0 a été annoncée par Apple en septembre 2015. Cette transformation a pu se faire progressivement grâce à l’interopérabilité entre les deux langages. En effet, il n’a pas été nécessaire de tout réécrire d’un seul coup : nous avons développé les nouveautés directement en Swift et traduit la base de code existante lorsque nous devions y apporter des changements.

Aujourd’hui, nous utilisons donc les dernières versions des langages et outils proposés par Apple et Google pour les systèmes mobiles. En revanche, la prochaine version majeure de l’application Affluences utilisera quant à elle le SDK Flutter qui permet de développer avec une base de code commune en Dart tout en garantissant une expérience fluide. Plus d’informations à venir lorsque nous aurons une première version …!