
Louer une trottinette en 10 secondes, sans friction
Contexte
Nous avons conçu et développé une application cross-plateforme iOS & Android de location de trottinettes à la minute (free floating). L'app couvre l'ensemble du parcours : inscription, paiement (ajout de crédit ou paiement à la course), et contrôle de la trottinette (déblocage, pause, verrouillage pour restitution).
Dans ce type de service, l'utilisateur ouvre l'application uniquement pour rouler : la moindre friction (inscription trop longue, paiement bloquant, Bluetooth instable) se traduit immédiatement par une course perdue. L'enjeu était donc de livrer une expérience ultra fluide, mais aussi robuste et opérationnelle en conditions réelles : flotte d'environ 100 trottinettes déployées dans une dizaine de sites en pleine saison, avec des besoins de support, de supervision et de mises à jour.
Le brouillard
Problèmes à résoudre :
- Communication Bluetooth complexe : piloter des Xiaomi M365 via un protocole BLE non public (lecture vitesse, n° de série, états, phare, % batterie ; actions verrouiller/déverrouiller, allumer/éteindre).
- Paiement plus "fragile" avec 3DS2 : workflow plus long, abandon utilisateur, et comportements variables selon banques/cartes lors des déploiements.
- Empêcher l'appairage direct via l'application constructeur (contournement possible du système).
- Verrouiller automatiquement les trottinettes hors location, sans dépendre de l'app mobile.
- Gérer les instabilités BLE côté mobile (différences iOS/Android et modèles de téléphones).
- Limiter la fraude / triche (tentatives de sabotage matériel pour profiter d'un état déverrouillé).
- Gérer les drop zones de restitution et les cas d'usage "hors zone / hors réseau".
- Pouvoir déployer vite en cas d'incident (mises à jour urgentes).
Notre clarification
Nous avons commencé par un Sprint Clarté et des ateliers (parcours utilisateur + architecture embarquée + risques), puis produit :
- Un parcours "zéro friction" centré sur l'action (démarrer/mettre en pause/terminer une course), avec des écrans minimalistes.
- Une architecture sécurisée de contrôle (mobile ↔ module embarqué ↔ trottinette) pour fiabiliser le verrouillage et empêcher les appairages non autorisés.
- Un workflow paiement robuste autour de Stripe et 3DS2, avec tests intensifs et scénarios de secours.
- Un backoffice d'exploitation pour piloter la flotte, traiter les exceptions et assurer l'autonomie opérationnelle.
Solution livrée
Nous avons livré un produit mobile pensé pour "Ride / Pause / Stop", soutenu par une architecture technique conçue pour le terrain.
Expérience mobile ultra simple
- Ergonomie volontairement claire, avec de gros boutons Ride / Pause / Stop pour convenir à tout type d'utilisateur.
- Parcours d'inscription et de paiement optimisés pour limiter l'abandon.
Contrôle trottinette fiable (BLE) et sécurisé
- Rétro-ingénierie du protocole BLE des M365 afin de lire les informations nécessaires (états, batterie, vitesse…) et d'exécuter les actions critiques (verrouillage, phare…).
- Mise en place d'un Raspberry Pi Zero embarqué comme "pont" : l'app mobile se connecte au Pi, qui dialogue avec la trottinette. Cela permet de stabiliser la connexion, de réduire les variations mobiles, et surtout d'empêcher d'autres appareils de s'appairer directement.
Verrouillage automatique et résilience embarquée
- Verrouillage automatique côté embarqué quand la trottinette n'est pas louée.
- Système de fichiers en lecture seule sur la carte SD pour limiter les corruptions liées aux conditions d'usage.
- Watchdog pour redémarrer le Pi en cas de non-réponse et maintenir le service.
Paiement Stripe + 3DS2 maîtrisé
- Intégration Stripe et refonte du parcours paiement pour choisir les options les plus stables et limiter les bugs.
- Nombreux tests et workarounds selon les cas (banques/cartes/scénarios 3DS2) pour réduire les pertes d'utilisateurs au moment clé.
Drop zones et exploitation 24/7
- Ajout d'un GPS connecté au Pi pour obtenir une position fiable, nécessaire au contrôle des zones de restitution.
- Backoffice complet : pilotage des trottinettes (verrouillage/déverrouillage), gestion des pénalités et des avoirs, supervision opérationnelle.
- Possibilité de déploiement rapide selon les besoins, dont une approche web app sur certains segments/écrans pour accélérer la diffusion en cas d'urgence.
Résultats
L'application a été déployée en production et exploitée durablement en conditions réelles.
Ce qui a fait la différence
Et maintenant ?
Trois directions naturelles pour fiabiliser, scaler et mieux piloter le service :
- Fiabilisation hardware "niveau supérieur" : connecter le Raspberry Pi directement au contrôleur de la trottinette via port série (moins de dépendance au BLE), ou migrer vers des trottinettes conçues pour le free-floating (API/maintenance/durabilité adaptées).
- Passage à l'échelle et nouveaux usages : déploiement sur plus de sites et volumes, et extension à des flottes d'entreprise avec des règles de circulation (zones autorisées, limites géographiques, restrictions d'usage).
- Analytics terrain & optimisation des drop zones : exploiter le GPS pour produire des statistiques fines (parcours, zones chaudes, taux de restitution conforme, drop zones préférées) et améliorer l'expérience + la répartition de flotte.
