Offline mode can allow users to work with Bezlio even when they may not have an available internet connection. This article covers offline mode for users.
For users that use Bezlio in the field, sometimes connectivity can be a bit spotty. With Bezlio, our goal is to allow users to interact easier and faster with their systems, so it was important to us to include a robust offline mode feature in the iOS and Android client. This article will walk through the user experience with offline mode, and a future article will cover the developer experience.
First thing to note about offline mode is that the bezl itself has to be built for it. We have some checks in place to ensure that bezls were built to support offline mode, so that there is not unexpected behavior. As a user, you will know your bezls are capable of offline access, if they say “Available offline” after you launch a bezl the first time.
For reading data, Bezlio will show you a copy of the last data that it retrieved. This is why it’s important that bezls are built to support offline mode, because interactive data (like I see a list and I want to run another query to get details) don’t work the same way. You need to load more data upfront to support offline mode. Here I am in airplane mode running the same bezl, you can see it still returns data to me.
So when a user does not have a valid connection, when the bezl makes a call to retrieve data, it returns the last cache of the data that it did have.
Writing back data also work in offline mode, just a bit differently. In this gif, I am running a writeback operation (note that I am in airplane mode so I have no connection) the outlined cloud in the upper right hand corner is showing me I’m not connected to the Bezlio cloud, and that will be where our queued writeback transactions show up.
The number on the cloud shows me how many pending transactions I have. In my bezl, each press of a button is one writeback, so you can see I press 3 times and I have 3 pending. Then when I get back onto the Bezlio cloud, I can click the cloud icon to view the pending transactions.
When I click the process button it will run all of those transactions that are pending. It preserves the correct order of transactions along with any data used in processing the data subscription. If any transactions fail, it will stop there and wait. You can swipe to remove entries from the queue.