Application de gestion des finances personnelles développée avec React Native et Expo.
- Suivi des dépenses et revenus
- Catégorisation des dépenses
- Vue d'ensemble du solde
- Conversion automatique des devises
- Notifications pour les transactions
- Authentification sécurisée
- Compatible Web, iOS et Android
- React Native
- Expo
- TypeScript
- Expo Router
- Axios
- SecureStore
- FileSystem
- Notifications
-
Node.js
- Version 16.0.0 ou supérieure
- Téléchargement : nodejs.org
- Vérification :
node --version
-
npm ou yarn
- npm est installé avec Node.js
- Vérification :
npm --version
-
Expo CLI
npm install -g expo-cli
-
Expo Go sur mobile
- App Store pour iOS
- Google Play pour Android
-
Cloner le projet
git clone https://github.com/votre-username/finance-tracker.git cd finance-tracker
-
Installer les dépendances
npm install
-
Configuration des variables d'environnement
- Copier le fichier
.env.example
vers.env
cp .env.example .env
- Modifier les variables dans
.env
:
EXPO_PUBLIC_API_URL=votre_url_api EXPO_PUBLIC_EXCHANGE_RATE_API_KEY=votre_clé_api
- Copier le fichier
-
Démarrer en mode développement
npm run dev
-
Accéder à l'application
- Web : Ouvrir http://localhost:8081
- Mobile : Scanner le QR code avec l'app Expo Go
npm run dev
: Démarre le serveur de développementnpm run build:web
: Construit la version web de productionnpm run lint
: Vérifie le code avec ESLintnpm run test
: Lance les tests unitaires
-
Port déjà utilisé
kill -9 $(lsof -ti:8081)
-
Cache Expo
expo start -c
-
Dépendances
rm -rf node_modules npm install
app/
├── (tabs)/ # Routes principales
│ ├── _layout.tsx # Navigation
│ ├── index.tsx # Accueil
│ ├── expenses.tsx # Dépenses
│ └── profile.tsx # Profil
├── context/ # Contextes React
├── services/ # Services API
├── types/ # Types TypeScript
├── utils/ # Utilitaires
├── _layout.tsx # Layout principal
├── login.tsx # Connexion
├── addExpense.tsx # Ajout dépense
└── addTransaction.tsx # Ajout transaction
- Support de multiples devises (EUR, USD, GBP, JPY, CHF, CAD, AUD)
- Conversion automatique des montants
- Taux de change mis à jour quotidiennement
- Mise en cache des taux de change
- Changement de devise à la volée
- Connexion email/mot de passe
- Stockage sécurisé
- Session persistante
- Ajout dépenses/revenus
- Historique
- Catégorisation
- Calcul du solde
- Alimentation
- Transport
- Shopping
- Factures
- Divertissement
- Santé
- Éducation
- Autres
- Cache des transactions
- Cache des taux de change
- Cache des images
- Stockage optimisé
- Notifications push
- Notifications locales pour les nouvelles transactions
- JWT pour l'authentification
- Stockage sécurisé des données sensibles
- Validation des données
- iOS
- Android
- Web
npm run build:web
Voir Documentation Expo
- Générer une clé de signature (à faire une seule fois) :
keytool -genkeypair -v -storetype PKCS12 -keystore my-finance-key.keystore -alias my-finance-alias -keyalg RSA -keysize 2048 -validity 10000
- Configurer les variables d'environnement dans
app.json
:
{
"expo": {
"android": {
"package": "com.mycompany.finance",
"versionCode": 1
}
}
}
- Créer un fichier
eas.json
à la racine du projet :
{
"build": {
"preview": {
"android": {
"buildType": "apk"
}
},
"production": {
"android": {
"buildType": "app-bundle"
}
}
}
}
- Installer EAS CLI :
npm install -g eas-cli
- Se connecter à Expo :
eas login
- Configurer les credentials :
eas credentials
- Lancer la build :
# Pour un APK de test
eas build -p android --profile preview
# Pour un bundle de production
eas build -p android --profile production
- Récupérer l'APK :
- Une fois la build terminée, EAS fournira un lien pour télécharger l'APK
- L'APK peut être installé directement sur les appareils Android
- Le bundle (.aab) doit être soumis sur le Play Store
Notes importantes :
- Conservez la clé de signature (.keystore) en lieu sûr
- Sauvegardez le mot de passe de la clé
- Utilisez la même clé pour toutes les mises à jour
- Ne partagez jamais la clé de signature
npm run test
- TypeScript strict
- Composants fonctionnels
- StyleSheet.create
- Context API
MIT