¿Cuánto Queda Hasta Pilares?

¿Cuánto queda hasta Pilares?

Si señor, esa es la pregunta clave que debería estar haciéndose todo maño. ¿Cuánto queda hasta Pilares?

Para el que no lo sepa, los Pilares o las Fiestas del Pilar es la fiesta por excelencia de Zaragoza. Una fiesta tradicional de mi tierra que básicamente consiste en hacer una ofrenda floral a la Virgen del Pilar. La fiesta se desarrolla entre los días 8 de Octubre y el día de la Hispanidad, aunque días previos ya existen fiestas no oficiales y es posible salir a volcar fresquitos esos días previos.

Si preguntas a diferentes personas, unos te dirán que lo mejor de los Pilares es la ofrenda del día 12, otros te dirán que el pregón pero lo que yo y muchos jóvenes mas esperamos ansiosamente son las noches de Interpeñas, Espacio Z y la Carpa del Ternasco.

Inflarte a comer carne con denominación de origen en la Carpa del Ternasco mientras te bebes una buena Ambar fresquita al ritmo de Los Gandules para después irte hasta el recinto ferial Valdespartera a pillarte el moco con los calimotxos y el garrafón y acabar la noche comiéndote un calamar bravo es ya un rito típico que se repite todos los años.

Por eso, la aplicación de “¿Cuánto queda hasta Pilares?” es tu mejor opción para saber cuántos días quedan hasta que comiencen las fiestas. No necesitas nada más que un teléfono Android y descargar la aplicación desde la market.

Ale, todos a descargar 😉

Zona developers

Como es ya tradicional cada vez que hago un desarrollo, os voy a dejar a continuación el enlace al repositorio para que podáis descargar el código fuente de la aplicación y le echéis un vistazo.

La aplicación de “¿Cuánto queda hasta Pilares?” esta hecha con Ionic Framework, al igual que las otras apps que he hecho, Test de la Amistad, Nivel de Alerta Antiterrorista y Peliculas Kinkis pero a diferencia de las otras, en esta he utilizado un par de cosas nuevas de Angular.

Para el que no lo sepa, el framework de Ionic utiliza por debajo AngularJS y Apache Cordova.

Directivas en Angular

.directive('countdown', [
  'Util', '$interval', function(Util, $interval) {
    return {
      restrict: 'A',
      scope: {
        date: '@'
      },
      link: function(scope, element) {
        var future;
        future = new Date(scope.date);
        $interval(function() {
          var diff;
          diff = Math.floor((future.getTime() - new Date().getTime()) / 1000);
          return element.text(Util.dhms(diff));
        }, 1000);
      }
    };
  }
])

Este es un pedazo de código fuente de la aplicación y se corresponde con una directiva en AngularJS.

Una directiva es un pedazo de código con el que podemos extender nuestro código HTML, estas directivas pueden ser desde un pequeño cacho de código hasta una funcionalidad completa como la anterior. Existen varios tipos de directivas nativas de Angular como ng-app, ng-controller, ng-model, ng-click… aunque ya entraré en detalle en ellas en otra entrada.

Como veis, a esta directiva a la que he llamado countdown le estamos pasando el servicio Util y el objeto $interval. Después en la vista la utilizo tal que así:

<span countdown='' date='{{date}}' class="date"></span>

La otra funcionalidad que he utilizado para este desarrollo y que no había utilizado en otras apps son los servicios.

Servicios en Angular

Algo parecido a los servicios que definimos en Symfony, los servicios de Angular son unos objetos que se rigen por el patrón Singleton y que se inyectan a través del contenedor de Dependencias. La misión de estos servicios es escribir la lógica de negocio que después podremos reutilizar en cualquier otra parte de la aplicación sin tener que depender de la vista.

.service('Util', [
  function() {
    return {
      dhms: function(t) {
        var days, hours, minutes, seconds;
        days = Math.floor(t / 86400);
        t -= days * 86400;
        hours = Math.floor(t / 3600) % 24;
        t -= hours * 3600;
        minutes = Math.floor(t / 60) % 60;
        t -= minutes * 60;
        seconds = t % 60;
        return [days + 'días', hours + 'horas', minutes + 'minutos', seconds + 'segundos'].join(' ');
      }
    };
  }
]);

Este servicio al que he llamado Util y que después se lo paso como argumento a la directiva anterior hace una cosa tan tonta como calcular el tiempo que queda hasta una fecha futura. Se podría decir que es el núcleo de la aplicación “¿Cuánto queda hasta Pilares?”

Obviamente los servicios, las directivas y el propio framework de Angular dan para una entrada completa o varias cosa que no es objeto de este post pero en el que si que quería hacer una pequeña introducción para que se entienda el código fuente completo.

Os dejo el enlace al repo de github y si tenéis cualquier duda podéis hacerlo en los comentarios o través del banner de Twitter de a continuación.

@gorkakatua #faqsGorkamu pregúntame por twitter cualquier cosa y vemos cómo lo solucionamos.

Hala, a mamarla!

¿Te ha parecido este un artículo de 5 estrellas? Dame tu valoración:
Review Date
Reviewed Item
¿Cuánto queda hasta Pilares?
Author Rating
5

Gorka Muñoz Andrés

Me llamo Gorka Muñoz y soy un desarrollador melómano. Combino a la perfección la búsqueda de nuevos grupos con la pasión por la tecnología. Desde chiquitito me ha gustado la programación, ahora que soy mayor estoy metido en el mundo del SEO sin olvidarme del /Dev.

This Post Has One Comment

  1. JOSE

    Me parece una idea genial, aunque todos sepamos cuando, es creo que viene bien que haya una aplicación que nos lo vaya recordando. VIVA LAS FIESTAS DEL PILAR

Deja un comentario

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