MozLocations: construyendo una app de transporte para Firefox OS

Firefox OS, el sistema operativo móvil de Mozilla, es una apuesta concreta por traer de vuelta a las aplicaciones web de siempre al mundo móvil. En este post explico un proyecto para hacer una aplicación en Firefox OS para resolver un problema local.

El contexto

En Lima, Perú, existen dos sistemas masivos de transporte público: el Metropolitano (un sistema de buses que recorre la ciudad) y la Línea 1 del Tren Eléctrico. Ambos cuentan con estaciones predefinidas y horarios de funcionamiento, y son empleados por miles de personas diariamente.

Estación Naranjal, Metropolitano de Lima

El año pasado en Mozilla Perú comenzamos a prepararnos al lanzamiento de Firefox OS demostrando aplicaciones web móviles, y la primera de ellas fue Metropolitano Mobile, una aplicación hecha en jQuery Mobile que brindaba información sobre estaciones y rutas.

En 2013, con los primeros lanzamientos de Firefox OS a nivel global (Geeksphone, ZTE) y local (España, Polonia, Colombia y Venezuela), comenzamos a trabajar en una aplicación para el Tren Eléctrico de Lima, que ya se encuentra disponible en el Firefox Marketplace.

La idea de MozLocations

La obstinación con aplicaciones de transporte se debía a que nos parecía importante construir aplicaciones útiles para personas de una región o un país, aplicaciones que nos resuelvan problemas concretos y que podamos aprovechar nosotros y nuestros amigos.

Tras los experimentos anteriores de Metropolitano Mobile y Sube al Metro de Lima, decidí planear una nueva aplicación pero con los siguientes principios:

  1. Una aplicación específica para Firefox OS, que aprovechase sus recursos pero que a la vez sea accesible vía web.
  2. Una aplicación offline, o que al menos para la mayor parte de sus opciones pueda funcionar sin conexión a Internet.
  3. Una aplicación online, que se integre con otros servicios en Internet sólo en situaciones específicas.
  4. Una aplicación que pueda portarse a otros escenarios con pocos ajustes.

Siendo así, los lineamientos generales fueron:

  • Listar estaciones y rutas de un servicio de transporte (en este caso el Metropolitano de Lima).
  • Mostrar detalles de una estación, como su ubicación y la lista de rutas que la atraviesan.
  • Guardar una Estación Favorita, a manera de acceso directo a los detalles de una estación que visitamos siempre o a la que tenemos que ir pronto.
  • Calcular la Estación más cercana, que a partir de nuestra ubicación actual nos sugiera cuál es la estación de transporte a la que podamos ir.
  • Obtener información de alertas del servicio. En este caso las alertas las proporciona vía Twitter la cuenta oficial del servicio.
  • Mostrar información general del servicio: Como los horarios de funcionamiento, las tarifas y los canales virtuales de atención.

Metropolitano de Lima, la aplicación

La aplicación ya se encuentra disponible en el Firefox Marketplace como Metropolitano de Lima y funciona en dispositivos con Firefox OS. La versión web también está disponible en Metropolitano de Lima, GitHub.

Es así como se ve la aplicación:

Metropolitano de Lima 1 Metropolitano de Lima 2 Metropolitano de Lima 3 Metropolitano de Lima 4 Metropolitano de Lima 5 Metropolitano de Lima 6 Metropolitano de Lima 7

Pero yo no vivo en Lima (y soy desarrollador)

Es momento de recordarles el cuatro principio de la aplicación:

4. Una aplicación que pueda portarse a otros escenarios con pocos ajustes.

Es por ello que la aplicación almacena la información del servicio en arreglos de datos en JavaScript:

js/applicationData.js
var applicationData = {
stations: [
{ /* 0 */ name: “Naranjal”, address: “Av. Túpac Amaru cdra 45 con Av. Chinchaysuyo cdra 1 – Independencia”, coordinatelat: “-11.982013”, coordinatelng: “-77.058663”, },
// more stations here
],
routes: [
{ name: “Regular A”,
directions: [
{ name: “Central » Naranjal”, days: [1,2,3,4,5,6], hours: [“05:40″,”22:55”], typeOfSchedule: “Intervals”, stations: [0,1,2,3,4,5,6,7,8,9,10,11,15,16,17,18], },
// more directions here
] // more routes here
}

Si entendiste que significa el bloque anterior, ¡Felicidades!, ya puedes hacer tu propia versión para un sistema de transporte en tu ciudad, o para una empresa de transporte que recorre varias ciudades en tu región o país.

Más aún, imagina que en lugar de una aplicación de transporte quieres hacer una aplicación de una cadena de comida rápida, o de estaciones de policía, o de simplemente negocios con varios locales. Puedes obviar la sección routes y reutilizar la aplicación para ese negocio.

El código está publicado en GitHub / juaneladio / metropolitano, pero si se te complica mucho puedes bajar el zip desde aquí.

¿Qué sigue?

Por el momento, esperar que termine el flujo de aprobación en el Firefox Marketplace (una vez aprobada, no sólo estará disponible en Firefox OS y en Firefox OS Simulator, sino también en smartphones con Firefox para Android).

En cuanto a la aplicación, ya cumple con los requisitos mínimos, pero si tienes ideas de mejoras puedes proponerlas en la sección Issues de GitHub.

Anuncios

Etiquetas: ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: