Blog: Otra vuelta a QPedimos

Logotipo de QPedimosDesde hace unos días, tenemos ya disponible para Android la nueva versión de nuestra app, QPedimos. Como muchos sabreis, se trata de una sencilla app que permite obtener un listado de establecimientos de comida a domicilio, o para recoger en el local, que además, nos muestra los folletos que estos restaurantes tienen disponibles. Es un excelente sustituto a ese puñado de folletos que siempre guardamos en algún cajón, y que precisamente, el que más necesitamos, será el que no tenemos guardado.

Este proyecto es de desarrollo propio, es decir, no es un encargo de nadie, sino nuestra apuesta por comercializar un producto, que pensamos que puede ser bueno si entre todos, usuarios y desarrolladores, lo tratamos con cariño. Por nuestra parte, el cariño está servido, pues es una aplicación que, aunque es cierto, hemos dedicado el poco tiempo que hemos podido disponer, la hemos enfocado de una manera que queremos que siga creciendo y que sea de utilidad.

En esta entrada del blog, me gustaría contaros de qué va realmente QPedimos: sus nuevas funcionalidades, su método de programación, su estructura, etc. Es decir, quisiera que conocieras cómo MobyteStudio trabaja en una app. Espero que te sea de interés.

Cuales son las novedades de QPedimos

QPedimos ha sido renovada desde los cimientos hasta el tejado. Ha sufrido, no solo cambios estéticos, sino también estructurales y funcionales. Lo que más llama la atención, a primera vista, es su cambio radical en el diseño. Desde el logotipo, que se ha dejado aquellas porciones de pizza para adoptar una gran Q sobre un plato (se aceptan otras ideas) blanca sobre fondo naranja. Desde aquí, se ha explotado esta escasa paleta gráfica, de modo que no sea una explosión de color que acabe mareando al usuario.

Pantalla principal de QPedimos

Los usuarios de iOS, enseguida notarán el estilo más Android de la aplicación, aunque si nos fijamos en la tendencia de las últimas versiones de iOS, y en la evolución que están teniendo sus apps, no va muy desencaminado, habiendo una cierta tendencia a unificar los dos estilos. Así, pasamos a la utilización de colores planos, esquinas rectas, tipografías estiliazadas e iconos sencillos. Atrás quedó el esqueumorfismo del Jony Ive en la era Jobs para pasar a las nuevas tendencias traidas por las últimas versiones de Android, iOS y, porqué no, Windows Phone.

Así, atrás dejamos el fondo con la foto de la pizza y los botones con volúmen y brillos para pasar a cuadrados, donde mostrar el logo del restaurante, o en su defecto, el logo de QPedimos, en caso de que el restaurante no lo haya colocado.

Menú lateral de QPedimos

Por otro lado, ahora, todas las secciones aparecen en un menú lateral oculto, que aparece con tocar el icono de las tres rayitas, curiosamente llamado “hamburguer“. Desde este menú, podremos acceder a las distintas formas de filtrar el contenido, es decir, buscar los restaurantes por su nombre, por el tipo de comida o por la nacionalidad de la misma. Además, se podremos tener nuestros restaurantes de cabecera, aquellos que nunca te fallan y a los que siempre acabas llamando, por más que te propongas probar otros.

Como novedad, hay una sección Notificaciones. Creo que su nombre lo explica todo, pero mejor explicarlo más detenidamente. Ésta es la gran novedad de la versión 1.0 de QPedimos, las notificaciones. Hoy en día, rara es la aplicación que no utiliza las notificaciones, pero es que se han vuelto muy útiles, siempre que no se vuelvan un abuso y estén sonando hasta en la hora de la siesta. Pero, ¿para qué se utilizan las notificaciones en una aplicación de folletos? Muy sencillo. Ahora, al acceder a un restaurante, además de ver dónde está, la carta o folleto, también podremos llamar al restaurante para encargar la comida. Ésta no es la novedad, pues ya se podía antes. La novedad es que, si el restaurante está utilizando nuestro sistema de notificaciones, aparecerá un mensaje informando de tal situación, y nos asignará un código de usuario. Así pues, al llamar al restaurante e informar a nuestro interlocutor de que estamos utilizando QPedimos, nos pedirá este código. Gracias a el código de usuario, cuando nuestro pedido vaya a salir del restaurante en la moto, o si el restaurante no tiene servicio a domicilio y es para recoger en el local, nos llegará un mensaje informándonos de tal situación, y nos recordará el precio del pedido. Con esto, se acabó los nervios de no saber cuándo llegará el pedido, y lo mejor, no tendremos al repartidor esperando en la puerta a que reunamos el dinero entre todos para pagarle, sino que ya lo habremos podido preparar con antelación.

Así pues, en la sección de notificaciones, tendremos el historial de las notificaciones recibidas, pudiendo volver a mirar en cualquier momento cual era el precio de nuestro pedido.

Todo esto, igual que antes, se puede hacer a partir de nuestra posición por GPS, es decir, desde el municipio donde nos encontramos, puedes obtener el listado de restaurantes de las cercanías. Si quieres buscar de otro municipio, proporcionamos un buscador donde escribir el nombre de dicho municipio, o su código postal, y seleccionar el que quieras para ver qué restaurantes hay por esa zona.

