Flutter · WebRTC · IoT · Leadership technique
Aligner le hardware, le firmware, le cloud et le mobile autour d'un même système.
Direction technique et développement mobile d'un système de caméras IP : application Flutter, WebRTC pair-à-pair, MQTT, firmware et cloud temps réel. Une équipe de 8 personnes alignée autour de contrats d'interface communs.
- Rôle
- Chef de projet technique · Développeur mobile Flutter
- Période
- 2023 · Chez Coding Industry
- Stack
- FlutterWebRTCMQTTHLSTypeScriptFirmwareRaspberry Pi
Repères mesurés
< 300 ms
latence WebRTC mesurée
Diffusion vidéo pair-à-pair sur mobile
8 personnes
équipe coordonnée
Mobile, backend, firmware et hardware
3 mois
première version livrée
De la spécification aux tests terrain
Le problème
Les solutions de caméras disponibles dépendaient de firmwares opaques et limitaient la capacité du client à auditer, modifier et faire évoluer son propre produit. La difficulté n’était pas seulement mobile : chaque décision touchait simultanément le matériel, le firmware, les protocoles temps réel, le backend et l’expérience de l’utilisateur.
Ma responsabilité
- découper le système en responsabilités claires ;
- distribuer les tâches, estimer et planifier ;
- prendre les décisions d’architecture et effectuer les revues de code ;
- maintenir la relation avec le client et la responsabilité sur les délais ;
- développer l’application Flutter et les parcours vidéo critiques.
Décision structurante : un contrat commun
Pour éviter que chaque équipe interprète différemment les messages, événements et états du système, j’ai utilisé un document de contrôle d’interface comme contrat central. Les équipes hardware, firmware, backend et mobile travaillaient ainsi sur les mêmes noms, formats et responsabilités.
Décision structurante : simuler avant de recevoir le matériel
Le développement mobile ne pouvait pas attendre la disponibilité permanente d’une caméra physique. Une stratégie de simulation à trois niveaux a permis de tester l’interface, les échanges et les scénarios de bout en bout tout au long du projet :
- réponses simulées pour développer rapidement l’interface ;
- simulateur TypeScript reproduisant le comportement réseau de la caméra ;
- émulateur sur Raspberry Pi pour les tests proches du matériel.
Application mobile
Association d’une caméra, visualisation du direct, WebRTC pair-à-pair, repli HLS lorsque nécessaire, signalisation et télémétrie MQTT, gestion des états de connexion, traitement des erreurs et reconnexion.
Résultats
L’équipe a livré une première version en trois mois malgré la découverte simultanée de plusieurs domaines techniques. La diffusion pair-à-pair a atteint une latence mesurée inférieure à 300 ms dans les conditions de test documentées.
Ce que ce projet prouve
- capacité à coordonner une équipe multidisciplinaire ;
- maîtrise de Flutter au-delà d’applications CRUD ;
- compréhension des protocoles temps réel ;
- documentation d’architecture et réduction des dépendances entre équipes ;
- leadership technique tout en développant directement.