Dev fullstack

Application mobile de pilotage des radiateurs (Hestiia)

Hestiia conçoit des radiateurs connectés (chauffage et valorisation énergétique). J'ai conçu et développé l'application mobile de pilotage et d'onboarding : connexion du radiateur via Bluetooth, programmes de chauffe, données temps réel. Collaboration avec le backend (NestJS, IoT AWS, middleware Python) et livraison sur les stores avec mises à jour OTA (Expo).

Hestiia
Application mobile de pilotage des radiateurs (Hestiia)

Hestiia est une startup nantaise qui propose des radiateurs connectés à forte dimension innovante. L'application mobile devait permettre de piloter les radiateurs, de configurer les programmes de chauffe et d'assurer un onboarding fluide. J'ai pris en charge la conception et le développement de l'app en collaboration avec le backend (NestJS, IoT AWS, middleware embarqué en Python) et les équipes matériel.

Choix techniques

Côté front : Expo pour le build, la release et le déploiement sur les stores (avec mises à jour instantanées sans repasser par les stores), TypeScript, React Native, React Query pour le REST et la synchro des données WebSocket, React Hook Form et Yup pour les formulaires, NativeWind pour le style, Detox pour les tests E2E. Ce stack a permis de livrer une app maintenable et de limiter les régressions.

Connexion du radiateur (Bluetooth)

L'onboarding repose sur la connexion du radiateur à l'app via Bluetooth. J'ai utilisé react-native-ble-plx et travaillé en étroite collaboration avec l'équipe middleware (Antoine) pour les échanges de données. Parcours utilisateur : création de compte, scan du QR code du radiateur, transmission des paramètres WiFi via Bluetooth ; le radiateur est alors connecté au logement.

Programmes de chauffe

L'utilisateur définit, par jour de la semaine, la température souhaitée au quart d'heure près. Le modèle métier (température par défaut + plages horaires spécifiques) devait être converti en temps réel vers le format attendu par le middleware (liste de couples heure / température). L'UX d'édition des programmes par jour, visuelle et cohérente, a demandé un soin particulier.

Données temps réel

L'app devait refléter immédiatement les changements d'état, qu'ils viennent de l'utilisateur ou du backend (WebSocket). J'ai mis en place une stratégie de mise à jour optimiste avec React Query (mise à jour de l'interface avant confirmation serveur) et une mutualisation des données REST et WebSocket pour garder une architecture simple. Les mises à jour instantanées (Expo) permettent ensuite de déployer des correctifs et évolutions sans repasser par les stores.