Cas client : Spash

Application mobile sportive.

Conception et développement d'une application mobile de capture, replay et statistiques automatiques de sessions sportives amateurs sur terrains connectés.

01. Contexte métier & défis

Contexte métier

Spash est une application mobile dédiée au sport amateur. Sur des terrains équipés de caméras (foot, padel, tennis, badminton, basket), chaque rencontre est automatiquement filmée en multi-angles, analysée et restituée aux joueurs sous forme de vidéos, statistiques et highlights — exactement comme dans le sport professionnel.

Notre client souhaitait offrir à ses utilisateurs une expérience clé en main, depuis le scan d'un QR code sur le terrain jusqu'au partage d'un clip vidéo entre amis, en passant par le suivi des compétitions, des équipes et des classements.

La solution s'adresse à plusieurs profils :

  • Les joueurs occasionnels qui scannent le QR code du terrain pour accéder instantanément à leur match, sans création de compte préalable
  • Les joueurs réguliers qui suivent leurs sessions, leurs équipes, leurs statistiques et leurs compétitions dans le temps
  • Les capitaines et administrateurs d'équipes qui gèrent les membres, valident les demandes et consultent les classements
  • Les organisateurs de tournois qui exposent leurs compétitions, journées et classements dans l'application

Défis rencontrés

  • Onboarding sans friction sur le terrain via QR code et deep links Branch, avec bascule fluide vers un compte authentifié
  • Player vidéo personnalisé multi-angles et multi-qualités, synchronisé avec la timeline d'événements détectés (buts, jeux, buzz)
  • Statistiques avancées hétérogènes selon le sport pratiqué : heatmaps de zones, possession, classement buteurs, sets et jeux pour les sports de raquette
  • Outil de découpe vidéo embarqué côté mobile, permettant d'extraire et de partager une séquence en quelques secondes
  • Multi-langue FR / EN / ES avec mise à jour à chaud des traductions, sans nouvelle release
  • Robustesse de l'expérience : monitoring temps réel des erreurs et télémétrie analytics fine
Vue d'ensemble Spash : du terrain équipé à l'application mobile

Du terrain équipé à l'app : QR code, capture multi-caméras, replay et statistiques

Nos projets

02. Fonctionnalités principales

L'application couvre l'intégralité du parcours du joueur, organisée autour de quatre grands pôles fonctionnels.

Onboarding & accès terrain

  • Page d'accueil à trois portes d'entrée : déjà joué, sur le terrain (scan), connexion classique
  • Scan de QR code natif via la caméra, avec gestion fine des permissions et bascule deep link Branch
  • Authentification email, Google Sign-In et Apple Sign-In, avec stockage sécurisé du jeton
  • Carte interactive des centres sportifs avec géolocalisation, recherche flottante et favoris

Capture & contrôle de session live

  • Lancement d'une session sur le terrain en choisissant la durée : 30 minutes, 1 heure ou 2 heures
  • Détection des sessions déjà en cours sur le même terrain, avec confirmation utilisateur avant remplacement
  • Écran de contrôle dédié : timer plein écran, animations visuelles, bouton Buzz pour marquer en direct un moment fort
  • Reprise automatique du décompte après une mise en arrière-plan de l'application

Replay & analyse de match

  • Player vidéo personnalisé multi-angles et multi-qualités, plein écran, avec sélection de caméra
  • Trois onglets synchronisés avec la vidéo : Événements, Composition, Statistiques
  • Timeline d'événements cliquables (buts, jeux raquette, buzz, événements génériques) avec saut vidéo et export par séquence
  • Statistiques sport-spécifiques : meilleurs joueurs (homme du match, défenseur, attaquant), heatmaps de zones, classement buteurs, possession, courbes de buts
  • Like, partage natif via deep link Branch, envoi de la vidéo par email, sauvegarde dans la galerie

