Letter: Running apps offline on iOS

CB reported experiencing issues with running apps offline on the public beta version of iOS 12. We couldn't reproduce the issue, but our co-founder David wrote a lengthy reply discussing Calcapp's offline feature.

July 29, 2018 update: CB now reports that this issue has been fixed in the third beta version of iOS 12.

April 2, 2020 update: Apps built with Calcapp are now true Progressive Web Apps and hence offer a service worker. (Read the letter below for details.)

Original text: CB reported not being able to run apps offline on the public beta version of iOS 12. We haven’t been able to reproduce the issue on iOS 11.4 (the latest stable version).

Our co-founder David wrote a detailed reply, discussing some of the changes we intend to make to our offline implementation in the future in response to changes Apple is making:

I tested this on an Android handset and on iOS 11.4 (the latest stable version). Offline functionality seems to work.

What happens when you press OK on the message that appears? Do you get stuck in a loop, that is, is the same message displayed again and again? Have you tried removing the app from your home screen and adding it back?

We did make one change on June 1 related to this feature: previously, you’d only get the “please reload to run the new version” message when we made an actual change to Calcapp. The problem was that you didn’t get the message when you made changes to the loading screen, meaning that making such changes and re-sharing the app wouldn’t actually lead installed apps to get updated. You’d need to remove the app and add it back. (That didn’t affect the actual contents of the app, which would get updated as normal. Loading screen data is special, because that is displayed before the actual app loads.)

Now, changing what we call “public data” (default colors, the loading screen and logos) should trigger the dialog. Pressing OK once should work, though, you shouldn’t get the message again. The problem you’re alluding to, where you had to just let the handset sit there for a few minutes until you got a separate message, has been fixed.

Here’s more information about offline functionality than you probably want to know, but here goes: the current offline implementation will change soon, because Apple is making changes to iOS that will force us to upgrade to a newer technology enabling apps to work offline (“service workers”). The older technology we’re using (“AppCache”) will probably stop working in iOS 12 or iOS 13, so we need to adjust. The newer technology will improve certain things, but apps you have installed for offline use and haven’t used for a while will stop working (iOS will probably remove the data after a couple of weeks). In other words, you won’t be able to rely on apps you have installed for offline use to actually work offline in the future on iOS, when we’re forced to adopt this new technology.

The obvious answer to this would be to create a native version of Calcapp Connect for iOS. It appears that Apple has recently changed their stance toward apps previewing other apps in development, so chances are that a native version of Calcapp Connect would be rejected by Apple. The only way out of this mess is to allow users to create native iOS apps through Calcapp, but that’s a ways off, and you wouldn’t then have access to a convenient means of previewing apps in development. Apple doesn’t leave us a lot of options.

Android doesn’t have these issues, but that doesn’t help you. I hope that removing and adding your app back to your home screen will work – and I hope that Apple changes their stance on removing installed web apps after a period of inactivity, so that we can continue to offer a good offline experience.

« Release: Our June, 2018 update is here Sample app: Hauling commission calculator »