Connectivity Independence with Progressive Web Apps (PWA) and Bubble.is

Connectivity Independence with Progressive Web Apps (PWA) and Bubble.is

Continuing on with the topic of Progressive Web Apps (PWA) characteristics, let’s take a look at Connectivity Independence to help you enable your web-apps to behave more “mobile native”.  We’ll also take a look at how bubble.is can be a good technical solution to meet your web-app needs.

Connectivity Independence

With Connectivity Independence support, your mobile-app should work offline or in a degraded quality network.  There are actually two parts to Connectivity Independence; Network Connectivity and Reliability, both of which are interconnected.

Network Connectivity

First is the ability for your app to work without any network connectivity.  This will require your web-app to cache data on your mobile device so your web-app will work offline.  Quick Note: when caching data on mobile device is mentioned, it also applies to desktop/laptops; data needs to be cached on the desktop/laptop too.

When the network comes back, the web-app will need to continue executing any “data write” processes.  For instance, imagine you’re in the middle of updating your account profile and you lose network connectivity.  When network connectivity comes back, your web-app needs to complete the “data write” back to the database, i.e. your updated profile info has been changed in the database.

Currently bubble.is doesn’t cache data “out of the box” on your mobile device. However there appears to be interest in providing functionality in this area – stay tuned.  When network connectivity is lost in the middle of a write transaction, bubble may or may not complete the write activity when the network comes back.  To be safe for now, assume the write-back to the database will be unsuccessful when the network comes back.

Also be aware that if your web-app uses multiple pages in its bubble design, you will not be able to switch between pages when network connectivity is lost.  However, you can if you use a single-page design with groups. So if you’re going to be developing a web-app for mobile devices (which you should plan for), setup your bubble design to be on a single page and use groups.  This will help your web-app be more robust with network issues and help with the overall mobile experience.

Reliability

Reliability is another aspect of Connectivity Independence.  This simply means that if your network becomes too slow or intermittent, your web-app needs to behave “gracefully”.  For instance, referring back to the example of updating your profile.  If your network becomes too slow, you don’t want your web-app to “crash”.  When the network comes back, your web-app should start functioning again without issue.  By having your data cached on the mobile device, you shouldn’t notice much of a performance impact with your web-app in a degraded network.

Summary

While having Connectivity Independence in your web-app is important, remember the ability for connecting to the net via wi-fi or cellular is ubiquitous.  So when you’re developing a web-app, take a hard look to see if your users will actually use your app offline.  Chances are they won’t.  If you look at the  native apps on your phone, i.e. Facebook, LinkedIn, Waze, Twitter, etc, you’ll see most need network connection to provide value.  So the need for caching on your mobile device so your web-app can run offline may not be required.  However, reliability is important; you don’t want your app providing the wrong data or not complete a “data-write” action.  Support for Connectivity Independence on web-apps continues to advance; support for robust features will only get better.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s