google gearsCon esta extensión desarrollada para los navegadores Internet Explorer y Firefox podremos seguir navegando por la web cuando no estemos conectados a Internet y además tiene su propia API que brinda mayores opciones a los desarrolladores y usuarios.

Funcionamiento de Google Gears

Google Gears es una extensión con licencia Open Source (BSD) que hace posible el uso de aplicaciones web desconectadas mediante un servidor web local que utiliza para almacenar en caché la aplicación en cuestión; este también tiene la función de servir los archivos almacenados: páginas HTML, archivos JavaScript, imágenes, etc.

Cuenta con una base de datos relacional, creada a partir de SQLite, donde almacena los archivos descargados y la estructura de estos. Además utiliza un WorkerPool que se encarga de realizar en segundo plano las tareas que necesitan más recursos en el sistema; las que ejecuta de forma asíncrona.

Esta extensión elimina el principal problema de todas las aplicaciones web: la necesidad de estar conectados todo el tiempo para que podamos interactuar con ellas. Pero para que sea posible seguir trabajando en un sitio web si nos desconectamos es necesario que la aplicación web tenga implementada esta característica. Con la API de Google Gears podremos programar nuestro sitio web para que los usuarios puedan seguir navegando por las aplicaciones mientras no estén en la red.

Modo de uso

Para utilizar aplicaciones web sin conexión es necesario descargar la extensión desde el sitio oficial de Google Gears. Una vez instalada será necesario reiniciar el navegador en el momento que la instalación lo solicite. Hecho esto nuestro browser estará apto para navegar desconectado por los sitios que lo permitan.

Es imprescindible que el sitio web por el que queramos navegar desconectado esté preparado previamente; para esto deberá soportar en su código fuente las características de Gears, utilizando la API que nos ofrece Google para implementar en nuestra propia aplicación web.

Cuando tengamos instalada la extensión en nuestro navegador y entremos a un sitio con soporte para ella, se nos solicitará permiso para usar Gears en el sitio web, solicitud que debemos aceptar para luego proceder a habilitar la versión desconectada del documento y finalmente podremos desenchufarnos de la red que no notaremos el cambio.

Algunos inconvenientes

Hasta el momento esta aplicación sólo es posible utilizarla en los navegadores web: Internet Explorer y Firefox. La instalación está disponible para Windows como un ejecutable, mientras que en Linux y Mac tenemos que instalarlo como una extensión para Firefox, por lo que es necesario el uso de ese navegador en estos dos sistemas operativos.

Sobre este último aspecto es válido dar a conocer que la extensión para el zorro de fuego ya es compatible con Firefox 3. La primera vez que utilizamos Google Gears se demora un poco al cargar los archivos, pero luego la navegación a través de él es tan rápida y liviana como de costumbre.

Implementando Google Gears en nuestro sitio

Si queremos que nuestros usuarios tengan nuestro sitio web disponible sin conexión con Google Gears mientras están desconectados, es necesario que lo preparemos para esto.

Primeramente debemos crear un archivo con el nombre manifest.json en la raíz del sitio. Este es un documento de texto con formato JSON que almacenará la información necesaria para que Gears pueda leer el contenido de nuestro sitio.

El archivo debe tener una sintaxis organizada de la forma que se muestra a continuación:

{
	"betaManifestVersion": 1,
	"version": "1.0",
	"entries": [
		{ "url": "offline.html"},
		{ "url": "offline.js"},
		{ "url": "offline_gears.js"}
	]
}

El atributo “version” determina la versión de nuestra aplicación y será útil a Gears para determinar si la versión sin conexión está actualizada con respecto a la versión online; por lo que debemos aumentar este número cuando hagamos modificaciones en cualquiera de las páginas de la aplicación, para que la extensión Gears de los usuarios que la estén usando offline sepan que deben actualizar su versión local.

El atributo “entries” contiene un arreglo de los archivos del sitio que se deben almacenar localmente para que estén disponibles sin conexión. Para cada imagen o archivo que queramos tener en la copia local debemos agregar un elemento al arreglo “entries” con el formato como se muestra en el ejemplo siguiente.

Por ejemplo, si nuestro sitio consta de una página index.html, una hoja de estilo estilos.css y un logo en la dirección images/logo.jpg, entonces nuestro arreglo debe quedar como sigue:

"entries": [
    { "url": "index.html" },
    { "url": "estilos.css" },
    { "url": "images/logo.jpg" }
]

Las direcciones de los archivos pueden ser absolutas, por ejemplo “http://www.maestrosdelweb.com/index.html”, o pueden ser relativas a la ubicación del archivo manifest.

Es importante asegurarse que todos los archivos listados en el manifest estén disponibles y accesibles para los usuarios. Esto nos ayudará a evitar errores futuros.

Una vez que tengamos el archivo manifest listo debemos implementar en el evento de un objeto, por ejemplo un botón, los métodos createManagedStore() y removeManagedStore(); para crear y eliminar, respectivamente, la versión desconectada del servidor local. Al final del artículo puede descargar los archivos de ejemplo en los que se puede apreciar con detalle el uso de estos métodos, en el archivo offline.js.

Aplicaciones compatibles

Google Reader ya está preparado para navegar sin conexión haciendo uso de Google Gears. Para poner a prueba este sitio instale la extensión en su navegador y haga clic en el enlace del lector de noticias.

Por el momento no existen muchas aplicaciones que exploten esta extensión, pero teniendo en cuenta las ventajas que aporta Gears seguramente en poco tiempo surgirán más aplicaciones con soporte para esta interesante aplicación.

Descarga los archivos de ejemplo

A modo de referencia te dejamos los archivos que hemos utilizado para el ejemplo de implementación en este artículo para que los descargues. A continuación la descripción de los archivos que se encuentran en el archivo compactado de ejemplo:

  • offline.html: Es la interfaz de nuestra aplicación, que será cacheada por Gears para posteriormente utilizarla sin conexión de red.
  • offline_gears.js: Este archivo javascript contiene los métodos necesarios para obtener acceso a Google Gears.
  • offline.js: Archivo javascript que contiene los métodos que permiten la creación y eliminación del almacén de datos en caché para esta aplicación.
  • manifest.json: Manifest que contiene los archivos que estarán disponible en el servidor local cuando se active la versión offline de la aplicación.

Recursos de programación