Application mobile React Native permettant la gestion de groupes et l'invitation de membres.
- Framework: Expo (~54.0.12) avec React Native 0.81.4
- Navigation: Expo Router (file-based routing)
- Ătat Global: Redux Toolkit avec React Redux
- Backend: Supabase (authentification, base de données)
- Styling: React Native StyleSheet
- IcĂŽnes: Lucide React Native
- TypeScript: Support complet avec typed routes
- Tests: Vitest avec support des tests unitaires et d'intégration
- Linting: Biome
src/
âââ components/ # Composants rĂ©utilisables
âââ config/ # Configuration de l'application
âââ features/ # Features organisĂ©es par domaine
â âââ auth/ # Authentification
â âââ group/ # Gestion des groupes
â âââ notification/# Notifications
â âââ onboarding/ # Onboarding utilisateur
â âââ user/ # Gestion utilisateur
âââ lib/ # BibliothĂšques et clients (Supabase, etc.)
âââ navigation/ # Configuration de navigation
âââ store/ # Redux store et configuration
âââ test/ # Utilitaires de test
âââ theme/ # ThĂšme et styles
âââ types/ # Types TypeScript partagĂ©s
- Node.js (version recommandée: 18+)
- pnpm (ou npm)
- Expo CLI
- iOS: Xcode et CocoaPods
- Android: Android Studio et SDK
pnpm installPour iOS, installer également les pods:
cd ios && pod install && cd ..Créer un fichier .env.local à la racine du projet:
# Supabase Configuration
SUPABASE_URL=votre_url_supabase
SUPABASE_ANON_KEY=votre_cle_anon
# Pour les tests locaux (optionnel)
SUPABASE_USE_LOCAL=true
SUPABASE_LOCAL_URL=http://localhost:54321
SUPABASE_LOCAL_ANON_KEY=votre_cle_localeVoir .env.local.example pour plus de détails.
# Démarrer le serveur de développement
pnpm start
# Démarrer sur iOS
pnpm ios
# Démarrer sur Android
pnpm android
# Démarrer sur Web
pnpm webpnpm start- Démarrer Expopnpm ios- Lancer sur iOSpnpm android- Lancer sur Android
pnpm lint- Vérifier le code avec Biomepnpm lint:fix- Corriger automatiquement les erreurspnpm format- Formater le codepnpm typecheck- Vérifier les types TypeScript
pnpm test- Lancer les tests en mode watchpnpm test:run- Lancer tous les testspnpm test:unit- Tests unitaires uniquementpnpm test:integration- Tests d'intégrationpnpm test:integration:local- Tests avec Supabase localpnpm test:ui- Interface UI pour les testspnpm test:coverage- Rapport de couverture
pnpm supabase:start- DĂ©marrer Supabase localpnpm supabase:stop- ArrĂȘter Supabase localpnpm supabase:status- Statut de Supabasepnpm supabase:reset- RĂ©initialiser la base de donnĂ©es
pnpm build:preview:android- Build preview Android (EAS)pnpm build:preview:ios- Build preview iOS (EAS)pnpm build:production- Build production (iOS + Android)
pnpm clean- Nettoyer les cachespnpm clean:ios- Nettoyer le cache iOSpnpm clean:android- Nettoyer le cache Androidpnpm clean:expo- Nettoyer le cache Expopnpm clean:all- Tout nettoyer (+ Watchman)pnpm nuke- Réinstallation complÚte du projet
Le projet utilise Vitest pour les tests avec deux types de tests:
pnpm test:unitTests des fonctions, hooks et composants de maniÚre isolée.
# Avec Supabase local (recommandé)
pnpm supabase:start
pnpm test:integration:local
# Avec Supabase distant
pnpm test:integrationTests end-to-end incluant les appels Ă Supabase.
- â Authentification - Connexion/Inscription via Supabase
- â Onboarding - Parcours d'accueil utilisateur
- â Groupes - CrĂ©ation et gestion de groupes
- â Invitations - SystĂšme d'invitation par token
- â Notifications - Gestion des notifications
- â Profil utilisateur - Gestion du profil
- SimplicitĂ©: Ăviter la complexitĂ© inutile
- Pragmatisme: Se concentrer sur les besoins réels
- Pas de sur-ingénierie: Solutions simples et efficaces
- Gestion d'erreurs: Pas d'erreurs silencieuses, exceptions explicites
- Architecture par features (domain-driven)
- Composants réutilisables dans
/components - Types TypeScript partagés dans
/types - Configuration centralisée dans
/config
Le projet utilise EAS (Expo Application Services) pour les builds:
# Preview
pnpm build:preview:android
pnpm build:preview:ios
# Production
pnpm build:production- Scheme:
equim:// - Package Android:
com.blackksun.equimapp - Bundle iOS:
com.blackksun.equimapp
- Respecter les conventions de code du projet
- Ăcrire des tests pour les nouvelles fonctionnalitĂ©s
- Vérifier que tous les tests passent:
pnpm test:run - Vérifier le lint:
pnpm lint - Vérifier les types:
pnpm typecheck
Privé - Tous droits réservés
pnpm clean:all
pnpm installpnpm reinstall:ios
pnpm rebuild:iospnpm rebuild:androidpnpm nuke