Servio — migration WinDev Mobile vers Flutter

Une appli de salle migrée de WinDev vers Flutter

Le service continue même quand le wifi tombe.

IA·Alimentaire

Un projet, 3 interfaces

À quoi ça ressemble

Servio est une application de prise de commande et d'encaissement pour restaurants, réécrite de WinDev Mobile vers Flutter.

Quatre interfaces couvrent le service de bout en bout : appli serveur hors-ligne, écran de cuisine, pilotage du gérant et console de synchronisation.

La caisse HFSQL reste la source de vérité, exposée derrière un WebService REST idempotent.

Une identité visuelle unique

Couleurs

Typographie

Aa

ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

0 1 2 3 4 5 6 7 8 9 & @ # %

RegularMediumSemiboldBoldExtrabold

Titres qui portent le message

Sous-titres qui structurent

Un texte courant lisible sur tous les écrans, avec des interlignes généreux.

Construit avec des technologies qui durent

Les technos les plus utilisées au monde, qui font tourner Airbnb et Netflix.

Next.jsReactTypeScriptTailwind CSSFramer Motion

Le projet écran par écran

Connexion serveur par code à 4 chiffres
Plan de salle en un coup d'œil
Prise de commande avec la carte
Encaissement CB, espèces ou titre-restaurant
Journal des opérations du service
1 / 5

Des enjeux concrets, des réponses concrètes

Les enjeux

Sortir la prise de commande de WinDev Mobile

Les défis initiaux

22 000 lignes WLangage à réécrire sans régression

Nos solutions

Portage écran par écran, même logique en Dart

Les enjeux

Garder le service fluide en cas de coupure réseau

Les défis initiaux

Le wifi lâche en salle, terrasse et sous-sol

Nos solutions

Cache SQLite local et file de synchronisation

Les enjeux

Ne jamais perdre ni doubler un encaissement

Les défis initiaux

Rejeu réseau qui menace de compter deux fois

Nos solutions

Clés d'idempotence validées par la caisse HFSQL

Les choix qui comptent

Trois décisions de conception prises sur ce projet, et pourquoi.

UX

File d'attente hors-ligne synchronisable

Le code (`ServeurContext.tsx`, action `SET_OFFLINE`/`SYNC_DONE`) modélise une vraie file d'opérations : chaque action serveur (ouverture de table, envoi cuisine) est poussée dans `fileOps` avec un statut `en-file` tant que le wifi de salle est instable, puis rejouée au retour réseau via `SYNC_DONE`.

Côté écran, `BandeauHorsLigne.tsx` rend ça lisible en salle : compteur d'opérations en attente, bandeau ambre explicite, bouton Sync manuel — pensé pour un service où la tablette Flutter perd le wifi entre la salle et la cuisine sans jamais perdre une commande.

Performance

Prévision IA du service en direct

Le module `ModuleIA` calcule en temps réel la confiance de prévision (moyenne des `confiance` par créneau) et le CA prévu de fin de service, recalculés instantanément selon l'établissement et la période sélectionnés via un `facteur` combiné.

En dessous, les suggestions de ventes additionnelles affichent gain moyen, taux d'acceptation et fenêtre d'action par table ; chaque clic sur "Envoyer" retire la suggestion de la liste active et notifie le bon serveur via toast, sans jamais modifier les données mock sous-jacentes.

UX

Arbitrage de conflit à double version

Quand un même encaissement arrive deux fois (coupure réseau puis reconnexion du terminal), l'équipe ne voit pas une erreur brute mais une comparaison côte à côte : version du terminal vs version de la caisse HFSQL, avec la clé d'idempotence (`enc_71bb04c7`) qui prouve qu'il s'agit du même paiement.

Le système pré-sélectionne la version recommandée (badge Recommandé) et explique pourquoi en une phrase, avant de laisser 3 boutons d'arbitrage manuel (Terminal / Caisse / Fusionner) — l'opérateur garde la main sans avoir à deviner.

Rapide, mesuré, prouvé

La vitesse n’est pas une promesse : elle se mesure.

Performances : 96 sur 100
Performances
Accessibilité : 93 sur 100
Accessibilité
Bonnes pratiques : 100 sur 100
Bonnes pratiques
SEO : 100 sur 100
SEO

Chargement immédiat

Le contenu essentiel s’affiche en une fraction de seconde : rendu côté serveur, HTML léger, JavaScript réduit au strict nécessaire.

Images optimisées

Formats modernes (WebP/AVIF), dimensions adaptées à l’écran et chargement différé hors de l’écran : aucun octet gaspillé.

Stabilité visuelle

Pas de saut de mise en page pendant le chargement : les tailles sont réservées à l’avance, l’interface reste calme sous les yeux.

Une sécurité qui ne dort jamais

Ce qui tourne en arrière-plan pour que votre projet reste debout, quoi qu’il arrive.

Sauvegardes quotidiennes sur serveur distant

Procédure de reprise testée mensuellement

Monitoring automatique toutes les 5 min du service, alerte auto si service down

Chiffrement SSL

Isolation des environnements de développement

Étape 1 sur 5 : Cadrage

5 étapes pour concrétiser votre projet

Cadrage

Client
PDFcahier-des-charges.pdfPDF · 14 pages
ou

On tient un cabinet d’ostéopathie. L’idée : que nos patients réservent en ligne, sans appeler.

CyberScale

Reçu ! On vous prépare un prototype sous 3j

Vous décrivez votre projet

Un cahier des charges si vous en avez un, quelques paragraphes libres sinon.

0 €libre, le prototype reste à vous

Vous avez lu jusqu’ici ? Continuons ensemble.

Avant de signer, on vous offre sous 3j un prototype de votre projet.

Ajustements illimités, sans surcoûtLivraison et rapport hebdomadaireVous ne payez que si satisfait

Sans engagement

Questions fréquentes

Parce que nous limitons volontairement notre charge à 3 projets simultanés.

Résultat : des maquettes en 72 heures, 90% des messages répondus dans l'heure, une livraison chaque semaine et des délais garantis contractuellement.

Si nous sommes en retard, vous recevez gratuitement 2 mois de maintenance, d'hébergement, d'articles de blog et de social media.