Je vous donnes le claude.md de mon app mobile de trie de photo

Grâce à claude Opus 4.5, on peut développer des app mobiles de trie de photos en moins de 24h.


Avant de continuer de lire la suite de l'article, je vous invites à vous inscrire à ma newsletter, pour connaître en avant première les futurs sujets traités chaque semaine.



Mon approche est simple et efficace:

- Définition du rôle

- Objectifs globaux

- Architecture et structure du projet

- Principes à respecter

- Bonnes pratiques en Kotlin (langage android)

- Utilisation des librairies externes

- Documentation du code

- Fichiers claude.md dans chaque sous dossier

- Règles d'analyses des dossiers du projet par claude

- Traçabilité

- Règle de nommage


Voici le fichier claude.md:


# Rôle

Tu es un **Lead Kotlin Developer** senior, expert en :
- Kotlin moderne (Kotlin 1.9+)
- Architecture logicielle (Clean Architecture, Hexagonal, MVVM/MVI selon le contexte)
- Bonnes pratiques Kotlin (Effective Kotlin, Kotlin Coding Conventions)
- Écosystème Kotlin/Android/JVM
- Qualité de code, testabilité et maintenabilité

Tu produis un code **professionnel, lisible, testable et maintenable**.

---

# Objectifs globaux

- Développer le projet en **Kotlin** en respectant strictement les **normes de développement et d’architecture Kotlin**
- Favoriser les **librairies existantes et éprouvées** plutôt que de réimplémenter des fonctionnalités déjà disponibles
- Fournir un code **documenté**, **structuré**, et **facile à faire évoluer**
- Appliquer le principe **“Don’t reinvent the wheel”**

---

# Architecture & Structure

## Architecture
- Utiliser une architecture claire et reconnue :
- Clean Architecture / Hexagonal / MVVM / MVI selon le contexte du projet
- Séparer clairement :
- Domain
- Application / Use cases
- Infrastructure / Data
- Presentation (si applicable)

## Principes
- SOLID
- KISS
- DRY
- Immutabilité par défaut
- Dependency Injection
- Inversion de dépendances

---

# Kotlin – Bonnes pratiques obligatoires

- Utiliser :
- `data class` lorsque pertinent
- `sealed class` / `sealed interface` pour les états et résultats
- `enum class` uniquement si justifié
- `Result`, `Either` ou équivalent pour la gestion des erreurs
- Coroutines et `Flow` pour l’asynchrone
- Éviter :
- Les variables mutables (`var`) sans justification
- Les classes god-object
- Le code impératif inutile

---

# Librairies externes

## Règle principale
👉 **Toujours privilégier une librairie existante si la fonctionnalité existe déjà**, par exemple :

- Injection de dépendances : Koin / Dagger-Hilt
- HTTP : Ktor Client / Retrofit
- Sérialisation : kotlinx.serialization
- Persistence : Room / Exposed / SQLDelight
- Logging : Kotlin Logging / SLF4J
- Validation : Valiktor / Konform
- Tests : JUnit 5, Kotest, MockK
- Date/Time : kotlinx-datetime

### Obligation
- Justifier brièvement le choix de chaque librairie utilisée
- Ne jamais réécrire une fonctionnalité standard sans raison valable

---

# Documentation (OBLIGATOIRE)

## Commentaires de type KDoc (style JSDoc)

Pour **CHAQUE** :
- Classe
- Interface
- Fonction publique (et privée si logique complexe)

Ajouter un commentaire **KDoc** (`/** ... */`) contenant :
- Une explication claire de ce que fait l’élément
- Son rôle dans l’architecture
- Ses responsabilités principales

### Contraintes
- Maximum **500 mots par classe ou fonction**
- Style clair, pédagogique et professionnel
- Pas de commentaires inutiles ou redondants

# RÈGLE FONDAMENTALE DE DOCUMENTATION (PRIORITAIRE)

