AngularJS y BBVA InnovApps+

innova-appsEl pasado 30 de Mayo finalizo el plazo de presentación de propuestas para el concurso BBVA InnovaApps+, concurso organizado conjuntamente por BBVA y Google. Llegados aquí creemos que es un buen momento para analizar las soluciones técnicas que hemos elegido para realizar nuestra propuesta, BBVA Dining+, por lo que en este post os hablaremos de AngularJS.

 

Decidimos dividir nuestro proyecto en 3 partes:

  • Una App nativa para Android.
  • Una Web de gestión.
  • Una API que sirva como fuente de datos tanto para la App móvil  como para la Web de gestión.

 

Y hoy en este primer post, os queremos hablar de uno de los pilares sobre los que se sustenta nuestra propuesta, Angular JS, la solución por la que apostamos para realizar nuestra web de gestión.

AngularJS-large

Angular JS, es un framework JavaScript libre y open source desarrollado por Google desde 2009 y basado en el patrón MVC (Model View Controller). Sus principales competidores son Amber JS y Backbone JS aunque existen mucho más, pero nos descantamos por el framework de Google ya que nos pareció el más potente. Además cuenta con numerosos recursos para poder empezar en su web oficial y goza de una comunidad cada vez más activa, lo que nos asegura tener respuesta a cualquier problema que pudiéramos tener.

El primer punto a destacar es que gracias a Angular JS podemos crear Single Page Application (SPA) muy potentes y con mucha facilidad. SPA es una tendencia cada vez más creciente y que podemos definir como una aplicación web que se ejecuta en una única página, logrando así una experiencia de usuario más cercana a una aplicación de escritorio y más rápida que una aplicación web clásica.

AngularJS adapta y amplia el lenguaje HTML tradicional para poder generar contenido dinámico gracias a un binding bi-directional que nos mantiene siempre sincronizados vista y modelo de manera automática.

Este mecanismo que minimiza las manipulaciones del DOM permite crear pruebas unitarias con mucha facilidad ya que la propia estructura de la aplicación facilita la implementación de las mismas, una ventaja para desarrollar código de más calidad  y más rápidamente.

Además elimina las tareas de inicialización y recuperación de datos con los elementos de nuestra interfaz que podían darnos mucho trabajo y siempre con la posibilidad de personalizar el binding para por ejemplo para formatear los valores de una manera determinada.

Lo más destacable de AngularJS es que permite trasladar parte de la lógica habitualmente soportada por el servidor al cliente ya que los controladores son simples ficheros JavaScript que se inyectan como dependencia en la aplicación y que se ejecutan en el navegador del cliente. Conseguimos de esta manera aplicaciones más ligeras ya que no necesitan tanta comunicación con el servidor.

Está separación permite también repartir con más facilidad el trabajo ya que un equipo se puede centrar por ejemplo en el desarrollo de una API mientras el otro se encarga de realizar la web de manera totalmente independiente.

La experiencia con el framework de Google ha tenido sus altos y bajos ya que la curva de aprendizaje es bastante dura, y si al principio nos hemos quedado sorprendidos con las capacidades del framework, luego hemos tenido que dominar poco a poco cada uno de sus componentes. Lo podríamos resumir muy bien con este gráfico:

Sin título

Pero al fin y al cabo nuestra experiencia con AngularJS ha sido muy positiva, el framework es potente, extensible y se adapta a cualquier necesidad. Contaremos con él para nuestros futuros proyectos.

En la próxima entrada os presentaremos la solución que hemos empleado para desarrollar nuestra API de acceso a datos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *