Apps created with Calcapp have been able to run offline for years now (provided that you opt for a Business plan or better). Thanks to offline support, an app remains accessible even if a user is on a plane or in a rural area with spotty coverage.
When we built Calcapp’s offline feature in 2016, we used a technology known as AppCache. A successor technology, named service workers, was supported by Google on the Android version of Chrome, but Apple’s Safari did not have support. As such, we chose AppCache because it was supported on both Android and on iOS.
Starting in April, Google Chrome will drop support for AppCache, and other browser vendors will likely follow suit. Had we done nothing, apps built with Calcapp would stop working offline in less than a month on Android.
Luckily, we have monitored the situation carefully over the last couple of years, and we were prepared for this development. Calcapp has now been moved fully to service workers, meaning that your apps will continue to work offline.
Progressive Web Apps
Supporting service workers means that your apps now qualify as so-called Progressive Web Apps (PWAs). A PWA can run as a website inside your browser, but can also feature capabilities more in line with what a native app offers. They can be installed on your desktop computer, or they can be added to your Android or iOS home screen. They run offline. There are also provisions for synchronizing and downloading data in the background and for sending push notifications, though Calcapp does not take advantage of those provisions as of today.
Calcapp makers have asked for PWA support for years now. The primary reason is that there are various third-party tools that are able to work with PWAs and not plain websites. For instance, Microsoft allows PWAs to be submitted directly to the Microsoft Store. Also, Google now offers some support for submitting PWAs to Google Play.
(There are smaller improvements as well. Adding a plain website to your home screen on Android adds a small Chrome overlay icon. PWAs added to your home screen get no overlay icon, which arguably looks more professional.)
Getting an app built with Calcapp into an app store still requires quite a bit of work on your part. We’d like to streamline the process, but we currently have a lot of other work that takes priority.
Now that we have redone Calcapp’s offline support, we have taken the opportunity to subtly improve the offline experience. Here’s a list of the improvements you can expect:
Improved performance. Apps are made available for offline use faster when you first load them. On Android, we have managed to shave a few seconds off the time it takes for the “This app is now ready to be used offline” message to appear. On iOS, the message is now shown as quickly as on Android, which is a dramatic improvement. (Before, users would sometimes need to wait a full minute before the message appeared.)
A more robust experience. Customers sometimes encountered issues with the older offline experience based on AppCache, most often on iOS. Sometimes, the only recourse was to remove a problematic app from the home screen and re-install it. We have a lot more control over the new offline experience, meaning that we think it will prove more robust.
Images and fonts are downloaded in the background. When an app is stored for offline use, images and fonts are stored too. Before, we had to download and store everything before the loading screen of your app would show, which led to a bad experience primarily for apps using lots of images. Thanks to the flexibility of service workers, we now start your app immediately once all the core resources have been loaded and then download fonts and images in the background, leading to a faster experience.
Embedded apps never ask users to update them. When an app is run for the first time, it’s downloaded and stored locally on the device itself. The next time it’s started, that local data is consulted to ensure that the app starts as quickly as a native app. If the user is online, Calcapp checks if there is a newer version available. If there is, the user may be asked to reload the app so that the newest version is run. However, this is not desirable for apps embedded in other websites. Luckily, service workers give us the flexibility to disable the offline experience when apps are embedded, so starting today, users of embedded apps will never be asked to reload an app.
Deferring an app update. As noted above, users are sometimes asked to reload an app when it has been updated. While this message is typically presented only a few seconds after an app has been loaded, it can still be inconvenient to have to reload an app, especially in the rare case that the user has started entering data into the app. For this reason, users can now press the Later button to continue working in the app without reloading it. (The next time the user starts the app, the latest version will be run.)