🇫🇷 Français | 🇬🇧 English
- Android Studio Hedgehog (2023.1.1) ou plus récent
- JDK 17
- Un projet Firebase (plan Blaze — gratuit jusqu'à 2M invocations/mois)
- Node.js 18+ (pour déployer la Cloud Function)
git clone https://github.com/DevBot667/SecureChat.git
cd SecureChat- Aller sur Firebase Console
- Créer un projet (désactiver Google Analytics si souhaité)
- Ajouter une app Android :
- Package :
com.securechat - Télécharger
google-services.json
- Package :
- Copier
google-services.jsondansapp/ - Firebase Console → Authentication → Méthode de connexion → Anonyme → Activer
- Firebase Console → Realtime Database → Créer (région la plus proche)
- Onglet Règles → coller le contenu de
firebase-rules.json
- Firebase Console → Storage → Activer
- Onglet Rules → coller le contenu de
storage.rules - Vérifier que le bucket est dans la bonne région
# Installer Firebase CLI
npm install -g firebase-tools
# Se connecter
firebase login
# Depuis la racine du projet
cd functions
npm install
cd ..
firebase deploy --only functionsLa Cloud Function se déclenche automatiquement à chaque nouveau message et envoie un push aux destinataires qui ont activé les notifications.
⚠️ google-services.jsonest dans le.gitignore— il ne sera jamais poussé sur GitHub. Le fichierapp/google-services.json.templatemontre la structure attendue.
./gradlew assembleDebugOu ouvrir dans Android Studio → Run sur un émulateur ou device physique.
| Dépendance | Version | Usage |
|---|---|---|
| Kotlin | 2.1.0 | Langage |
| AndroidX Core / AppCompat / Material | Latest | UI Material Design |
| AndroidX Navigation | 2.8.9 | Navigation single-activity |
| AndroidX Lifecycle | 2.8.7 | ViewModels, LiveData, coroutines |
| Room + KSP | 2.7.1 | Base de données locale SQLite |
| SQLCipher | 4.5.4 | Chiffrement AES-256 de la base Room |
| Firebase BOM | 34.10.0 | Auth anonyme + Realtime Database + Cloud Messaging + Storage |
| Firebase Storage | (via BOM) | Stockage fichiers chiffrés E2E |
| firebase-functions (Node.js) | 7.0.0 | Cloud Function trigger (push notifications) |
| firebase-admin (Node.js) | 13.6.0 | Admin SDK pour RTDB + FCM côté serveur |
| AndroidX Security Crypto | 1.1.0-alpha06 | Stockage sécurisé |
| AndroidX Biometric | 1.1.0 | BiometricPrompt (empreinte, visage) |
| Kotlinx Coroutines | 1.9.0 | Async + Flow |
| ZXing Android Embedded | 4.3.0 | Génération et scan QR codes |
| BouncyCastle | 1.80 | Ed25519 (signatures), ML-KEM-1024 (PQXDH post-quantique) |