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 :

  1. File → Open → sélectionner le dossier Planify-mobile
  2. Attendre la synchronisation Gradle (première fois : ~2 min)
  3. 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

  1. Activer le mode développeur : Paramètres → À propos → taper 7× sur "Numéro de build"
  2. Activer le débogage USB : Paramètres → Options développeur → Débogage USB
  3. Connecter via USB et autoriser la connexion
  4. Lancer depuis Android Studio ou : ./gradlew installDebug

Configurer la synchronisation CalDAV

  1. Lancer l'application
  2. Ouvrir le menu latéral → icône paramètres
  3. Section SourcesAjouter un compte CalDAV
  4. Renseigner :
    • URL du serveur : https://votre-nextcloud.com (la découverte .well-known est automatique)
    • Nom d'utilisateur et mot de passe
  5. Appuyer sur Tester la connexion, puis Enregistrer
  6. Sélectionner les calendriers à synchroniser
  7. 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

S
Description
No description provided
Readme 721 KiB
Languages
Kotlin 100%