Entrevista a Rubén de Nice to fit you
Patricia Carmona Entrevistas 12/04/2016
Si quieres conocer todas las posibilidades que IBM Bluemix puede brindarte a la hora de desarrollar un proyecto, conoce el caso de Nice to fit you. Hemos entrevistado a Rubén García, fundador de la aplicación que permite realizar el seguimiento dietético para deportistas.
1. ¿Qué es Nice to fit you?
Nice To Fit You es una plataforma para la creación y seguimiento de planes nutricionales y de entrenamiento.
2. ¿Cómo surgió la idea?
Uno de mis hobbies es el deporte y entre ellos, me gusta todo el mundo relacionado con el entrenamiento de fuerza. Hace años hice el curso de entrenador personal y un curso de dietética y nutrición.
Cuando estaba con mis clientes siempre tenía el mismo problema, crear las dietas era lo que más tiempo me llevaba y luego el controlarlas por parte de mis clientes tampoco era fácil ya que no siempre tenían la información nutricional de los alimentos que consumían, a mano.
A partir de ese problema se me ocurrió hacer una aplicacion en Excel para ayudarme en esta tarea y vi que podía llevarse al siguiente nivel creando una aplicación en la nube donde todo el mundo pudiera planificarse sus dietas y llevar un control de lo que estaba comiendo.
3. ¿Cómo se diseñan las mejores dietas para los usuarios?
Las dietas siempre se realizan en función de los parámetros que el usuario introduce, por eso es recomendable que antes de hacer una dieta consulte con un profesional para ajustar sus parámetros a los requisitos que tenga esa persona. Se pueden hacer de 2 formas:
- Introduciendo el número de calorías que quiere consumir y la proporción, por ejemplo, 2000 cal con un 50% de carbohidratos, 30% de proteínas y 20% de grasas.
- Introduciendo las cantidades de proteínas, hidratos de carbono y grasas que se quiere consumir, por ejemplo, 130g de proteínas, 80g de hidratos y 40g de grasas.
4. ¿Qué tecnologías de IBM incorporáis?
Usamos Bluemix para el despliegue y monitorización de la aplicación así como para el balanceo automático, cuando hay mucha demanda. Como base de datos usamos MongoDB a través de Compose, una empresa de IBM. Y para el cálculo de dietas usamos un servidor físico alojado en Softlayer, también de IBM donde se hacen los cálculos más intensos.
5. ¿Cómo os facilita Bluemix la parte de análisis?
Con Bluemix podemos desplegar la aplicación en las versiones nuevas desde línea de comandos y además podemos proveernos de varios entornos (test, preproducción y producción) donde podemos experimentar con nuevas funcionalidades o con distintas librerías.
6. Cuéntanos el stack tecnológico de Nice to fit you: lenguaje de programación, base de datos e integraciones con otras plataformas.
El frontend está desarrollado en AngularJS. En el backend usamos por un lado NodeJS para servir el contenido y para el cálculo de dietas usamos un microservicio creado en Java usando Spring Boot. En cuanto a la base de datos es MongoDB.
7. ¿Cómo ha sido la primera versión de Nice to fit you?
La primera versión solo tenia el generador de dietas y la introducción de los alimentos. Ahora tiene funciones más avanzadas en el control de los parámetros de las dietas, números de comidas y forma de auto completar las dietas.
8. ¿Cuál ha sido el reto tecnológico más importante que os habéis encontrado hasta ahora?
Lo más difícil es el cálculo de las dietas con los datos exactos que nos proporcionan los usuarios. Por ejemplo, si una persona quiere consumir exactamente 150g de proteínas, 80g de hidratos de carbono y 40g de grasa en 5 comidas usamos todos los alimentos de la base de datos para encontrar una dieta que se adapte exactamente a esos baremos. Normalmente el margen de error es de un 3% como máximo para que sean lo más precisas posibles
9. ¿Cuál ha sido el mayor error tecnológico que habéis cometido?
El mayor error fue al principio al intentar hacer el cálculo de las dietas. Optamos por usar un algoritmo genetico y para ello desarrollamos una libreria en NodeJS ya que no había ninguna. Al intentar resolver el problema de esta manera vimos que era muy ineficiente ya que algunas veces no conseguía encontrar la solución en el tiempo máximo que teníamos configurado
La solucion fue cambiar a usar librerias matemáticas de C, en concreto LPSolve desde Java y crear un microservicio que se encarga del cálculo de las dietas. Ahora estamos creando un modulo para poder usar esa libreria C en NodeJS para tener solo un stack y migraremos el microservicio a NodeJS tambien
10. ¿Qué próximos hitos de desarrollo tenéis marcados?
Lo próximo que queremos hacer es, además de cambiar el servicio de dietas a NodeJS como comentaba, abrir la API de dietas para que se pueda consumir desde otras aplicaciones que ya tenemos en mente o por otras empresas mediante suscripción.
La aplicación móvil es también uno de nuestros próximos hitos ya que aunque la aplicación web es responsive, en la app móvil podremos meter funcionalidades más avanzadas como lector de código de barras para los alimentos.
Y por último, tenemos casi cerrado un acuerdo con un gimnasio de Madrid para que empiecen a probar en su gabinete dietético la aplicación y nos den feedback y nuevas ideas para mejorarla.