Family Self Care, la solución de salud basada en los aceites esenciales

La empresa de autocuidado familiar

La startup francesa Family Self Care, fundada a finales de 2017, está especializada en robótica, objetos conectados, inteligencia artificial y electrónica de consumo para la salud cotidiana. Nació de la visión de la fundadora Brigitte Thito, que cuenta con más de 20 años de experiencia en grandes empresas farmacéuticas como Tambrands/Procter & Gamble, Walgreens Boots Alliance, Merck Consumer Health y Boots Healthcare.

La empresa ha desarrollado el SelfCare1®, una nueva tecnología que puede satisfacer las expectativas de los clientes sobre una prevención natural y eficaz para el cuidado de su cuerpo y su mente mediante el uso de aceites esenciales. De hecho, Family Self Care ha ofrecido inicialmente a los clientes un kit de aceites esenciales con el dispensador inteligente SelfCare 1, que está conectado con un application asociado. Esta máquina está conectada al coaching expertoapplication que se activa vía Bluetooth en el teléfono móvil de los clientes para distribuir dosis de aceites esenciales de forma personalizada y de alta precisión adecuada a los problemas de salud o necesidad según el perfil de los usuarios (su edad, su sexo, o sus contraindicaciones) en cualquier momento en casa o en la oficina 

La máquina, con su application asociado, activará un cartucho colocado en el robot (con 8 aceites de bienestar diario) durante un tiempo prolongado y seleccionará la combinación de aceites esenciales necesaria, además de dar instrucciones de uso y ofrecer un consumo de aceites sin desperdicio.

Un ejemplo de uso deapplication: un usuario practica deporte y necesita un aceite esencial para relajar sus músculos. Elapplication le recomienda mezclar una dosis de aceite básico exótico y otra de palo de rosa en función de su perfil y sus necesidades.

Aplicaciones móviles

Como parte del diseño del primer dispensador inteligente de aceites esenciales de nuestro cliente Family Self Care, el equipo de NetDevices se unió al proyecto de la empresa en diciembre de 2019 para desarrollar las aplicaciones SelfCare1. 

Las aplicaciones móviles permiten a los usuarios conectar su teléfono móvil con la máquina para crear mezclas de aceite para el bienestar. 

A nuestro Lead Dev Mobile Benoît se le pidió que escribiera el protocolo de comunicación específico basado en BLE (bluetooth low energy) de las aplicaciones para que pudiera comunicarse con la máquina.

Los principales pasos fueron :

  1. Estudio del código y del protocolo hardware de la máquina
  2. Elección de bibliotecas Bluetooth React Native
  3. POC (prueba de concepto) y selección de pila
  4. Integración de las bibliotecas de React Native en las aplicaciones

1 - Estudio de la situación existente

El primer paso fue estudiar el código fuente (React Native, PHP principalmente), para luego proponer una arquitectura del proyecto en su conjunto y proponer las bases de la implementación de las aplicaciones.

2 - Búsqueda de bibliotecas 

La primera parte de este paso es el estudio de un documento técnico proporcionado por el fabricante del hardware (documento que describe el modo de comunicación de la máquina).

Paralelamente a este estudio, Benoit está llevando a cabo una búsqueda de bibliotecas BLE nativas react .

Una biblioteca en informática, en pocas palabras, es un conjunto de funciones ya codificadas en un lenguaje específico. Una de las principales ventajas del uso de una biblioteca para los desarrolladores es el ahorro de tiempo (puesto que las funciones ya están codificadas, por qué rehacer lo que ya se ha hecho).

En el marco del proyecto, se eligieron dos librerías que permiten el uso del módulo bluetooth en smartphone . La elección se hizo por la comunidad de cada biblioteca, el número de "bugs" conocidos, la calidad de la documentación y sobre todo por la mantenibilidad, de hecho cada biblioteca conoció varias versiones durante el año.

3 - POC

Una vez hecha la selección, creamos un POC para cada biblioteca. Por lo general, se trata de un proyecto con el mínimo de código, poco diseño, poco o ningún manejo de errores, se utiliza para validar las opciones técnicas antes de lanzarse a desarrollos complejos.

4 - Integración de la biblioteca en las aplicaciones

Tras la validación mediante el POC y la selección de la mejor biblioteca, el siguiente paso fue integrar esta biblioteca y gestionar la comunicación/control del dispensador SelfCare1.

Por supuesto, la integración de una biblioteca en sí misma no es suficiente, sino que hay que adaptarla para integrar las diferentes características del protocolo que espera la máquina.

5 - Proyecto global

Por último, Benoît se encargó del desarrollo de las pantallas de la aplicación y de la redacción de las pruebas automatizadas (Mocha, Enzyme, Chai). 

Desde marzo de 2021, han comenzado las primeras entregas de la máquina SelfCare1, ¡en Estados Unidos y en Europa!

