Micro–proyecto de aplicación interna útil usando FireBase

Cycle–IT

21/05/2014

Los autores

  • Antonio: idea, coordinación, programación.
  • Miguel: scrum–master, programación.
  • Raúl: programación.
  • Moha: programación.

Qué vamos a ver

  • Objetivos y justificación
  • Firebase y angularFire
  • Receticas
    • La aplicación
    • El código
  • Conclusiones y debate

Objetivos

  1. Desvirgarnos con Firebase, uno de los servicios de persistencia «en la nube» más populares, y que además parece especialmente versátil y fácil de usar.
  2. Mejorar la colaboración en la empresa, o resolver alguna de esas pequeñas necesidades internas, o dotarnos de una nueva herramienta completamente a medida.

Justificación

  1. Somos una empresa centrada en interfaz de usuario. Si en algunos casos podemos desentendernos aún más del backend, eso nos evitará distracciones, seremos más productivos en UX, y por tanto más competitivos.
  2. Tenemos que estar al día en servicios de persistencia «en la nube» y en tiempo real.
  3. Firebase es muy amigo de AngularJS y existen buenos bindings de AngularJS para Firebase.
  4. De vez en cuando nos surgen pequeñas necesidades internas que a veces no terminamos de resolver.

Firebase

«A powerful API to store and sync data in realtime.»

angularFire

Receticas: la aplicación

Proyecto elegido: repositorio de recetas de programación (snippets).

  • Coordinado con scrum y usando Trello.
  • Una reunión de planificación.
  • Snippet: «fragmento de código identificado por un nombre y una descripción».
  • Roles: desarrollador, diseñador.

Receticas: el código

  • «Arquitectura técnica: cuenta de Firebase, montar proyecto, enganchar AngularJS y Firebase
  • «Crear, consultar, modificar, borrar una receta: al crear una receta se debe indicar el desarrollador/diseñador que la crea (preferiblemente un email); indicar una URL donde se usa; borrar requiere confirmación.»
  • «Categorizar recetas

Receticas: el código

https://glowing-fire-8382.firebaseio.com/

Receticas: el código

Moha: colorear sintaxis de código

  • «En la creación se asignaría el lenguaje al que pertenece el snippet. Para colorear se usaría algún plugin existente.»
  • highlight.js.
  • angular-highlightjs.

Receticas: el código

Miguel: copiar al portapapeles

Receticas: el código

Raúl: consultar recetas

  • «Buscar en código a partir de una cadena de texto: en el nombre, en la descripción, por autor.»
  • Elasticsearch: «an end-to-end search and analytics platform».
  • Flashlight: «pluggable integration with ElasticSearch to provide advanced content searches in Firebase».

  • …+ Node.js + NPM.

Conclusiones

  • Usar Firebase es muy fácil.
  • …y usando angularFire, más todavía.
  • El hecho de que use JSON lo hace muy flexible.
  • Donde muestra toda su potencia es en aplicaciones en tiempo real.
  • …en cambio, no está pensado para consultas complejas (no es una BD al uso).

Cuestiones abiertas

  • Migración de datos desde Firebase: ¿Es fácil? ¿Es posible?
    Ejemplo (negativo) del pasado: StackMob.
  • ¿Rendimiento económico concreto en Cycle?
  • Pendiente: ¡hacerlo bien y desplegar en Maquinica (por ejemplo)!

<!-- EOF -->