25 juillet 2019

Optimisation de BilanPhoto 1.14

BilanPhoto Elèves Elèves-mini

Bonjour,

Une nouvelle mise à jour de BilanPhoto (1.14) est actuellement disponible et elle apporte des changements dans la structure de la base de données. Certains utilisateurs de BilanPhoto avaient remarqué un ralentissement important lorsque l'on allait dans l'espace "Professeur", et plus particulièrement lorsque l'on allait dans l'onglet "Photos".

Je n'avais pas remarqué ces ralentissements pour deux raisons : La première est que ceux-ci apparaissent après plusieurs centaines de photos et que je n'en prends pas autant pour tester. La deuxième est que le problème n'apparaissait que sur iPad et iPhone. J'utilise en général le simulateur d'iPad sur Mac et donc j'utilise le disque dur du Mac. Il semblerait que les caractèristiques techniques du disque d'un iPad font que les lectures de données sont plus lentes pour de grandes zones.

L'onglet "Photos" de BilanPhoto récupère toutes les informations sur les photos de la base de données. Ces informations comprennent les commentaires associés, les drapeaux, l'élève auquel est rattaché la photo. Ces informations étaient jusqu'à présent avec la photo, et donc lorsque je recherchais ces informations, même si je ne le demandais pas, la photo était aussi récupérée, comme elle faisait plusieurs dizaines ou centaines de kilo-octets, cela ralentissait l'opération qui pouvait prendre jusqu'à 20 secondes, contrairement au Mac où c'était indécelable. J'ai donc scindé les données X, d'un côté les informations que je récupère en une fois, et de l'autre,  les photos.

Un changement de structure, même aussi benigne que celle-ci, a des répercussions et des effets de bord.

  • La prochaine fois que vous lancerez BilanPhoto celui-ci effectuera une opération de conversion des données.
  • Ensuite, la structure de données change, donc les sauvegardes de "Elèves", pour tous les élèves ou pour un seul doivent être adaptées, ce que j'ai fait.
  • Enfin, la synchronisation de "Elèves" change, puisque se rajoute la nouvelle structure.

Donc j'ai mis à jour en même temps BilanPhoto, Elèves, et Elèves-mini. Après une petite période pour être sûr que tout va bien, je ferai sûrement les mêmes modifications pour ABC-PhotoBook et JeValide qui utilisent la même structure de données pour les photos et les enregistrements audio.

Le résultat de cette optimisation fait que dans ma base exemple (qu'une enseignante a bien voulu me confier) je suis passé de 18 secondes à 3 secondes. Je n'arrive pas à passer à moins de 3 secondes. Comme 3 secondes c'est encore trop pour une interface, j'ai modifié l'interface pour que l'on "voit" que l'iPad travaille, ainsi l'utilisateur saura qu'il doit attendre et ne tape pas partout en pensant que l'application est bloquée.

Ce genre de mise à jour n'a l'air de rien puisqu'il n'y a aucune nouvelle autre fonctionnalité, mais ce sont parmis les mises à jour les plus complexes à mettre en œuvre. J'espère que vous serez nombreux à apprécier ce gain de temps.

Merci de votre fidélité

Emmanuel CROMBEZ