La necesidad de «Disponible offline»
En nuestros días la disponibilidad de red no es un problema cuando utilizamos dispositivos móviles. Disponemos de multitud de redes wifi a nuestro alrededor, y también de cobertura de telefonía móvil que nos permite siempre estar enchufados a la red.
¿Pero qué sucede en los casos en que nos encontramos que no tenemos red? cuando viajamos en avión, si transitamos por una zona sin cobertura, o simplemente una avería en nuestro proveedor. Para ello en las aplicaciones móviles de ownCloud se ha desarrollado la funcionalidad «Disponible offline». Dicha funcionalidad nos permite marcar el contenido en nuestra nube que queramos siempre disponible, independientemente de la conectividad de red.
Características
El contenido que esté marcado como «Disponible offline» será contenido
- que estará siempre descargado en el dispositivo
- que siempre tendrá su ultima versión alcanzada
Para el caso de un fichero marcado como disponible offline es simple. El fichero cumplirá esos requisitos. Pero en el caso de una carpeta, nos encontramos con una complejidad casuística un poco mayor debido a que las carpetas pueden contener otras carpetas, que a su vez podrían ser o contener otros disponible offline. Aún así el concepto de disponibilidad offline será similar, manteniendo descargado y sincronizado todo el contenido existente dentro de esa carpeta. Y además, sera independiente de si existía previamente en ella o se ha incorporado después.
Disponible offline en ownCloud
La app de iOS tiene esta funcionalidad disponible desde hace algunos meses, mientras que la app de Android dispone de esta característica desde su última versión, respondiendo así a una necesidad importante para una aplicación orientada a productividad.
Esta funcionalidad en Android incluye la monitorización de cambios en la versión local de los ficheros. Para ello se ha creado una implementación de la interfaz FileObserver
que nos permite observar los diferentes eventos que sucedan en directorios y archivos por debajo de un directorio concreto, incluidos subdirectorios. El método
void onEvent (int event, String path)
recibirá dichos eventos (cambios en los archivos de nuestras carpeta «Disponible offline») y los procesará, determinando cuando se ha producido un cambio que deba propagarse al servidor.
Esta disponibilidad tiene su coste
Dentro de la app tenemos que elegir bien que contenido queremos que sea disponible offline. No hay que olvidar que algunos parámetros como la batería y el espacio de almacenamiento limitan el uso de dispositivos móviles. Si ponemos como disponible offline demasiado contenido de nuestra app, no solamente estaremos utilizando una parte mayor del almacenamiento local sino que también el coste en mantener sincronizado ese contenido será mayor en términos de batería, restando así autonomía al dispositivo. ¿Compensa tener todo el contenido sincronizado en todo momento a cambio de un mayor consumo de batería que puede dejarnos tirados cuando menos lo esperamos y quizá más lo necesitamos? esta pregunta se la debe hacer y responder cada uno para encontrar el punto de equilibrio más adecuado a sus propias necesidades.