commit 8cd4d10cf17af9788499dfd94426845b49d4e2b4 Author: Gato Date: Sat Jun 6 05:53:12 2026 +0200 docs: initialisation du projet Planify Mobile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df42438 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +*.iml +.gradle +/local.properties +/.idea +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties +*.keystore +*.jks diff --git a/README.md b/README.md new file mode 100644 index 0000000..d86209e --- /dev/null +++ b/README.md @@ -0,0 +1,140 @@ +# Planify Mobile + +Application Android de gestion de tâches inspirée de [Planify](https://github.com/alainm23/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 + +```bash +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 + +```bash +# 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 **Sources** → **Ajouter 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é | + +```bash +./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