Chat
Chat

CoreForTech

Native ScriptTypescriptSwiftKotlin

Prévention de la somnolence au volant

App mobile

Le client

La startup Core For Tech essaye de détecter les risques d'endormissement au volant. Nicolas Vera, ingénieur et fondateur de la startup a travaillé pendant deux ans avec des membres du CHR de Lille pour développer une solution capable de détecter la somnolence "20 minutes avant que les signes visibles n'apparaissent".

Le projet et les besoins

Core For Tech est une application mobile qui permet de détecter les risques d'endormissement via des informations cardiaques collectées par un objet connecté (montre ou ceinture).

Les objets connectés sont soit de la marque Garmin (qui possède un protocole particulier, en surcouche du protocole BLE) soit de n'importe quelle marque qui supporte le protocole BLE (Bluetooth Low Energy) standard.


A l'origine, une première application avait été développée par une agence en React Native, mais elle comportait de nombreux bugs. Hervé Blanc, CTO de Core For Tech, a décidé de lancer une réécriture en NativeScript, en partenariat avec Kanso.


Les prérogatives de Kanso pour ce projet sont :

  • Résoudre divers bugs urgents rendant l'application React Native "inutilisable". En particulier des bugs de collecte de données et de branchement du SDK Garmin
  • Porter l'intégration du SDK Garmin à l'environnement NativeScript, et gérer les mises à jour
  • Développer et maintenir les évolutions de l'application NativeScript (nouveautés en UI/UX)
  • Intégrer divers SDK natifs (Can Controls, DriveQuant) à l'application NativeScript pour étoffer son fonctionnement et améliorer l'expérience des utilisateurs

La solution proposée

Pour résoudre les (nombreux) problèmes associés à l'application React Native, Kanso a réalisé :

  • Plusieurs tests automatiques et de nombreux tests end-to-end manuels. Un bug particulièrement complexe a été l'identification d'interruptions intempestives dans le recueil des données cardiaques. Kanso a réussi à fournir un exemple reproductible aux équipes de Garmin, qui ont corrigé le problème dans une mise à jour de leur SDK
  • Un audit du code et de nombreux refactorings. Un défaut fréquent, étant le mauvais usage des promesses (appels asynchrones alors que la suite de la fonction dépend du résultat) dans la base de code
  • Une montée en version de certaines librairies (notamment pour le protocole BLE)
  • La suppression de certaines librairies peu ou pas maintenues, pour lesquelles un équivalent simple a pu être codé à la main

Pour la réécriture, Kanso a joué un role de support auprès d'un expert NativeScript présent au sein de l'équipe de Core For Tech. Celui ci a créé un squelette conséquent, que Kanso a complété avec :

  • L'intégration du SDK Garmin pour android et iOS. Pour android, la plateforme NS permet d'écrire directement les appels du SDK en javascript/typescript, mais pour la partie iOS il faut écrire les appels via des interfaces en Swift en suivant certaines conventions de nommage
  • La création d'un nouveau parcours d'inscription et de login, puisque l'UX de l'application React Native n'était pas satisfaisante pour les clients de Core For Tech. Ce parcours a intégré toutes les problématiques de demandes de droits (notamment pour le bluetooth)
  • L'intégration du SDK Can Control pour ajouter une composante visuelle aux signaux cardiaques dans la détection de l'endormissement
  • L'intégration du SDK DriveQuant pour la détection automatique du démarrage d'un trajet. Cette intégration a nécessité des développements spécifiques au sein de NativeScript pour le lancement de l'app depuis un service (y compris si l'app est fermée, et pas simplement en background). Cette fonctionnalité à également nécessité de nombreux tests en conditions réelles ainsi que des échanges avec les équipes de DriveQuant
image1

La stack technique et l'infrastructure

  • Typescript, Java, Kotlin, Swift
  • React Native
  • Bluetooth Low Energy
  • Garmin
  • NativeScript
  • Gitlab CI

Native ScriptTypescriptSwiftKotlin

Le périmètre d'action/Les moyens déployés (durée et équipe)

La collaboration avec Core For Tech a durée 1 an et demi, avec environ 1 ETP sur un an puis environ 2 ETP sur 6 mois.

L'impact

3.5+ million d'euros levés
gold medalMédaille d'or Carcept prev
20 années de recherches sur la variabilité du rythme cardiaque et ses applications

Des idées ? un projet ?

N'hésitez pas à nous en faire part

Nous vous répondrons dans l'heure