
Dans le cadre de mon alternance chez My Lucky Day, j'ai contribué à TeamPulse, une application mobile de gestion d'équipes de sport (convocations, matchs, effectifs). À l'origine dédiée au football, elle s'est démocratisée et étendue à d'autres sports. Ma mission couvrait à la fois de la maintenance applicative et le développement d'une nouvelle fonctionnalité d'envergure.
Le contexte technique
TeamPulse est une application Kotlin ancienne, à la base de code peu maintenue : de nombreuses surcouches de patterns parfois surdimensionnées et une architecture peu claire rendaient le code difficile à lire et à faire évoluer. J'ai d'abord traité divers tickets de maintenance, ce qui m'a obligé à me repérer rapidement dans un projet complexe et à intervenir prudemment sur l'existant — un excellent exercice d'adaptabilité et de lecture de code legacy.
Ma mission principale : la composition d'équipe
J'ai été chargé d'ajouter, à la suite de la convocation des joueurs pour un match, tout un workflow de composition d'équipe. Je partais d'une maquette Figma assez succincte, ce qui m'a laissé une belle liberté de conception : j'étais en contact direct avec les valideurs pour proposer et confronter mes idées.
Voici ce que j'ai conçu et développé :
- Une interface de terrain interactive permettant de choisir une composition de départ
- Le placement des joueurs à chaque poste, l'échange entre eux et la gestion des remplaçants
- Le déplacement libre des joueurs sur le terrain — par exemple pour passer sur une composition asymétrique ou non prévue par les schémas existants
- Une page de visualisation de la composition finale
- Un export en PNG du schéma tactique
- Un bouton d'envoi des convocations, avec ou sans le schéma tactique joint
Aperçu

Choix technique : Jetpack Compose dans une app Kotlin existante
J'ai réalisé toute cette fonctionnalité en Jetpack Compose, intégré au sein de l'application Kotlin existante (l'encapsulation d'écrans Compose dans une base historique est tout à fait possible). Ce choix a été fait en accord avec l'équipe car il rendait le développement plus simple, plus maintenable, plus à jour et plus abouti graphiquement que les approches en place.
Résultat & apprentissages
Cette mission m'a permis de monter en compétences sur Jetpack Compose, notamment sur des interactions riches (drag & drop, positionnement libre) et la génération d'images. Elle m'a surtout appris à travailler efficacement dans une base de code contrainte et peu documentée, à faire des propositions de conception autonomes et à dialoguer avec les valideurs pour livrer une fonctionnalité utile et soignée.