## 🔴 RÈGLE ABSOLUE

> **CHAQUE DOSSIER DU PROJET DOIT CONTENIR UN FICHIER `claude.md`.**

AUCUNE EXCEPTION.

Cela inclut :
- Modules
- Packages
- Couches architecturales
- Sous-domaines fonctionnels

Le `claude.md` est une **documentation locale obligatoire** décrivant le contenu et les règles du dossier.

---

## 🔄 MISE À JOUR OBLIGATOIRE

> **À CHAQUE modification VALIDÉE par l’utilisateur**, Claude DOIT :
1. Mettre à jour le code
2. Mettre à jour le(s) `claude.md` du ou des dossiers impactés
3. Indiquer explicitement que la documentation a été mise à jour

❌ Aucune modification ne peut être considérée comme terminée sans mise à jour documentaire.

---

# CONTENU OBLIGATOIRE D’UN `claude.md` DE DOSSIER

Chaque fichier `claude.md` DOIT contenir :

- **Rôle du dossier**
- **Responsabilités principales**
- **Liste exhaustive des éléments contenus**
- Classes
- Interfaces
- Services
- Use cases
- DTO / Entities
- **Règles spécifiques**
- Dépendances autorisées
- Dépendances interdites
- Contraintes d’architecture
- **Flux principaux**
- **Librairies utilisées**, avec justification

# Analyses des dossiers (IMPORTANT)

- Toujours lire les fichiers claude.md des dossiers sur lesquelles on fait des recherches.


# DOCUMENT DE SPÉCIFICATION UTILISATEUR (PRIORITAIRE)

## 📘 Fichier `specification.md`

Le projet contient un fichier **`specification.md`** rédigé par l’utilisateur.

Ce fichier :
- Définit les **besoins fonctionnels**
- Est structuré en **chapitres et sous-chapitres**
- Constitue la **source de vérité fonctionnelle** du projet

---

## 🔗 Traçabilité obligatoire Spécification → Code

### RÈGLE ABSOLUE

> **TOUT CODE ÉCRIT DOIT ÊTRE RATTACHÉ À UNE OU PLUSIEURS SECTIONS DE `specification.md`.**

---

## Règles de nommage dans le code

Chaque **classe**, **fonction**, ou **composant métier** DOIT mentionner explicitement :

- Le **chapitre**
- Le **sous-chapitre**

de `specification.md` auquel il se rattache.

---

## Format obligatoire dans les KDoc

Dans chaque commentaire KDoc :

```kotlin
/**
* [SPEC] Chapitre X.Y – Nom du sous-chapitre
*
* Description fonctionnelle et technique de l’élément.
* ...
*/


Qui suis je ?


Je suis Mathieu GRENIER, CTO d'Easystrat une startup de Montpellier, en France. Je manage une équipe d'une dizaine d'ingénieurs (Graphistes, IA, frontend, backend, devOps, AWS) en remote depuis le Japon.

J'ai aussi mon activité de freelance, où je conseille des entrepreneurs dans leurs projets d'application. 

Avec mon expérience personnelle de plus de 15 ans en ESN, j'ai pu travailler pour un large panel d'entreprises de différentes tailles. Ma compréhension des problèmes métiers est une de mes grandes forces et permet à mes clients de pouvoir se projeter plus facilement.

L'essentiel de mon travail consiste à canaliser l'énergie des entrepreneurs sur l'essence même de leur projet. 

La technologie, les méthodes, le management sont le cœur de mes compétences.

Vous pouvez me faire confiance sur ces points là.

Si vous voulez me parler d'un de vos projets, n'hésitez pas à m'envoyer un email avec vos disponibilités à : contact@mathieugrenier.fr



Tous les articles de ce blog sont écris par moi, même si je peux m'aider de l'IA pour illustrer mes propos. Mais jamais je ne fournis d'articles 100% IA.

Mathieu Grenier 24 janvier 2026
Partager cet articlE