Article
Développement mobile
18.10.2017
Perturbation continuum temporel
3 minutes
Temps d'un café
D3Android, une nouvelle librairie de graphes pour Android
D3Android, une nouvelle librairie de graphes pour Android
Remy Stère
Note : Ce contenu a été créé avant que Fabernovel ne fasse partie du groupe EY, le 5 juillet 2022.

Pourquoi ce projet ?

Les graphiques sont une excellente façon de représenter, de regrouper des données et de les rendre facilement compréhensibles par l’utilisateur. Ils sont encore plus intéressants dans le monde du mobile où la place disponible pour afficher de l’information est limitée. Pourtant, si les quelques solutions existantes permettent de satisfaire une grande partie des besoins, il peut être très difficile de les utiliser dans des cas s’éloignant des sentiers battus. Certaines imposent de grosses contraintes pour les utiliser (connexion internet requise, graphes dans des activités à part), certaines ne possèdent qu’un nombre limité de fonctionnalités ou sont très rigides (personnalisation très limitée, utilisation ne laissant pas beaucoup de libertés).

L’idée était donc d’essayer de voir s’il était possible de proposer une alternative satisfaisant les besoins des développeurs de FABERNOVEL TECHNOLOGIES.

En regardant ce qui se faisait dans le domaine du web, un domaine plutôt proche, la librairie javascript D3.js a semblé être une bonne source d’inspiration. Elle propose en effet de nombreuses fonctionnalités pour faire relativement facilement des graphiques dynamiques et interactifs.

Si dans un premier temps l’idée était de faire une librairie la plus proche possible de D3.js, les différences d’architectures entre le web et Android m’ont forcé à reconsidérer ceci, et à plutôt développer une librairie à part ne faisant que s’inspirer de D3.js.

Quelles sont les fonctionnalités proposées ?

La première version de la librairie permet de dessiner des axes, des courbes, des histogrammes, des graphiques en secteur et anneaux, des aires, des polygones (entre autres dans le but de faire des graphiques en radar) et des boîtes à moustaches.

Elle permet de produire facilement des graphiques interactifs. Il suffit en effet de définir le comportement des graphiques lors d’un clic, d’un scroll ou d’un pincement. Certains comportements par défaut sont déjà implémentés, comme par exemple le changement d’échelle pour un axe lors d’un scroll ou d’un pincement, mais ces comportements peuvent être simplement remplacés. L’idée étant de rendre la librairie la plus facilement personnalisable possible.

Les graphiques peuvent également être dynamiques. En effet, l’architecture permet de recalculer régulièrement toutes les données nécessaires à l’affichage : les poids des différents arcs d’un diagramme en secteur seront recalculés permettant ainsi à l’affichage d’évoluer en même temps que les données. Si le graphique n’a besoin d’être mis à jour que ponctuellement, le développeur peut choisir de ne pas tout recalculer à chaque fois, évitant ainsi de refaire des calculs inutilement.

Les performances lors de l’utilisation d’un graphique dynamique dépendent de l’utilisation faite : un graphique en secteurs pourra recalculer toutes les données à chaque fois, en gardant un affichage fluide, pour une trentaine voire une quarantaine de secteurs suivant les téléphones. Les performances dépendent cependant grandement de l’utilisation de l’accélération matérielle; tout le potentiel de la librairie ne peut donc être utilisé que si elle est activée. Certaines fonctionnalités qui lui sont liées ne sont également que disponibles pour Android M ou supérieur.

Étant le résultat d’un stage de fin d’étude, cette première version est surtout la première étape d’une librairie à part entière. L’architecture de la librairie est déjà en place, et tout le squelette pour ajouter de nouveaux types de graphiques existe déjà. En effet, pouvoir ajouter facilement de nouvelles fonctionnalités était un point important durant la conception de la librairie.

Et maintenant ?

La librairie est donc une ébauche qui, si elle peut être utilisée telle quelle, n’est que le premier pas vers quelque chose de plus grand.

La librairie est hébergée sur Github, rendant son utilisation possible par tous. Cela permettra également à qui voudra de contribuer et de l’améliorer.

Elle est mise en ligne avec une application de démonstration permettant à la fois de se rendre compte des possibilités offertes, mais également d’avoir des exemples sur la façon d’utiliser la librairie.

En plus d’une contribution Open Source, la librairie continuera d’être améliorée en interne, puisqu’elle doit remplacer l’utilisation des librairies existantes.

No items found.
Pour aller plus loin :