MONA est un projet lancé en 2017 et dirigé par Lena Krause, coordinatrice depuis le premier jour. Également soutenu par des professeurs de l'Udem et en partenariat avec de nombreux organismes de diffusions et de médiations culturelles, MONA se veut à mi-chemin entre l'art et la technologie, mêlant des élèves du département de l'histoire de l'art et du département d'informatique de l'UDEM.
MONA, c'est avant tout une volonté de partager et de promouvoir l'art public au Québec. Sous forme de lieux et d'oeuvres que l'on collectionne, l'utilisateur découvre l'art autour de lui et est invité à prendre en photo et commenter l'oeuvre qu'il croise. Les ressentis et réactions des utilisateurs sont ensuite utilisés anonymement par les élèves du département de l'histoire de l'art, qui bénéficie alors d'une large banque d'informations afin de mener leurs recherches. Ces mêmes élèves, en partenariat avec de nombreux établissements, mettent en ligne une collection d'oeuvres d'arts et de lieux culturels la plus large possible et la plus représentative de l'art présent au Québec, en mettant par exemple un certain accent sur les oeuvres autochtones.
MONA, c'est aussi un projet informatique. Par le biais d'une carte et d'un système que l'on pourrait comparé à celui de Pokémon GO, on invite l'utilisateur à repérer les oeuvres autour de lui, en différentiant celles collectionnées et celles à découvrir, et à se déplacer vers l'oeuvre qu'il veut découvrir. Cela demande une coordination parfaite entre le serveur où l'on garde les nombreuses oeuvres présentes sur l'application et l'interface auquel fait face l'utilisateur, ainsi qu'avec les données que l'utilisateur va rentrer après avoir vu une oeuvre : sa photo, son commentaire, etc. La structure informatique nécessaire à l'implémentation d'un tel système se construit depuis 3 ans maintenant et ne cesse de se corriger et de s'améliorer, voulant toujours proposer une expérience toujours plus agréable à l'utilisateur.
Ce projet se veut exigeant dans son élaboration et très ouvert dans son utilisation. On invite l'utilisateur à découvrir le monde qui l'entoure et à réfléchir sur ce qu'il voit. Son regard sur le paysage urbain se trouve alors transformé et plus intelligent, ou au moins plus conscient de la diversité et de la richesse artistique de son environnement.
Le projet m'a séduit dès les premiers instants. Mélanger arts et technologie étant le fondement du projet professionnel que je souhaite mener, j'ai envoyé ma candidature dans les secondes qui ont suivi la découverte du projet. Je vais tout faire pour être à la hauteur du projet et des différents défis qui se présenteront à moi, je pense que cette expérience sera immensément enrichissante !!!
Suite à une première réunion avec Lena, Simon et Yuning, des premiers objectifs ont pu être mis en place. Ces derniers seront bien sur amenés à changer en fonction de mon avancement.
Durant les 4 prochains mois, je vais travailler sur l'application Android. Il faudra dans un premier temps que je me familiarise avec le langage de programmation Kotlin ainsi qu'avec l'IDE sur lequel je vais programmer. La dernière étape sera enfin de comprendre le code déjà écrit, ce qui ne sera pas une mince affaire, mais j'aurai la précieuse aide de Philippe Auclair. Lorsque ces prérequis seront remplis, je pourrai m'atteler à des tâches plus concrètes.
Ma première tâche d'importance intermédiaire a été d'implémenter un Pin de localisation que l'utilisateur peut placer où il le souhaite. Cela lui permettra d'avoir accès dans la liste aux oeuvres les plus proches du pin. C'est utile lorsqu'on veut regarder avant un déplacement les oeuvres qui seront présentes à un certain endroit.
La vraie trame de fond du projet sera pour moi d'implémenter la page des badges.
08/04 - 13/04
01/04 - 07/04
Le principal objectif de la semaine était de réussir à créer la database pour les badges. La question était de savoir si je voulais créer une nouvelle table dans la database des oeuvres ou si je voulais créer une autre database entièrement. Mes recherches furent peu fructueuses. En ligne aucune implémentation trouvable ou conseillée ne ressemblait à celle de MONA (l'implémentation d'un DatabaseManager revient souvent).
Suite à ça la compilation d'Android studio ne voulait plus marcher. En essayant d'accéder au Database Inspector (l'outil d'Android Studio qui permait d'afficher les databases que l'application manipulent), je signais mon arrêt de mort, impossible de relancer l'application. J'en restais la pour la semaine, qui était grandement chargée par la remise d'un autre gros projet, mais prenais mes dispositions avec Philippe pour vaincre Android Studio et aller chercher les badges dans le serveur !
24/03 - 31/03
Suite à une session de travail avec Philippe, nous avons sorti une version "fix" de l'application, nous avons résolu un bug qui faisait charger les oeuvres de la database alors que l'utilisateur n'avait pas autorisé l'application à modifier les fichiers du téléphone, crash instant. Un autre bug concernait la localisation qui parfois ne marchait plus et provoquait un crash, fixed!
Néanmoins un gros bug reste non-résolu. Pour les utilisateurs ayant précédemment des oeuvres dans leurs collections ne peuvent plus ouvrir l'app. Le transfert des photos et des oeuvres d'arts bug sévèrement. J'ai sollicité l'aide de Yunning pour voir si c'était un soucis avec la database, mais toute tentative de résolution reste sans succès pour l'instant.
J'ai pu mettre du temps sur la conception théorique des fonctions que l'on appelera depuis l'application pour récupérer les badges. J'ai aussi pensé au système de Pop-Up pour montrer à l'utilisateur qu'il a débloqué un nouveau badge. Je suis assez content de mes avancées. De maintenant à la fin de l'implémentation des badges je sais exactement quoi faire. Dernière étape pour relier le tout : aller chercher les badges qui sont dans le serveur. Processus qui ne sera pas sans bug, mais que l'on aura l'occasion de voir ensemble avec Simon et Philippe la semaine prochaine.
J'ai aussi eu une réunion avec Barbara et Quentin pour faire le point sur les nouveaux graphismes et sur une nouvelle possible implémentation des badges et de la collection. La nouvelle charte graphique laisse entrevoir un grand potentiel.
17/03 - 23/03
Les problèmes d'upload et de release furent résolus, l'application était enfin en ligne. Après de nombreuses guerres avec Google Play, la solution (si instinctive) fut d'uploader une release de test "vide" (au sens propre du terme). Cela débloqua la situation, remercions Google pour leur clarté !
J'ai aussi pu passer du temps à reprendre mon premier debut de code pour les badges ainsi que de reprendre le modele vu avec Philippe. Le gros de la semaine fut surtout passé sur la release de l'application. Une fois cela fait on s'est rendu compte que de nombreux crash opéraient. On avait vaillamment réussi à mettre la géo-loc et à la rendre légal, mais au prix de nombreux crash et de bug.
10/03 - 16/03
Suite à la préparation de la rencontre, et la rencontre elle-même, avec Guy Lapalme, j'ai pu me replonger dans les badges. L'objectif était clair : c'était à moi de concevoir le bon modéle d'implémentation pour les badges, les premiers essais hasardeux avec Phlippe avaient été peu cloncluant. J'ai proposé un modèle re-travaillé à Lena, afin de vérifier aussi en terme de graphisme ce qui voulait être fait sur le long terme et en vérifier la compatibilité, ainsi qu'à Philippe, qui a pu apporté sa connaissance pour améliorer ma première version.
Le reste de la semaine a été occupé à résoudre le problème d'upload de mise à jour sur le google play avec Lena. Ce fut un échec cuisant, ou presque...
24/02 - 09/03
En premier lieu j'ai fini la vidéo et la justification concernant l'utilisation de la background location par l'application au près de Google Play. J'attends encore la réponse depuis.
Avec Philippe et Simon nous avons commencé à rentrer plus intensément dans le code et l'implémentation des badges. Simon nous a montré une première ébauche du fichier Json que l'on va aller chercher pour avoir les données sur les badges. Avec Philippe on a pu vite fait établir un plan pour l'implémentation dans Android Studio. Il m'a notamment aidé à faire toutes les classes intermédiaires entre notre code front-end et le serveur. La semaine de relâche a surtout été pour moi l'occasion de créer et coder des premiéres versions d'activité de badges, ainsi que le layout. En dehors du travail sur la database, tout a du être eventuellement repensé, mais cela m'a permis de manipuler Android Studio en détail
17/02 - 23/02
Avec Philippe, nous avons préparé une version finale de l'application sans localisation. Détecter où le background location s'active n'était pas possible, on a alors choisi de faire sans et de publier cette version de l'application. Mais suite à des discussions avec Lena nous avons rebrousser chemin. Le combat continue avec Google Play : le but est de justifier notre utilisation de la background location pour qu'il nous l'accorde.
Lena m'a aussi donné les nouvelles icones pour la nav bar de l'application Android. Le changement a été effectué sans aucun soucis.
10/02 - 16/02
Cette semaine fut moins tournée programmation. Après une présentation du pin de localisation et des discussions autour du potentiel design avec Lena, Yunning et Simon, j'ai pu me concentrer sur d'autres tâches le reste de la semaine.
Le vendredi avec Philippe, nous avons commencer les recherches concernant le problème de mise à jour de l'application sur le Google Play Store. Le problème a été identifié, il s'agit de la foreground location (autorisée) qui se permet de tourner lorsque l'application est fermée (pas autorisée). Pour l'instant pas de solutions claire mais cela devient temporairement la tâche la plus importante. Le fait que l'application puisse tourner correctement et être téléchargeable est crucial.
J'ai aussi préparé une présentation d'un concept visuel que j'avais en tête pour le design du pin de relocalisation ainsi que de la position de l'utilisateur sur la carte, le modèle n'était pas claire. J'ai aussi pu faire des recherches sur le dark mode d'OpenStreetMap, qui n'existe malheureusement pas officiellement, mais peut être potentiellement implémentable manuellement. Ces éléments viennent compléter la réunion que Lena aura avec la graphiste Barbara ce mardi soir.
À la suite de la semaine de midterms je me concentrerai urgement sur le problème de mise à jour de l'application. Dès que cela sera réparé je pourrai commencer l'implémentation des badges.
03/02 - 09/02
La sauvegarde de la position du pin a été effectué. La liste se met à jour toute seule quand on change le pin de place. De plus un bouton pour se recentrer à la position de l'utilisateur a été implémenté, sur la carte et dans la liste, les deux marchent et recentrent la position du pin et les distances par rapport aux oeuvres à la position originel de l'utilisateur.
En préparation de la discussion avec la graphiste autour du rendu visuel du pin ainsi que du bouton de relocalisation, j'ai fait une étude de marché des différentes manières de représenter la position de l'utilisateur sur une carte ainsi que sur les autres implémentations connues de pin.
J'ai également pu résoudre le bug qui concernait l'ordre des pages dans l'appli Android qui n'était pas le bon.
27/01 - 02/02
La semaine fut surtout marqué par les deux réunions que j'ai pu avoir avec Philippe mercredi et vendredi. Dans la première on a pu mettre en place mon environnement de travail et vérifier que mon code roulait sur mon ordi, ainsi qu'en lançant l'appli directement sur mon téléphone. La deuxième, fut entièrement consacré à l'implémentation de nouvelles fonctionnalités.
Philippe m'avait préalablement indiqué quels fichiers allait être modifier, j'ai pu étudier leurs codes avant vendredi pour ne pas être perdu le jour J. La séance fut très fructueuse. En alternant des recherches chacun de notre côté et du peer-programming, on a pu étudié efficacement la doc osmdroid et arriver rapidement à des résultats.
Le but était d'implémenter la modification de la localisation de l'utilisateur. Le pin était précédemment bloqué à une seule position, celle initial de l'utilisateur. On appuyant longtemps sur la carte on peut maintenant rédéfinir sa position, le pin changera automatiquement de position, on peut également réinitialiser la localisation du pin pour qu'elle revienne à la position initiale. Pour se faire, les fonctions onCreate et onCreateView ont été modifiées et améliorées. La prochaine étape sera d'updater dans la liste la distance entre les oeuvres et la nouvelle localisation du pin. Il s'agira aussi de sauvegarder la dernière position du pin dans l'application.
21/01 - 26/01
Je n'ai pu assister à la réunion de la semaine dernière j'étais dans l'avion ! J'ai pu rattraper avec Lena le vendredi. On a en premier lieu essayé de mettre en ligne sur les serveurs du DIRO la v1 du site-rapports MONA, ce fut un échec cuisant, git m'a surpassé sur tous les plans mais j'ai pu me venger plus tard...
La réunion de vendredi m'a surtout permis de rencontrer Philippe et de discuter avec lui. On a pu dans un premier temps se présenter, discuter de ce que je savais faire, puis il m'a introduit au github du projet (j'ai maintenant accès à la partie "mona-kotlin") ainsi qu'aux tâches qu'on pouvait définir sur le projet github, qui servent un peu de TO-DO liste et de ligne directrice. On a ensuite parlé de ce que je pourrais potentiellement commencer à faire dès que j'aurai pris connaissance plus en profondeur de Android Studio. Dans cette même idée, en plus de ce que je commence à apprendre dans mon cours d'Interfaces Personne-Machine qui utilise le même logiciel, on s'est mis d'accord avec Philippe pour une première séance plus intense mercredi à 18h pour rentrer plus intensément dans le code Android Studio du projet ainsi que dans la compréhension du logiciel, qui n'est pas si instinctif que cela de prime abord.
De mon côté, j'ai doucement commencé à étudier le fonctionnement d'Android Studio, lentement mais sûrement. Le fait d'avoir pris le cours IFT2905 en même temps m'aide beaucoup !
Quant à git... Après une première manche humiliante j'ai su me ressaisir et remonter au créneau ! J'ai su trouver les mots pour faire plier le ssh du DIRO à ma volonté, un simple git pull m'a suffi pour le mettre à genoux et pour résoudre tous mes problèmes. Le site est maintenant en ligne, mes rapports sont enfin visibles, et 3 petites lignes de codes dans le terminal me permettent de mettre à jour les potentiels changements.
Voici la démarche à suivre pour ceux qui voudrait à cloner leur projet git sur leur site du DIRO :
14/01 - 20/01
Après une première réunion avec Lena, Simon et Yuning, j'ai pu me mettre à jour sur les premières étapes de l'aventure MONA. Chacun doit créer un site qui lui permettra de communiquer avec Guy Lapalme, la personne qui supervise le projet, afin de lui rendre compte de son avancé dans le projet. N'ayant pas d'expériences concrètes dans la création de site j'ai suivi les conseils de Lena et j'ai utilisé Bootstrap 4 pour créer mon site. Je me suis aussi basé sur les sites de Philippe Auclair et de la bêta du site de Simons qu'il nous a gentiment partagé. J'ai pu établir les bases de mon site plutôt rapidement, et pu commencer à rédiger les différentes sections : Accueil présente le projet, Objectifs présente les différentes tâches que je dois remplir (qui vont surement évoluer) et Rapports va tenir à jour sous forme de rendu hebdomadaire mon avancé dans mon travail.
Je finis la rédaction de la présentation du projet en page d'accueil du site. Je ne pourrais pas assister à la réunion de ce mercredi étant dans l'avion, mais un compte rendu me sera disponible ultérieurement, et j'aurais une réunion avec seulement Lena et Philippe Auclair Vendredi pour mettre en place mon outil de travail, Android Studio.