Vie sociale & contenus

  • Feed d'accueil filtrable par type : sessions, buzz, compétitions, news, concours
  • « Mon activité » : sessions, highlights et compétitions personnelles
  • Recherche transverse : sessions, équipes, compétitions, centres
  • Équipes : membres, sessions, leaderboards, highlights, gestion capitaines / admins, demandes d'adhésion
  • Compétitions : journées et classements équipes, buteurs, passeurs
  • Articles, news et concours avec soumission de highlight depuis l'app
  • Profil utilisateur avec édition, favoris centres et historique d'équipes
Onboarding et scan de QR code sur le terrain

Onboarding et scan de QR code sur le terrain

Replay vidéo multi-angles synchronisé avec la timeline d'événements

Replay vidéo multi-angles synchronisé avec la timeline d'événements

Statistiques détaillées de match

Statistiques détaillées : heatmaps, meilleurs joueurs, classement buteurs

Pilotage d'une session en direct avec bouton Buzz

Pilotage d'une session en direct — timer plein écran et bouton Buzz

Capture live & moments forts

Une fois la session lancée depuis le terrain, le joueur garde la main sur son match : il visualise le décompte, peut mettre en pause son activité, et surtout déclenche en direct un Buzz à chaque action mémorable. Ces marqueurs sont automatiquement intégrés à la timeline du replay et exposés dans le feed Buzzs.

  • Scan du QR code du terrain → choix de la durée → lancement instantané
  • Timer plein écran avec gestion du retour en arrière-plan
  • Bouton Buzz avec animation visuelle dédiée à chaque pression
  • Confirmation et résumé en fin de session, avec accès direct au replay

Application mobile

Feed d'accueil

Feed d'accueil

Carte des centres sportifs

Carte des centres

Page équipe et classement

Équipe & classement

03. Notre solution : conception & développement

Approche

Nous avons conçu une architecture Flutter modulaire reposant sur Riverpod et la génération de code (Freezed, riverpod_generator) pour garantir la fiabilité de l'état applicatif, la fluidité du player vidéo, et une expérience utilisateur taillée pour chaque profil.

Fonctionnalités clés livrées

  • Player vidéo personnalisé multi-angles et multi-qualités, synchronisé avec la timeline d'événements
  • Outil embarqué de découpe vidéo (clip) avec partage par deep link Branch
  • Statistiques spécifiques par sport pour le foot, les sports de raquette et le basket
  • Authentification Google, Apple et email avec persistance sécurisée
  • Mode invité via QR code, avec bascule transparente vers un compte authentifié
  • Internationalisation FR / EN / ES, avec mise à jour à chaud des traductions via Localizely
  • Détection et reprise des sessions en cours, gestion fine du cycle de vie applicatif
  • Partages riches (deep links Branch) pour sessions, équipes, centres et clips

Déploiement et maintenance

  • Trois environnements isolés : développement, staging, production, avec endpoints API distincts
  • Version Flutter verrouillée via FVM (3.19.6) pour la reproductibilité des builds
  • CI/CD Fastlane sur Android et iOS, distribution interne via Firebase App Distribution et TestFlight
  • Monitoring continu : Firebase Crashlytics, Sentry et Firebase Analytics avec événements métiers personnalisés
  • Mise à jour applicative forcée via upgrader pour garantir la compatibilité avec l'API
Schéma d'architecture Spash — Terrain connecté vers Cloud vers MobileFlux de données depuis les caméras du terrain et le QR code, via l'API Spash et les services tiers (Branch, Firebase, Sentry, OSM), jusqu'à l'application mobile Flutter sur iOS et Android.Terrain connectéCamérasQR code terrainÉvénementsEncodage vidéoCapture & ingestionAPI Spashsessions, événements, stats, utilisateurs, équipesHTTPS · Bearer JWTApplication mobile SpashFlutter 3 · Riverpod · Dio · pod_player · iOS & AndroidBranchDeep links · QRFirebaseCrashlytics · AnalyticsSentryErreurs runtimeOSMflutter_mapIdentité utilisateur · Google Sign-In · Apple Sign-In · Email + jeton Bearer chiffré

Architecture mobile Spash — Terrain connecté → API Spash → Application Flutter