Les projets personnels de Ritchie Dagonia
Je suis Ritchie Dagonia, 19 ans, développeur web front-end à Lyon, et voici quatre projets personnels que je fais avancer le soir et le week-end. Ils n'ont rien de spectaculaire, mais ce sont eux qui m'ont appris le plus, et qui m'ont donné la confiance nécessaire pour commencer à travailler aussi jeune. Pour chacun, je note l'objectif de départ, les technologies choisies, la difficulté rencontrée et ce que j'en retiens.
projet 01 · portfolio
Mon portfolio
Objectif
Avoir une page à moi, sans framework, qui se charge en une fraction de seconde et qui présente mon travail de façon sobre. Je voulais aussi un terrain de jeu pour tester les nouveautés CSS sans risquer de casser quelque chose d'important.
Technologies
HTML sémantique, CSS moderne (grille, variables, container queries) et zéro JavaScript. Les pages sont écrites à la main, versionnées avec Git et mises en ligne comme de simples fichiers statiques.
Difficulté rencontrée
Le plus dur a été de résister à l'envie d'en faire trop. Chaque animation supplémentaire, chaque effet au survol ajoutait du bruit. J'ai fini par supprimer la moitié de ce que j'avais construit, et la page en est ressortie plus claire.
Ce que j'en retiens
Un site sans dépendance vieillit très bien. Et l'exercice de tout faire en CSS pur m'a montré à quel point le langage est devenu puissant : beaucoup de choses pour lesquelles je sortais du JavaScript se font aujourd'hui en quelques lignes de style.
projet 02 · météo
Une application météo
Objectif
Afficher la météo de l'endroit où je me trouve et des prévisions sur quelques jours, avec une interface qui reste lisible dehors, en plein soleil, sur un téléphone tenu d'une main.
Technologies
React avec TypeScript, une API publique de prévisions, et une couche CSS pilotée par des variables pour gérer un thème clair et un thème sombre selon l'heure de la journée.
Difficulté rencontrée
Gérer tous les états de l'interface : chargement, erreur, absence de connexion, permission de géolocalisation refusée. La version où tout va bien se code en une soirée ; les cas limites m'ont pris trois semaines.
Ce que j'en retiens
Une interface, c'est d'abord une liste d'états. Depuis ce projet, je commence par dessiner chaque état sur papier avant d'écrire le premier composant, et cela m'évite beaucoup de retours en arrière.
projet 03 · jeu
Un jeu de mémoire
Objectif
Recréer le jeu des paires de cartes, mais entièrement accessible : jouable au clavier, annoncé correctement par un lecteur d'écran, avec des animations qui respectent la préférence de mouvement réduit.
Technologies
JavaScript sans framework, animations CSS pour retourner les cartes en trois dimensions, attributs ARIA pour décrire l'état de chaque carte, et quelques tests de bout en bout pour vérifier qu'une partie se termine bien.
Difficulté rencontrée
Faire cohabiter une animation de retournement et une annonce vocale claire. Retourner une carte visuellement et dire « carte retournée, cœur » au bon moment demande de bien séparer l'état du jeu de son affichage.
Ce que j'en retiens
L'accessibilité n'est pas une couche qu'on ajoute à la fin. Quand elle est prévue dès le départ, elle rend le code plus propre, parce qu'elle oblige à nommer les choses et à décider qui fait quoi.
projet 04 · habitudes
Un outil de suivi d'habitudes
Objectif
Cocher chaque jour quelques habitudes (boire de l'eau, prendre le vélo, lire un peu de documentation) et voir la série en cours d'un coup d'œil, sans compte ni synchronisation.
Technologies
Vue avec TypeScript, stockage local dans le navigateur, et une petite grille CSS façon calendrier dont les cases changent de couleur selon la régularité.
Difficulté rencontrée
Les dates. Les changements d'heure, les fuseaux horaires et le passage à minuit m'ont fait perdre des séries entières pendant les tests. J'ai fini par ne manipuler que des chaînes de dates locales, sans heure du tout.
Ce que j'en retiens
Choisir un framework que je connais moins m'a forcé à relire la documentation au lieu de coder par réflexe. Et les dates restent le sujet le plus sournois du développement web, quel que soit l'outil.
Et la suite
Ces projets vivent dans un dépôt Git sur mon ordinateur et évoluent au fil de mes envies. Je ne les considère jamais tout à fait terminés : chaque nouvelle chose apprise me donne envie de revenir dessus, de simplifier un composant ou de corriger un détail d'accessibilité que je n'avais pas vu.
Si vous débutez, je vous conseille de faire pareil : choisir des projets petits, utiles pour vous, et les finir avant d'en commencer d'autres. C'est de cette manière que j'apprends le plus vite, bien plus qu'en accumulant des tutoriels. Pour en savoir plus sur ma façon de travailler au quotidien, retournez à la page d'accueil.