Esta semana pusimos en marcha un indicador de versiones muy simple para las aplicaciones de huayra.

Hicimos algo similar a lo que venía haciendo en pilas-engine, pero de manera mas sencilla:

La idea es muy simple, cada vez que se abre una aplicación, buscamos informar a los usuarios si existe una versión mas reciente en nuestros servidores, y si es así, lo informamos.

¿Cómo se ve en las aplicaciones?

Imaginá que el usuario abre una aplicación como huayra-curriculum, si está usando la versión más reciente va a observar algo así:

En cambio, si está usando una versión anterior lo que va a mostrarse es lo sigiuente:

Este indicador funciona junto con un servicio web, así que el usuario se puede enterar de la actualización el mismo día de la publicación.

En la imagen se puede ver que también incluimos un texto: “Existe actualización”, que se puede pulsar, y te envía directamente a una página con información de la actualización.

En estas primeras versiones, hicimos que la página de actualización sea muy sencilla, incluyendo los pasos de actualización y algunas recomendaciones:

Nuestra idea es que la página cuente lo mínimo e indispensable para que los usuarios puedan actualizar la aplicación rápidamente.

Obviamente en el futuro nos gustaría que las actualizaciones se puedan hacer con un solo click, así que vamos a seguir trabajando :)

¿Cómo funciona?

Para que el indicador funcione correctamente tuvimos que construir varias cosas:

En primer lugar, Mauro armó un webservice al que se le pueden hacer preguntas para conocer las versiones de los paquetes en huayra.

Por ejemplo, si pedimos esta ruta con navegador, el webservice nos retornará la información mas reciente del paquete huayra-currilum:

La segunda tarea consistió en armar un indicador de versión para cada una de las aplicaciones de huayra:

Y por último, para completar el circuito de actualización completo, armamos un sitio con el tutorial para actualizar aplicaciones. Haciendólo personalizable por cada aplicación:

Y acá un dato curioso: el sitio lo armé con ember, para que sea sencillo personalizar cada página, así que si incluís ?debug al final de la URL anterior vas a ver la separación entre modelo y contenido :)

Ideas a futuro

Hasta ahora logramos algo interesante, podemos tener la seguridad de que las nuevas versiones no van a pasar desapercibidas por mucho tiempo.

Sin dudas el canal más directo para informar a los usuarios es la misma aplicación, pero creemos que se puede hacer mejor.

Una de las cosas que me gustaría lograr es que las aplicaciones se puedan actualizar de forma más directa, como hace la aplicación de escritorio de spotify o el cliente gráfico de github:

Es decir, las dos aplicaciones tienen un enfoque ideal de actualización (al menos para mí), porque descargan la actualización automáticamente y luego informan al usuario que puede “reiniciar” la aplicación para usar la nueva versión.

La otra idea que me queda en mente por investigar, es una forma sencilla de integrar el sistema de versiones de github, y hacer mas sencillo mirar hacia atrás y ver el historial de todas las versiones publicadas.

En fin, queda mucho por investigar, pero avanzamos :)