DMV Mobile
Version : 1.0
Statut : Architecture cible
Cette documentation décrit l'architecture officielle de l'application mobile DMV.
1. Présentation
DMV Mobile constitue la couche mobile officielle de la plateforme DMV.
Il ne s'agit pas d'une nouvelle plateforme.
Il ne s'agit pas non plus d'une simple WebView.
DMV Mobile est un shell natif permettant d'offrir une véritable expérience mobile tout en conservant une architecture unique.
L'objectif est simple :
Une seule plateforme.
Accessible :
- depuis un navigateur ;
- depuis Android ;
- depuis iOS.
Le cœur fonctionnel reste identique.
Statut de cette documentation
Cette documentation décrit l'architecture cible de DMV Mobile. Elle ne signifie pas que tous les composants sont déjà implémentés dans le code actuel.
Lecture à adopter :
- certains éléments existent déjà dans les applications web, l'API Laravel et l'intégration Supabase ;
- certains éléments existent sous forme de pratiques partielles ou de caches indépendants ;
- certains composants, comme le Cache Engine centralisé, le Synchronization Engine et la Native Platform, restent des composants cibles ;
- lorsqu'un écart existe entre l'état actuel et l'architecture cible, l'architecture cible constitue la référence documentaire.
La documentation doit donc être lue comme une trajectoire maîtrisée : état actuel, cible validée, puis chemin de convergence.
Documents du dossier
- Mobile Vision — vision produit et principes mobiles.
- Mobile Architecture — architecture cible et transition depuis l'existant.
- Capacitor — rôle du shell natif.
- Navigation — navigation, liens profonds et retours système.
- Offline Strategy — stratégie Online First with Offline Continuity.
- Cache Engine — cible de cache centralisé.
- Synchronization Engine — cible de synchronisation.
- Native Features — couche native et intégrations système.
- Mobile Platform — cohérence de la plateforme mobile.
- Mobile Security — authentification, stockage et sécurité.
- Mobile Quality — qualité, performance et accessibilité.
- Mobile Release — release management compatible Stores.
- V0.9 Beta — cahier de réalisation de la première beta mobile.
- Mobile Roadmap — trajectoire d'évolution.
- Architecture Decisions — décisions fondatrices.
2. Vision
DMV Mobile ne cherche pas à remplacer les applications web existantes.
Au contraire, il les prolonge.
Aujourd'hui la plateforme est composée de :
- dmv-public
- dmv-workspace
- dmv-backoffice
- API Laravel
- Supabase / PostgreSQL
L'application mobile n'intègre que :
- dmv-public
- dmv-workspace
Le Backoffice reste totalement indépendant.
3. Objectifs
DMV Mobile poursuit plusieurs objectifs.
Offrir une véritable application mobile
L'utilisateur ne doit jamais avoir la sensation d'utiliser un simple site web.
L'application doit respecter les standards Android et iOS.
Réutiliser l'existant
L'objectif n'est pas de réécrire DMV.
L'objectif est de réutiliser :
- l'architecture actuelle ;
- les applications React ;
- le Cloudflare Worker ;
- l'API Laravel ;
- les services existants.
Éviter la duplication
Il ne doit jamais exister :
- une logique métier Web ;
- une logique métier Mobile.
Toute règle métier reste portée par le serveur.
Conserver une plateforme toujours à jour
Lorsqu'un acteur est créé :
il apparaît immédiatement.
Lorsqu'une commune est créée :
elle apparaît immédiatement.
Lorsqu'une publication est publiée :
elle apparaît immédiatement.
Aucune publication sur les Stores ne doit être nécessaire pour diffuser ces nouveautés métier lorsque les applications web et l'API restent compatibles avec la version native installée. Une publication Store reste obligatoire pour toute évolution du shell, des permissions, des plugins ou du code exécutable embarqué.
Exploiter les fonctionnalités natives
Le shell mobile apporte :
- les notifications ;
- la caméra ;
- la géolocalisation ;
- le partage ;
- le stockage local ;
- la biométrie (future) ;
- les widgets (future).
4. Principes fondamentaux
Les principes suivants sont considérés comme figés.
Ils ne pourront être remis en cause qu'à la suite d'une décision d'architecture majeure.
Une seule plateforme
DMV reste une seule plateforme.
Les interfaces changent.
La plateforme reste unique.
Une seule API
Toutes les interfaces utilisent :
- la même API Laravel ;
- les mêmes endpoints ;
- les mêmes règles.
Une seule base de données
Toutes les données résident :
- PostgreSQL
- Supabase
Aucune donnée métier n'est créée exclusivement sur le téléphone.
Une seule source de vérité
Le serveur est toujours prioritaire.
Même lorsqu'une donnée existe dans le cache.
Une seule logique métier
Aucune logique métier ne doit être implémentée :
- dans Capacitor ;
- dans Android ;
- dans iOS.
Le téléphone reste un client.
5. Les applications embarquées
DMV Mobile embarque deux applications.
dmv-public
Accessible :
- aux visiteurs ;
- aux utilisateurs.
Elle contient notamment :
- Mur
- Recherche
- Commune
- Mon Espace
- Agenda
- Profils
- Publications
- Services
dmv-workspace
Accessible uniquement aux utilisateurs disposant des droits nécessaires.
Elle permet :
- gérer un acteur ;
- gérer une mairie ;
- gérer des collaborateurs ;
- gérer les publications ;
- gérer les paramètres.
6. Le Backoffice
Le Backoffice n'est pas concerné.
Il reste :
- une application indépendante ;
- destinée aux administrateurs DMV ;
- hors du périmètre mobile.
Aucune fonctionnalité du Backoffice n'est prévue dans l'application mobile.
7. Philosophie Offline
DMV Mobile adopte une stratégie :
Online First with Offline Continuity
Cette stratégie signifie :
- le serveur reste la référence ;
- le cache améliore l'expérience utilisateur ;
- le téléphone ne remplace jamais le serveur.
Le mode hors connexion est considéré comme une amélioration de confort.
Il ne constitue jamais un mode de fonctionnement principal.
8. Le Cache
Le cache devient un composant d'architecture.
Il ne constitue pas une optimisation technique.
Il répond à plusieurs objectifs :
- ouvrir rapidement l'application ;
- conserver le contexte utilisateur ;
- permettre une consultation hors connexion ;
- éviter les téléchargements inutiles ;
- conserver les brouillons.
La politique de cache est décrite dans le document :
06-cache-engine.md
9. Synchronisation
Toutes les synchronisations sont pilotées par le serveur.
Le téléphone :
- détecte le retour du réseau ;
- reprend automatiquement les synchronisations ;
- ne publie jamais automatiquement une ressource.
Les brouillons restent des brouillons.
10. Fonctionnalités natives
Le shell Capacitor apporte :
- Notifications Push
- Caméra
- Galerie
- Partage
- Géolocalisation
- Détection réseau
- Stockage local
Les futures évolutions pourront ajouter :
- Apple Watch
- Wear OS
- Widgets
- Wallet
- NFC
- CarPlay
- Android Auto
sans remettre en cause l'architecture générale.
11. Périmètre de cette documentation
Cette documentation couvre :
- la vision mobile ;
- l'architecture ;
- Capacitor ;
- la navigation ;
- le cache ;
- la synchronisation ;
- les fonctionnalités natives ;
- la sécurité mobile ;
- les performances ;
- les tests ;
- la publication sur les Stores.
Elle ne couvre pas :
- l'API Laravel ;
- le Context Engine ;
- le Wall Engine ;
- le Backoffice ;
- les règles métier de DMV.
Ces éléments possèdent leur propre documentation.
12. Documents
| Document | Description |
|---|---|
| 01-mobile-vision.md | Vision générale |
| 02-mobile-architecture.md | Architecture globale |
| 03-capacitor.md | Shell Capacitor |
| 04-navigation.md | Navigation mobile |
| 05-offline-strategy.md | Fonctionnement hors connexion |
| 06-cache-engine.md | Politique de cache |
| 07-synchronization.md | Synchronisation |
| 08-native-features.md | Fonctionnalités natives |
| 09-security.md | Sécurité mobile |
| 10-performance.md | Performances |
| 11-development-roadmap.md | Planning de développement |
| 12-testing.md | Stratégie de tests |
| 13-store-publication.md | Publication Android & iOS |
| 14-open-questions.md | Questions ouvertes |
| 16-navigation-engine.md | Navigation Engine — architecture de navigation indépendante des plateformes |
13. Conclusion
DMV Mobile n'est pas une nouvelle plateforme.
C'est une nouvelle interface de la plateforme DMV.
L'objectif n'est pas de multiplier les applications mais de proposer une expérience mobile moderne tout en conservant :
- une architecture unique ;
- une logique métier unique ;
- une maintenance réduite ;
- une plateforme toujours à jour.
Cette documentation constitue la référence officielle du chantier DMV Mobile.