
Application télécommande TV/média en React Native, ReScript, GraphQL & Apollo
Loewe fabrique des téléviseurs ; voici l'application qui les pilote, une télécommande écrite en React Native et ReScript, avec GraphQL, Apollo et MQTT en dessous. Une mission courte, avec un seul objectif : débloquer une base de code devenue lente à faire évoluer.
Trois choses barraient la route. Le code ReScript avait besoin d'une structure à laquelle on puisse contribuer sans devoir d'abord la rétro-concevoir : il l'a eue, avec les composants bas niveau nécessaires pour suivre des maquettes qui n'arrêtaient pas de bouger. Le projet iOS était un .xcodeproj lié à la main (bibliothèques câblées une à une, certaines copiées-collées), ce qui transformait chaque montée de version de React Native en séance d'archéologie ; son passage à un Podfile Cocoapods a rendu ces mises à jour routinières. Enfin, l'application donnait encore la sensation d'un site web dans une coquille native, ce qui est rédhibitoire pour une télécommande : un appui doit répondre instantanément, sinon le téléphone perd face à la télécommande en plastique posée sur la table. C'est ce qu'a acheté le travail d'animation, celui qui n'apparaît jamais dans un journal de versions.
Transformer les maquettes Sketch en composants a fait remonter ce qu'une maquette statique cache toujours : les états de chargement, les états vides et les erreurs, que personne ne dessine. Le travail a aussi nourri bs-react-native, les bindings ReScript pour React Native dont j'assurais alors la maintenance.