Aller au contenu principal

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


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

DocumentDescription
01-mobile-vision.mdVision générale
02-mobile-architecture.mdArchitecture globale
03-capacitor.mdShell Capacitor
04-navigation.mdNavigation mobile
05-offline-strategy.mdFonctionnement hors connexion
06-cache-engine.mdPolitique de cache
07-synchronization.mdSynchronisation
08-native-features.mdFonctionnalités natives
09-security.mdSécurité mobile
10-performance.mdPerformances
11-development-roadmap.mdPlanning de développement
12-testing.mdStratégie de tests
13-store-publication.mdPublication Android & iOS
14-open-questions.mdQuestions ouvertes
16-navigation-engine.mdNavigation 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.