Y básicamente, estas son las novedades de la app. Así pues, si eres un usuario o potencial usuario, y querías saber qué tiene de nuevo esta versión, puede que debas dejar de leer aquí. Si por el contrario, te interesa saber cómo la hemos hecho, y algún aspecto técnico, te invito a que sigas leyendo.

Las entrañas de QPedimos

Como he dicho más arriba, ahora entramos en la parte que a un usuario no le interesa, y de la que seguramente, no querrá ni saber. Pero si eres desarrollador, seguramente te interese un poco saber cómo está hecha. Vamos  a destriparla y a desvelar cómo está hecha.

Desde un principio, MobyteStudio tiene una apuesta clara: las apps híbridas. Para aquellos que no sepan de qué va eso de las apps híbridas les diré que se trata de aplicaciones para móviles que en lugar de estar escritas en el lenguaje nativo de la plataforma donde se vaya a ejecutar (Java para Android o Objective-C para iOS), en su lugar se utilizan tecnologías web, junto con partes nativas. De este modo, podemos desarrollar toda la interfaz gráfica mediante HTML5+CSS3, tal y como haríamos con una página web, pero le damos la apariencia de aplicación móvil. Luego, la funcionalidad se la damos mediante Javascript y, si requiere alguna funcionalidad más compleja, o más cercana al hardware o al software del sistema operativo donde se ejecuta, recurrimos a la programación nativa. Además, dicha programación nativa será la que sostenga toda la app, de modo que, al final, tengamos una aplicación independiente y universal para esa plataforma. Además, será un requisito necesario para poder publicarla en los diferentes Stores, para su distribución.

Si paramos a pensar un momento, podemos ver claramente cual es su mayor ventaja: estamos desarrollando una app para varias plataformas a la vez, con los mismos recursos que hacen falta para desarrollar para una sola. Ésto es una ventaja en tiempo y coste, claramente. Pero, ya que nos ponemos a contar las cosas, creo que hay que contarlas todas. También tiene sus contras. Actualmente, el rendimiento de las aplicaciones híbridas no es tan bueno como las aplicaciones nativas. La parte buena es que cada vez, esa diferencia se hace menor y, si no me equivoco, la tendencia será al uso de aplicaciones híbridas, que aune lo mejor de cada técnica. Por suerte, los sistemas operativos, cada vez son más eficientes, el hardware es mejor y las técnicas de desarrollo, son cada vez más depuradas.

El desarrollo de apps híbridas cuenta con la riqueza de que se puede hacer de miles de formas. Desde escribir HTML5+CSS3+Javascript a pelo, a utilizar frameworks y librerías que facilitan mucho la labor. Esto merece otro artículo, que no descarto escribir en otro momento. En nuestro caso, tras muchas pruebas, nos decantamos por Sencha Touch. Este framework nos proporciona todas las herramientas gráficas para la construcción de interfaces, así como todo lo que hay por debajo: manejo de eventos, estructuras de datos, bases de datos, conexiones remotas,…

Para empaquetarlo todo, la mejor solución actualmente es Apache Cordova, otro framework que nos da acceso a la parte nativa, y que tiene la buena propiedad de permitir extender sus funcionalidades mediante el desarrollo de plugins en lenguaje nativo para cada plataforma. De este modo, las notificaciones PUSH están controladas desde un plugin nativo en Java y en Objective-C, que se encarga de capturar la notificación que el sistema operativo recoge y enviarla a la función en Javascript adecuada para su correcto manejo. Otro de los plug-ins que se utiliza es el de geoposicionamiento a través de GPS, ya sea con el sistema de GPS del móvil o con el uso del posicionamiento mediante redes Wifi o 3G.

Con todo esto, se crea el paquete adecuado para los distintos sistemas operativos,  se procede a publicarlo en Google Play y en AppStore, para que los usuarios puedan utilizarlo.

El lado servidor

Lógicamente, esta aplicación no tiene precargados todos los restaurantes, sino que se nutre de contenido gracias a una aplicación de servidor. Desde esta aplicación, se pueden añadir, editar o eliminar los restaurantes, sus datos, sus folletos, etc. Esta parte es importante, pues va a ser la que utilice el otro tipo de usuario de QPedimos: el restaurante. Se trata de una aplicación desarrollada con Symfony, contra una base de datos MySQL.

Además, utilizamos el servicio de envío de notificaciones PUSH, desarrollado por MobyteStudio, y del que pronto hablaremos en este blog, pues se trata de un servicio que pondremos a disposición de aquellos que lo requieran para sus desarrollos, o para las aplicaciones que nos encarguen a nosotros, y requieran de esta característica. Pero como digo, se trata de un servicio que explicaremos en otro post.

Del servidor se podría hablar mucho sobre su estructura de base de datos y otras cosas, pero por no ahondar mucho, y siendo algo no muy complejo, creo que es más importante que expliquemos cómo se va a comercializar todo esto, y sobretodo, si tengo un restaurante, cómo puedo tener presencia aquí y aprovechar los servicios que proporciona QPedimos.

¿Y qué más?

Pues de momento lo dejaremos aquí. En un próximo post contaremos cómo podrán participar los restaurantes en su mantenimiento, incluyendo los servicios que obtendrán, posibilidades y, por qué no, cómo se mantiene todo eso. Pero como digo, será contado otro día.

Por ahora, basta con que os instaleis la app y la probeis. Estaré encantado de leer vuestras opiniones.