PlatformIO: una herramienta para mejorar tu flujo de trabajo IoT.

por Ricardo Vega el 22/11/2016

Definitivamente no es la primera vez que en ese blog hablamos de PlatformIO ya que lo mencionamos con anterioridad al tratar cómo podíamos emplear Atom para programar nuestro Arduino.

Sin embargo en esta ocasión nos vamos a centrar en Platformio como herramienta y veremos que ventajas introduce en nuestra metodología de trabajo. No vamos a tener un post de una gran duración pero espero "picarte la curiosidad" lo suficiente cómo para que le des una oportunidad porque creo que no te arrepentirás.

PlatformIO

En primer lugar, debes saber que PlatformIO es un ecosistema "Open Source" de desarrollo especialmente para entornos IoT. Internamente está escrito en Python que será la única dependencia requerida y trata de brindarte una plataforma de desarrollo única independientemente del hardware que estés empleando.

Además, se encarga de manejar todos los requerimientos a nivel de librerías de forma centralizada posibilitando la migración entre plataformas y la compartición de código entre diferentes personas dentro de un equipo.

PlatformIO en sí no es más que una aplicación de consola pero puede ser usada en conjunción con tu editor favorito (Atom, Eclipse, Emacs, NetBeans, Sublime Text, VIM, Visual Studio, ...). Concretamente para Atom, existe un plugin que lo convierte en un IDE completo y que fue lo que revisamos con anterioridad en el post anterior.

Cómo funciona

Sin entrar en demasiados detalles acerca de su implementación interna, PlatformIO cuenta con los siguientes puntos clave que describen su funcionamiento:

  • La plataforma de desarrollo así como la placa física empleada son configuraciones del proyecto y como tal van en el fichero platformio.ini.
  • En dicho fichero pueden existir diferentes configuraciones para diferentes entornos, todos ellas compartiendo el mismo código fuente.
  • Relacionado con la anterior, el código fuente es independiente de la plataforma de desarrollo empleada y va localizado bajo la carpeta src.
  • Basándose en el fichero plaformio.ini, el sistema se encarga de descargar e instalar todas los requerimientos necesarios.
  • La carpeta lib almacena las diferentes librerías requeridas por la aplicación que estés desarrollando.
  • El usuario dispone en una única herramienta y con una API sencilla de toda la funcionalidad que requiere para crear, compilar y subir código.

Bajo estas características se enmarcan las principales ventajas de usar PlatformIO.

A nivel personal, he estado empleándolo aproximadamente durante el último año en diferentes proyectos de diferente calibre y mi experiencia es que a medida que el proyecto es más grande, más útil resulta PlatformIO. Su uso te va a permitir empezar a desarrollar sin tener porqué elegir la plataforma final donde irá tu programa, permitiéndote una flexibilidad enorme para adaptarte a las necesidades de tu proyecto a medida que este crece.

El manejo centralizado de las dependencias es otra gran ventaja de forma que puedes tener un cierto inventario de qué estas usando de una forma sencilla.

Por último, la capacidad de migrar tu trabajo a otros entornos (ya sea por cambios de sistema operativo o por comparticiones de código entre un grupo de trabajo) son un gran avance que facilitará sin duda tu experiencia. Además te permitirá trabajar con tus proyectos aprovechándote de las ventajas que te brinda el Software de Control de Versiones (SCM) como git.

¿Es perfecto? No, tiene mucho que mejorar y cuando no usas programadores convencionales (yo trabajo mucho con programadores USB-Serie), se te complican las cosas. No es un gran problema, pero no es tan sencillo como conectar y a funcionar.

Su documentación dispone de un pequeño GIF en el que visualmente puedes ver un flujo de trabajo sencillo empleando PlatformIO:

PlatformIO Workflow

La documentación de PlatformIO es muy completa y te recomiendo que le eches un detenido vistazo, empezando por el excelente Quick Start que te permitirá empezar a trabajar en pocos minutos con esta excelente herramienta. Ya me contarás tus experiencias.

Un saludo y nos vemos la próxima semana :=)

Apoya al blog


Si te ha gustado este artículo, valora apoyarme económicamente a través de Patreon, una plataforma de Micro-mecenazgo con la que puedes hacerme un donativo que ayude a la continuidad del blog. Una pequeña ayuda significa mucho. 😃

Permanezcamos en contacto!


¿Quieres enterarte de todas las novedades del sector? ¿Te gustaría trabajar conmigo? ¡Puedes contactar conmigo de forma muy sencilla!