main
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%