docs: initialisation du projet Planify Mobile
This commit is contained in:
+12
@@ -0,0 +1,12 @@
|
|||||||
|
*.iml
|
||||||
|
.gradle
|
||||||
|
/local.properties
|
||||||
|
/.idea
|
||||||
|
.DS_Store
|
||||||
|
/build
|
||||||
|
/captures
|
||||||
|
.externalNativeBuild
|
||||||
|
.cxx
|
||||||
|
local.properties
|
||||||
|
*.keystore
|
||||||
|
*.jks
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user