docs: initialisation du projet Planify Mobile
This commit is contained in:
@@ -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