Titre du POK du temps 2

Tags :
  • POK
  • 2024-2025
  • temps 2
  • rust
  • GUI
  • iced
  • pokémon
  • diesel
  • orm
Auteurs :
  • Laura Vietor

Un POK traitant d'un sujet.

  • Des connaissances en Rust. La bilbiothèque utilisée pour l'interface graphique fait appel à de nombreux concepts avancés, mais leur compréhension intégrale n'est pas nécessaire pour l'utiliser dans le cadre d'une application "simple" comme celle-ci.
  • Figma
  • Iced, la bilbiothèque utilisé pour gérer l'interface graphique.
  • Diesel, l'ORM utilisé pour la gestion et le stockage des entités importantes dans ce POK.
  • Qu'est-ce qu'un pokémon chromatique sur le site Pokébip, qui explique ce qu'est un pokémon chromatique et en quoi consiste la "shasse" (de "chasse au shiny", dérivé du terme anglais "shiny hunting").

Pour ce POK, je souhaite développer une application Rust permettant de suivre ses recherches de pokémon dits chromatiques, qui sont des spécimens particulièrement rares d'une couleur inhabituelle. Elle contiendra dans un premier temps une liste de ses recherches et de ses trouvailles, ainsi que des compteurs pour suivre le nombre de pokémons vus, mais j'aimerais dans le futur y ajouter plus de fonctionnalités.

Tâches

Sprints

Sprint 1

Je vais consacrer ce premier sprint à l'initialisation du projet et au design de l'interface graphique avec Figma. Ce travail me permettra également de réfléchir aux fonctionnalités que je souhaite intégrer, ce qui dictera notamment les informations que je dois stocker dans ma base de données.

Sprint 2

Je vais consacrer ce second sprint à l'implémentation de l'interface graphique et des fonctionnalités "de base" (compteurs)

Horodatage

Date Heures passées Indications
18/10 2h Initialisation du projet & recherche des biblios à utiliser
19/10 1h Implémentation d'un squelette d'application pour me familiariser avec les possibilités de la bibliothèque
19/10 1h30 Design général de l'application
21/10 1h Design de l'écran des recherches
25/10 1h30 Design de l'écran des recherches & de l'écran des compteurs
28/10 0h30 Création d'icônes
30/10 1h Design d'écrans (recherches & compteurs)
04/11 1h30 Design de l'écran des trouvailles
16/11 1h30 Design de l'écran des trouvailles & retour sur les autres écrans pour harmoniser

Contenu

Premier Sprint

Le choix des bibliothèques

Pour ce projet, j'avais avant tout envie de créer une application en Rust avec une interface graphique. J'ai donc commencé par rechercher une bibliothèque pour faire cette interface graphique. J'avais quelques contraintes : je voulais faire une interface native, et je voulais pouvoir faire une application multiplateforme, qui supporterait au moins Linux et Windows. Parmi celels disponibles respectant ces conditions, mon choix s'est porté sur Iced pour trois raison : elle semblait plutôt facile d'utilisation, le paradigme employé m'a plu, et c'est la bibliothèque utilisée comme base par le projet Cosmic, un nouvel environnement de bureau (pour faire simple, un ensemble cohérent d'applications) pour Linux.

Ensuite, je dois gérer certaines données pour lesquelles un modèle relationnel m'a semblé idéal, j'ai donc cherché un ORM en Rust. J'ai trouvé en gros deux possibilités : Diesel et SeaORM. J'ai choisi Diesel parce qu'il supporte SQLite et parce que SeaORM utilise de la programmation asynchrone, avec laquelle je n'avais pas envie de m'embêter.

Maquette de l'interface graphique

Pour l'interface graphique, j'ai donc réalisé une maquette sur Figma :

Second Sprint