Skip to content

Structure d'une app

This content is not available in your language yet.

Une app daroms ne contient que son spécifique ; le reste vient de core/.

mon-app/
core/ sous-module daroms-speed-app (ne jamais modifier depuis l'app)
app/ Expo Router : routes minces uniquement
_layout.tsx (tabs)/ (auth)/ +not-found.tsx _dev/kitchen-sink.tsx
src/
features/<x>/ XScreen.tsx, hooks.ts, api.ts, schema.ts, components/, __tests__/
lib/ fonctions pures de l'app, testées
types/db.ts types Supabase générés (bun daroms db types)
generated/ registre des modules, généré (ne pas éditer)
brand.ts 5 valeurs de marque
app.manifest.ts nom, identifiants, modules, onglets, écrans, monétisation
app.config.ts configuration Expo dérivée du manifest (withDaroms)
app.spec.md cahier de l'app (écrit par /daroms-idea) : source unique pour Claude
locales/fr.json en.json textes de l'app, mêmes clés partout
supabase/migrations/ structure de la base, RLS
assets/source/icon.svg source de l'icône, du splash et du favicon
e2e/*.yaml flows Maestro
CLAUDE.md @core/_ai/CLAUDE.core.md + spécificités de l'app
.claude/ règles, skills, hooks synchronisés (daroms-*) + fichiers app-*
eas.json .env.example

Chaque écran a une route d’une ligne et un dossier de feature :

// app/(tabs)/books.tsx
export { default } from '@/features/books/BooksScreen'
Fichier Contient Règle
BooksScreen.tsx l’UI, uniquement @daroms/ui et tokens 4 états, <= 200 lignes
hooks.ts la logique de l’écran (requêtes, état local) pas de JSX
api.ts hooks TanStack Query, seul endroit où l’on parle à Supabase sorties validées zod
schema.ts schémas zod (ligne, saisie) et types -
components/ composants propres à la feature tokens seulement
Généré par la CLI Synchronisé depuis le cœur Écrit à la main
src/generated/, src/types/db.ts, assets/*.png .claude/rules/daroms-*, .claude/skills/daroms-*, hooks src/features/, src/lib/
squelettes g screen, g table (puis complétés) CATALOG.md, digest.md (dans core/) locales/*.json, app.spec.md
app.manifest.ts (réécrit par g screen, module add) brand.ts, migrations spécifiques

Les fichiers .claude/ préfixés daroms- sont écrasés à chaque synchronisation ; ce qui est propre à l’app porte le préfixe app- et n’est jamais touché.

  • @/ pointe vers src/ (@/features/books/api), ~/ vers la racine (~/brand).
  • Paquets du cœur : @daroms/ui, @daroms/ui/icons, @daroms/data, @daroms/lib, @daroms/i18n, @daroms/app, et @daroms/module-<slug> pour un module actif. Détail : Paquets.