[wpforms id="9980" title="false"]
<div class="wpforms-container wpforms-container-full" id="wpforms-9980"><form id="wpforms-form-9980" class="wpforms-validate wpforms-form wpforms-ajax-form" data-formid="9980" method="post" enctype="multipart/form-data" action="/family-self-care-et-son-robot-de-melanger-lhuile-essentielle/" data-token="2fc59a98beec225aaa51eed87ffc9410"><noscript class="wpforms-error-noscript">Veuillez activer JavaScript dans votre navigateur pour remplir ce formulaire.</noscript><div class="wpforms-field-container"><div id="wpforms-9980-field_3-container" class="wpforms-field wpforms-field-layout" data-field-id="3"><label class="wpforms-field-label wpforms-label-hide" for="wpforms-9980-field_3">Layout</label><div class="wpforms-field-layout-columns wpforms-field-layout-preset-50-50"><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_0-container" class="wpforms-field wpforms-field-name" data-field-id="0"><label class="wpforms-field-label" for="wpforms-9980-field_0">Résumé / Pitch du projet <span class="wpforms-required-label">*</span></label><input type="text" id="wpforms-9980-field_0" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][0]" required></div><div id="wpforms-9980-field_16-container" class="wpforms-field wpforms-field-radio wpforms-conditional-trigger" data-field-id="16"><label class="wpforms-field-label" for="wpforms-9980-field_16">J&#039;ai une description détaillée du projet</label><ul id="wpforms-9980-field_16"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_16_1" name="wpforms[fields][16]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_16_2" name="wpforms[fields][16]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_16_2">Non</label></li></ul></div><div id="wpforms-9980-field_18-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="18" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_18">Vous avez des technos en tête ?</label><ul id="wpforms-9980-field_18"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_18_1" name="wpforms[fields][18][]" value="fullstackJS / python" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_1">fullstackJS / python</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_18_2" name="wpforms[fields][18][]" value="nocode bubble" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_2">nocode bubble</label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_18_3" name="wpforms[fields][18][]" value="autre" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_18_3">autre</label></li></ul></div><div id="wpforms-9980-field_19-container" class="wpforms-field wpforms-field-checkbox wpforms-conditional-field wpforms-conditional-show" data-field-id="19" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_19">Type de projet</label><ul id="wpforms-9980-field_19"><li class="choice-1 depth-1"><input type="checkbox" id="wpforms-9980-field_19_1" name="wpforms[fields][19][]" value="Applications web / mobiles" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_1">Applications web / mobiles</label></li><li class="choice-2 depth-1"><input type="checkbox" id="wpforms-9980-field_19_2" name="wpforms[fields][19][]" value="Projet data, IA " ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_2">Projet data, IA </label></li><li class="choice-3 depth-1"><input type="checkbox" id="wpforms-9980-field_19_3" name="wpforms[fields][19][]" value="Site vitrine / e-commerce" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_19_3">Site vitrine / e-commerce</label></li></ul></div><div id="wpforms-9980-field_12-container" class="wpforms-field wpforms-field-textarea wpforms-conditional-field wpforms-conditional-show" data-field-id="12" style="display:none;"><label class="wpforms-field-label" for="wpforms-9980-field_12">Description détaillée de votre projet </label><textarea id="wpforms-9980-field_12" class="wpforms-field-medium" name="wpforms[fields][12]" ></textarea></div></div><div class="wpforms-layout-column wpforms-layout-column-50"><div id="wpforms-9980-field_1-container" class="wpforms-field wpforms-field-email wpforms-one-third" data-field-id="1"><label class="wpforms-field-label" for="wpforms-9980-field_1">Votre e-mail <span class="wpforms-required-label">*</span></label><input type="email" id="wpforms-9980-field_1" class="wpforms-field-small wpforms-field-required" name="wpforms[fields][1]" required></div><div id="wpforms-9980-field_17-container" class="wpforms-field wpforms-field-radio" data-field-id="17"><label class="wpforms-field-label" for="wpforms-9980-field_17">Signer un accord de confidentialité ?</label><ul id="wpforms-9980-field_17"><li class="choice-1 depth-1"><input type="radio" id="wpforms-9980-field_17_1" name="wpforms[fields][17]" value="Oui" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_1">Oui</label></li><li class="choice-2 depth-1"><input type="radio" id="wpforms-9980-field_17_2" name="wpforms[fields][17]" value="Non" ><label class="wpforms-field-label-inline" for="wpforms-9980-field_17_2">Non</label></li></ul></div></div></div></div></div><div class="wpforms-submit-container"><input type="hidden" name="wpforms[id]" value="9980"><input type="hidden" name="wpforms[author]" value="1"><input type="hidden" name="wpforms[post_id]" value="9072"><button type="submit" name="wpforms[submit]" id="wpforms-submit-9980" class="wpforms-submit" data-alt-text="Envoi..." data-submit-text="Envoyer" aria-live="assertive" value="wpforms-submit">Envoyer</button><img src="https://www.netdevices.fr/wp-content/plugins/wpforms/assets/images/submit-spin.svg" class="wpforms-submit-spinner" style="display: none;" width="26" height="26" alt="Chargement en cours"></div></form></div> <!-- .wpforms-container -->