#MobDays 2018 : Présentation de « Thanos », un projet de monitoring des impressions !

Il y a un peu plus d’un mois, toutes les équipes de La Mobilery se réunissaient pour Les MobDays, notre système de Hack’Days.

Nous vous avons déjà présenté 2 projets, celui de La Gardenry, le potager collaboratif à retrouver ici et celui de « Trash & Go, le Uber de la déchetterie » à retrouver là.

Aujourd’hui, c’est au tour de l’équipe des Avengers de nous présenter Thanos, un projet de monitoring des impressions !

Les Avengers, ce sont Matthieu, Axel, Guillaume, Cédric et Quentin réunis autour du même thème « La Mobilery veut se mettre au vert. À vous d’imaginer les meilleures solutions pour promouvoir l’écologie ! »

Véritablement, nos MobDays ont commencés le 3 octobre 2018 avec Le lancement du LAUG (Lille Android User Group) et le talk de Gautier Mechling : “IoT avec Android Things”

Avec Matthieu, Guillaume et Quentin, sans savoir dans quelle équipe nous serions ni le thème de la future édition, nous étions sûrs d’une chose : ce serait à base d’Android Things.

Dès le départ, nous voulions arriver le jour J avec un projet en tête pour éviter de perdre trop de temps sur les réflexions autour du projet.
Cela avait été mal vécu par plusieurs d’entre nous et nous ne voulions surtout pas reproduire les erreurs du passé.

C’est donc avec un channel slack créé le 11 octobre que nous avons commencé à débattre autour de la solution que nous voulions mettre en place, une seule contrainte : Android Things.

Plusieurs idées ont émergé, contrôle de la climatisation, monitoring des impressions, extinction automatique des équipements jusqu’au contrôle direct du tableau électrique (n’ayons pas peur de rêver gros).

Après débat, nous étions fixés sur le monitoring des impressions, rêver gros c’est bien, mais garder la tête froide sur la réalisation du projet en environ 20h était importante.

Une fois sur place, nous avons su nous organiser assez rapidement, les rôles étant clairs, nous avons su garder un cap, que ce soit au niveau des développements, du hardware ou de la logistique.

La première journée a été axée particulièrement sur 2 points :

  1. la réalisation des maquettes en ce qui concerne l’application, cette dernière devait restituer les statistiques d’impressions que nous allions obtenir via le raspberry pi et Android Things.
  2. Les début du prototype du projet Android Things, au programme, un bandeau à LED qui vire du vert au orange au plus les impressions sont nombreuses.

Quelques soudures, des calculs d’électroniques très poussés (U=RI par exemple) plus loins, nous avions des maquettes OK et un POC de bandeau à LED opérationnel en fin de journée.

Le premier retour que nous pouvons faire c’est que ce qui est très pratique avec Android Things, c’est de pouvoir réutiliser ses connaissances et ses librairies favorites de tous les jours quand on fait de l’Android classic pour faire de l’IoT. Grosse force soulignée pendant le meetup que nous avons pu expérimenter.

Un autre point que nous avons mis en avant est le TDD et la séparation en modules, pendant que nous expérimentions l’allumage de LED, Matthieu développait le module qui nous permettrait de parser les informations de l’imprimante en pur Android library.

Fin de journée, c’est la raclette qui a eu raison de nous.

Le lendemain, c’était plus compliqué, rush du dernier jour, assemblage des pièces du puzzle, on a pu tester la robustesse de l’équipe pour de multiples raisons

  • L’imprimante est sur une authentification particulière propriétaire que nous n’avions pas le temps de ré-implémenter
  • Les librairies java pour parser du XML sont quasiment toutes dépréciées ou indisponibles sur Android, nous avons donc du ré-implémenter toute la solution malgré des tests OK à 100% en unit test purs (comme quoi les tests unitaires…)
  • La connexion wifi fait des siennes et les accès à firebase pour stocker les données se fait compliquée

De plus, l’application étant réalisée en Flutter, autre techno que nous avions envie de tester à l’époque, cela nous a rajouté le stress d’évoluer dans un milieu que nous ne maîtrisions pas totalement.

C’était donc dans un stress non négligeable que nous avons bouclé le projet, en rebondissant avec le vieil adage “Fake it until you make it”

  • Mocker les API
  • Faker les écrans

Grâce à cela, nous avons pu réaliser une démo correcte du concept qui était claire et explicite.

Malgré tout, cela reste le point noir de ces MobDays.

Pour résumer cette session, c’était très positif, nous avons appris énormément et joué avec des technologies intéressantes. Flutter, Firebase, Android Things pour ne citer qu’eux.