Why “Available offline”?
Nowadays network availability is not a problem when using mobile devices. We have a multitude of wifi networks around us, and also mobile phone coverage that allows us to be always connected to the network.
What happens in case we do not have network connectivity? When we travel by plane, if we travel through an area without coverage, or simply a technical problem in our provider. In the ownCloud mobile applications has been developed the functionality “Available offline”, which allows us to set content in our cloud that we always want available, regardless of network connectivity.
Content that is marked as “available offline” will:
- be always downloaded to the device
- have always the last reached version
In the case of a file marked as “Available offline” is simple, the file will meet those requirements. But in the case of a folder, we find a slightly greater complexity because the folders may contain other folders, which could be or contain “Available offline” as well. Even so the concept of offline availability will be similar, keeping downloaded and synchronized all the existing content within that folder regardless it existed previously or has been incorporated later.
Available offline in ownCloud
The iOS app has this feature available since some months ago, and the Android app has it since its latest version, responding to an important need for a productivity-oriented application.
This functionality in Android includes the monitoring of changes in the files local version. To do this we have created an implementation of the
FileObserver interface that allows us to observe the different events that happen in directories and files below a specific directory, including subdirectories. The method
void onEvent (int event, String path)
will receive such events (changes in files in our “Available offline” folder) and handle with them, determining when a change has to be propagated to the server.
Availability is not free
We have to choose which content we want to be available offline. We must take in account that some parameters such as battery and storage limit the use of mobile devices. If we set too much content as available offline, we will use a greater amount of the local storage and also the cost in keeping that content synchronized will be greater in terms of battery. Does it make sense to have all content always synchronized in exchange of draining the battery quicker as it is hoped? this question is personal for each one to figure out the best balance to his/her needs.
Other interesting articles