221cf4f80da0ef2589cc4fbaadba3fd7af8293e6
Si les projets ne sont pas encore en base Room au moment de l'insertion (première connexion, sync en cours), vérifie que le projet existe avant d'insérer la tâche localement. Sinon, déclenche une sync — la tâche est déjà créée sur l'API et apparaîtra après rafraîchissement. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Planify Mobile
Application Android de gestion de tâches inspirée de Planify, avec synchronisation CalDAV native (Nextcloud, etc.).
Fonctionnalités
- Gestion de tâches avec projets, sections, labels et sous-tâches
- Synchronisation bidirectionnelle via protocole CalDAV (RFC 4791)
- Compatible Nextcloud Tasks et tout serveur CalDAV générique
- Rappels locaux (absolus et relatifs)
- Récurrence (RRULE iCalendar)
- Vues : Inbox, Today, Scheduled, Projects, Labels
- Mode hors-ligne avec sync au retour de la connexion
Prérequis
| Outil | Version minimale |
|---|---|
| Android Studio | Hedgehog (2023.1.1) ou plus récent |
| JDK | 17 |
| Android SDK | API 26 (Android 8.0) minimum, API 34 cible |
| Kotlin | 1.9+ |
| Gradle | 8.4+ |
Installation
git clone https://git.goutailler-olivier.com/Gato/Planify-mobile.git
cd Planify-mobile
Ouvrir le projet dans Android Studio :
- File → Open → sélectionner le dossier
Planify-mobile - Attendre la synchronisation Gradle (première fois : ~2 min)
- Lancer l'émulateur ou connecter un appareil (USB debugging activé)
Lancer l'application
Sur émulateur
# Créer un AVD via Android Studio : Tools → Device Manager → Create Device
# Recommandé : Pixel 6, API 33 ou 34
./gradlew installDebug
# ou via Android Studio : Run → Run 'app' (Shift+F10)
Sur appareil physique
- Activer le mode développeur : Paramètres → À propos → taper 7× sur "Numéro de build"
- Activer le débogage USB : Paramètres → Options développeur → Débogage USB
- Connecter via USB et autoriser la connexion
- Lancer depuis Android Studio ou :
./gradlew installDebug
Configurer la synchronisation CalDAV
- Lancer l'application
- Ouvrir le menu latéral → icône paramètres
- Section Sources → Ajouter un compte CalDAV
- Renseigner :
- URL du serveur :
https://votre-nextcloud.com(la découverte.well-knownest automatique) - Nom d'utilisateur et mot de passe
- URL du serveur :
- Appuyer sur Tester la connexion, puis Enregistrer
- Sélectionner les calendriers à synchroniser
- La première synchronisation démarre automatiquement
Serveurs testés
| Serveur | Statut |
|---|---|
| Nextcloud 27+ | ✅ Supporté |
| Radicale | ✅ Supporté |
| Baikal | ✅ Supporté |
| Apple iCloud | ⚠️ Non testé |
Structure du projet
app/src/main/java/com/planify/mobile/
├── domain/
│ ├── model/ # Entités métier (Task, Project, Label...)
│ └── repository/ # Interfaces des repositories
├── data/
│ ├── local/
│ │ ├── entity/ # Entités Room (@Entity)
│ │ ├── dao/ # Data Access Objects (@Dao)
│ │ ├── converter/ # TypeConverters Room
│ │ └── AppDatabase.kt
│ ├── sync/
│ │ ├── caldav/ # Client CalDAV (HTTP + XML)
│ │ └── vtodo/ # Parser/générateur VTODO
│ └── repository/ # Implémentations des repositories
├── ui/
│ ├── navigation/ # Navigation Compose
│ ├── inbox/ # Vue Inbox
│ ├── today/ # Vue Today
│ ├── project/ # Vue Projet
│ ├── scheduled/ # Vue Scheduled
│ ├── labels/ # Vue Labels
│ ├── task/ # Création/édition tâche
│ ├── settings/ # Paramètres
│ └── components/ # Composants réutilisables
└── di/ # Modules Hilt
Build variants
| Variant | Description |
|---|---|
debug |
Logs activés, débogage activé |
release |
Optimisé, ProGuard activé |
./gradlew assembleDebug # APK debug
./gradlew assembleRelease # APK release (nécessite keystore)
./gradlew test # Tests unitaires
./gradlew connectedTest # Tests instrumentés (émulateur requis)
Contribution
Les branches suivent la structure par milestone :
main
└── develop
├── milestone/lot-1-architecture
├── milestone/lot-2-navigation
├── milestone/lot-3-taches
├── milestone/lot-4-caldav
├── milestone/lot-5-avancees
└── milestone/lot-6-polish
Chaque commit référence l'issue correspondante : feat: [#X] description.
Licence
MIT
Description
Languages
Kotlin
100%