Backbeam es uno de los servicios en la nube más interesantes creados en España. Por eso no podíamos pasar la oportunidad de hablar con Alberto Gimeno, desarrollador y fundador de esta herramienta que pretende facilitar la tarea de crear el backend de una aplicación móvil.
Durante la entrevista hablamos de las principales funcionalidades que aporta Backbeam al desarrollador de aplicaciones móviles, el funcionamiento y el proceso de desarrollo usando sus servicios. También conocemos de primera mano las tripas tecnológicas de Backbeam, comentamos el panorama actual de desarrollo de apps con el binomio Android e iOS y la opinión sobre los principales servicios en la nube de Google, Microsoft y Facebook.
Genbeta Dev: ¿Qué es Backbeam?¿En qué consiste Backbeam?¿Cómo empezó todo?
Alberto Gimeno: Backbeam es un servicio de backend para crear aplicaciones web y móviles. Es decir, ofrecemos una infraestructura a partir de la cual puedes empezar a desarrollar tu aplicación web y móvil.
Todo empieza a tomar forma tras trabajar varios años haciendo aplicaciones móviles para terceros. Todas las aplicaciones requerían evidentemente no sólo la aplicación sino una infraestructura por detrás que el cliente daba por hecho pero que había que hacer. Y siempre es un proceso muy manual, que cada vez en mayor o menor medida tienes que volver a hacer. Veíamos la necesidad de eliminar pasos para poder enfocarnos en la aplicación y no en la infraestructura.
Genbeta Dev: Parece que muchas empresas empiezan a reconocer el esfuerzo de hacer una app, no sólo la parte móvil si no la parte del backend ¿Qué ventajas aporta usar Backbeam para alguien que quiere desarrollar una aplicación Android o iOS?
Alberto Gimeno: Con Backbeam puedes reducir alrededor de a la mitad el tiempo de desarrollo y por lo tanto el presupuesto para crear una aplicación. Backbeam elimina las tareas tediosas que no aportan valor al usuario final, pero que evidentemente son necesarias. Desde configurar servidores, bases de datos y hacer despliegues hasta integrarse con plataformas como Twitter, Facebook y otras para autenticar a tus usuarios, integrarse con plataformas de envío de emails o implementar notificaciones push.
Con Backbeam no necesitas implementar ni perder tiempo en ese tipo de “tareas de infraestructura”. Basta crear un proyecto y definir su modelo de datos (entidades, campos y relaciones) y automáticamente hay un servicio REST que puedes utilizar desde iOS, Android o JavaScript. Pero ni si quiera tienes que pensar en el API REST, porque los SDKs te ofrecen un API de alto nivel y sólo tienes que pensar en objetos y en las consultas y operaciones que quieres hacer.
A la hora de evolucionar tu modelo de datos tampoco tienes que actualizar el API REST o hacer mantenimiento de la base de datos o despliegues. Simplemente cambias el modelo de datos en el panel de control y automáticamente ya puedes usar los nuevos campos, entidades o relaciones desde tu SDK. En cuestión de segundos has cambiado el modelo de datos y ya puedes continuar desarrollando la funcionalidad en la que estabas concentrado.
Genbeta Dev: Al hacernos una cuenta en vuestra plataforma vemos un gran abanico de servicios pensado para desarrolladores ¿Cuáles son las principales funcionalidad de Backbeam?
Alberto Gimeno: Backbeam ofrece por un lado una base de datos que puedes modelar para que se adapte a tus necesidades: tienes a tu disposición datos básicos, geolocalizados, relaciones, gestión de ficheros, consultas complejas (joins o full-text por ejemplo) y gestión de usuarios. Además ofrecemos funcionalidades específicas para aplicaciones móviles, como notificaciones push, y también un completo framework de desarrollo para hacer páginas y aplicaciones web.
Genbeta Dev: ¿Cuáles serían los pasos que tendría que hacer un desarrollador para usar vuestro servicio en su aplicación móvil? ¿Qué plataformas soporta actualmente?
Alberto Gimeno: Para empezar a usar Backbeam simplemente necesitas crear un proyecto, definir tu modelo de datos (entidades, campos, relaciones) y ya puedes empezar a utilizar la base de datos y cualquier otro servicio de Backbeam usando el SDK para tu plataforma o bien empezar a desarrollar una aplicación web con el framework web que incorporamos.
Para desarrollo web no tienes ni que salir del navegador ya que puedes escribir la lógica de los controladores en el panel de control y automáticamente tus cambios se ven reflejados en la web. Tenemos versionado de código y subdominios por cada versión de los mismos, para que puedas ir testeando sin molestar a tus usuarios reales :)
En cuanto a desarrollo móvil soportamos iOS, Android y varias plataformas basadas en JavaScript: puedes utilizar el SDK de JavaScript desde PhoneGap, Titanium Appcelerator, etc.
Adicionalmente el SDK de JavaScript puede ser usado en Node.js, lo cual es perfecto para hacer integraciones o importaciones de datos: por ejemplo escribiendo un script en línea de comandos.
Genbeta Dev: En Genbeta Dev nos gusta conocer las tripas por dentro de las empresas ¿Qué tecnologías principales componen el stack tecnológico de Backbeam? ¿Alguna mala decisión que hayáis debido rectificar?
Alberto Gimeno: En el backend toda la plataforma está basada en Node.js, y por tanto casi todo es JavaScript. Hacemos tests de unidad muy intensivamente ya que cualquier línea de código te puede jugar una mala pasada en algún momento si no la tienes bien controlada :) Como bases de datos estamos utilizando una combinación de Redis y RocksDB. En Redis hemos utilizado intensivamente la parte de scripts escritos en Lua. Nos hemos encontrado con cosas curiosas en este lenguaje, como que no te permite por defecto utilizar más de 200 variables locales o_O
Para el frontend nos decantamos por no utilizar ningún framework MVC tipo backbone, ember o angular. Preferimos utilizar jQuery como base y hacer nuestras pequeñas funcionalidades para crear una interfaz rica, pero liviana. Por ejemplo prácticamente todo es SPI (single page interface) y para conseguirlo sólo hemos usado jQuery y HTML5.
Genbeta Dev: ¿Qué importancia consideras que tiene el backend para el éxito de una aplicación móvil?
Alberto Gimeno: Por un lado es importantísimo tener un backend rápido, seguro y fiable. Y por otro lado el “time to market” muchas veces es crucial. Además de que evolucionar la funcionalidad de la aplicación rápidamente según el uso que le estén dando los usuarios te puede dar una gran ventaja competitiva. Backbeam te ofrece todas estas características y te permite enfocarte en desarrollar tu aplicación, que es lo que aporta valor a tus usuarios, y no perder tiempo innecesario en la parte de infraestructura. Te hace la vida más fácil en definitiva y eso redunda en tus usuarios y/o tu negocio.
Genbeta Dev: ¿Cómo ves el desarrollo de aplicaciones móviles en nuestro país? ¿Alguna experiencia que hayáis vivido desarrollando aplicaciones móviles?
Alberto Gimeno: No tenemos tanta información como para saber si esto ocurre en más países, pero al menos en España en casi todos los desarrollos que hemos participado el cliente no asume que para que la aplicación funcione tiene que haber algo detrás: servidores, base de datos, un webservice, etc. Incluso en aquellos casos en los que el cliente ya viene con la idea de tener que importar datos o introducirlos a mano “en algún sitio” no visualiza cuál es ese “algún sitio” y entonces debes explicarle que habrá que desarrollar un backend con un panel de administración, etc. y que eso evidentemente hay que presupuestarlo :)
De todo esto en gran parte emana la necesidad de un servicio como Backbeam, para concentrarse en lo que aporta valor al cliente o usuario final y tener resueltas las partes que nos hacen ser más lentos desarrollando y que además el cliente o usuario final no perciben porque las dan por hechas.
Genbeta Dev: ¿Qué opinas del duopolio casi de facto entre Android e iOS?
Alberto Gimeno: Para nosotros ha sido una pequeña ventaja que haya dos plataformas tan mayoritarias, porque nos ha permitido invertir más tiempo en cada una para desarrollar los SDKs. Pero siempre tenemos en nuestro “backlog” la tarea de hacer SDKs para otras plataformas con Windows Phone o Firefox OS.
Como opinión personal nos gusta la diversidad, pero también siempre que esa diversidad también venga acompañada de oportunidades o innovación. Por ejemplo las notificaciones push fueron una interesante innovación que tiene muchísimo sentido integrar en servicios como el nuestro, pero otras tecnologías como Passbook, RFID, iBeacon, iCloud, etc. pueden ser usadas directamente por los desarrolladores sin hacer nosotros ninguna integración adicional. Nos gustaría que alguna otra plataforma presentase alguna innovación (ya fuera un servicio o hardware nuevo) que tuviera sentido que nosotros integrásemos.
Genbeta Dev: El entorno de desarrollo para un programador es fundamental. ¿Nos puedes describir cómo es el tuyo? ¿Cuáles son tus aplicaciones y herramientas imprescindibles?
Alberto Gimeno: Pues uso múltiples aplicaciones y herramientas, pero por la diversidad de plataformas con las que trabajamos. Luego dentro de cada plataforma soy bastante espartano y me gusta ceñirme a lo básico porque es lo que suele darme más agilidad. No me gusta perder demasiado tiempo instalando o actualizando plugins, configurando herramientas, etc.
Cuando trabajo con Node.js utilizo Sublime Text2 y la línea de comandos. Para iOS trabajo con XCode por supuesto y para Android utilizo Eclipse. Cuando toca hacer trabajo de frontend prefiero Chrome por sus herramientas para desarrolladores, aunque mientras no desarrollo prefiero usar Safari. Y por esto último sabréis que trabajo con un Mac :) Tengo un portátil y suelo trabajar en sitios públicos con WiFi.
Genbeta Dev: Actualmente parece que todos los gigantes tecnológicos tienen servicios en la nube ¿Qué opináis sobre servicios como Parse (actualmente de Facebook), Azure, Amazon Web Services o Google Cloud Plataform?
Alberto Gimeno: Los servicios de infraestructura (como Amazon Web Services, Azure o Google Cloud Platform) están siendo cada vez más utilizados (nosotros los hemos utilizado) y reflejan la madurez a la que está llegando nuestro sector. Hace diez años era impensable poder desarrollar una web que aguantase millones de usuarios al mes, pero ahora es posible con estas plataformas que te brindan la infraestructura como un servicio. Son tremendamente útiles, pero en mayor o menor grado presentan un problema de “vendor-lockin”. Es decir, te conviertes en un usuario cautivo porque tu desarrollo depende de esas plataformas y migrar es costoso. Es por eso que en Backbeam estamos desarrollando una versión OpenSource que publicaremos este año. Queremos que nuestros usuarios puedan usar nuestro servicio hospedado para olvidarse de gestionar la infraestructura, pero que también queremos que sean libres de salir si así lo desean y hospedar su backend allá donde prefieran.
Genbeta Dev: En lo que respecta al desarrollo del producto, ¿cuáles son vuestros planes de futuro?, ¿qué le falta ahora mismo a backbeam que te gustaría tener en X meses?
Alberto Gimeno: Como te comentaba estamos haciendo una versión OpenSource, lo cuál es una parte fundamental y en la que vamos a invertir mucho tiempo. También estamos integrando Git en la propia plataforma en la parte de desarrollo server-side y desde hace tiempo estamos investigando cómo integrar funcionalidades de machine learning, como algoritmos de recomendación, a los datos que tenga tu proyecto en la base de datos. Sobre esto último forma parte de una idea más amplia que es la de aportar inteligencia al servicio. No sólo ser una plataforma que te aporta funcionalidad, sino que te ayude a tomar decisiones o dar un paso más allá en la gestión de la información almacenada.
Genbeta Dev: ¿Nos puedes recomendar alguna librería, framework o servicio en la nube que hayas descubierto hace poco o consideres fundamental ahora mismo para programar apps?
Alberto Gimeno: No es algo nuevo, pero para nosotros ha sido un descubrimiento reciente: iron.io. Estamos pensando en usarlo para esa probable funcionalidad de machine learning. Nos gusta la simplicidad del servicio a la hora de utilizarlo.
Genbeta Dev: A nivel de emprendedor ¿Reto y problemas al montar una empresa en España o fuera?
Alberto Gimeno: Bueno, los problemas para emprender en España son los que se comentan muchas veces: burocracia para iniciar la empresa, la cuota de autónomos que además nos la han subido este año, que te cambien la interpretación de la ley de un día para otro o leyes absurdas como la que quieren poner ahora al crowdfunding o la “tasa Google” que hacen que muchas iniciativas sean inviables y que en otros países no tienen esas trabas.
Sitio web | Backbeam