Bug report: Improvements in Calcapp Connect and in shared apps

Since releasing our last update, we have spent a few weeks fixing bugs in Calcapp Connect, meaning that running the apps you build is now a better experience with far fewer glitches. These changes are already part of our production version, meaning that you don’t have to wait for these fixes to arrive, they’re available today.

Scrolling

The gist: Panels in your apps will no longer be “stuck,” preventing your users from scrolling all the way to the top. Also, your apps now get scrollbars when run on most desktop computers.

The full story: Normally, your web browser enables you to see all the content of web pages even if they’re too large to fit on your display all at once. On the desktop, your computer shows scrollbars showing you where you are in the page and enabling you to move up or down (or even horizontally). On mobile devices with touchscreens, there are no scrollbars, and you instead use your finger to flick the page up or down, left or right.

Prior versions of Calcapp Connect didn’t use your web browser’s built-in support for scrolling, it implemented scrolling itself. On the desktop in Calcapp Connect and in shared apps, this meant that you didn’t get scrollbars and instead scrolled as you would on a mobile device, by grabbing the content with your mouse and moving it up or down.

While implementing scrolling ourselves gave you a better preview of what your apps would look like on mobile devices, it was problematic and gave rise to a number of bugs. There are times when your web browser attempts to scroll a web page even when you’re not actively scrolling, more often than not to bring a focused element into view. For instance, in a web page with a number of input boxes, you can switch between them using your Tab key, or by pressing special buttons on the software keyboard on a mobile device. (On an iPhone, these are the < and > buttons.)

Having the web browser scroll an app built with Calcapp didn’t play well with our custom scrolling implementation, and the end result was that you would sometimes be unable to scroll to the very top of your Calcapp panels after interacting with your fields. We have fixed this by removing our custom scrolling implementation and fully relying on your web browser.

On mobile devices, you should only notice very subtle changes (aside from all known bugs related to scrolling being fixed). On the desktop, your apps will get scrollbars (including in the preview in Calcapp Creator). We never intended Calcapp to be a solution for only building mobile apps, and we think that bringing scrollbars to apps on the desktop is an improvement.

Moving back and forward

The gist: The forward button is now disabled at all times when using Calcapp Connect and it will as a result no longer behave strangely. You will still be able to use the back button and the hardware back button on Android handsets.

The full story: A few weeks ago, we announced that we had finally enabled Android users to use their hardware back buttons to navigate in apps you build with Calcapp. As a bonus feature, we wrote, you’d also be able to use the back and forward buttons in your web browser.

We have since had to disable the forward button. HTML5 allows us more control over the back and forward buttons, but not nearly enough. It turns out that it’s easy for a user to get to a place where moving forward no longer makes sense, but there’s no way to tell a web browser that moving forward to a previously visited panel is no longer an option. The most obvious example is when you use Calcapp Connect, move back to your first panel to reach the menu button and sign out. Your web browser knows that you just moved back a number of steps and enables you to move forward again by way of the forward button, despite the fact that you can’t move forward without signing back in. When the forward button is pressed, there isn’t a way for us to not honor the request — doing nothing tricks the web browser into thinking that you indeed moved forward, which causes all sorts of issues.

Our only option would be to display a screen telling you “sorry, you can’t move here, please press back again” when moving to an invalid screen. Instead, we choose to simply disable the forward button. This solves lots of issues without compromising with your ability to use the back button, or the back hardware button on Android handsets.

The navigation bar

The gist: The navigation bar in your apps will no longer break down, preventing you from moving back to a previously visited panel. Also, there are new animations when apps are closed, opened or reloaded.

The full story: The navigation bar is the top bar in your apps that displays the panel title and enables your users to move back to a previously-visited panel and to move forward to the next panel. When you move forward or backward, you are transitioned smoothly to the next screen by way of an animation.

The problem was, this system could break down for a variety of reasons. Sometimes you would lose the animations and sometimes you would even lose the back button (making your apps essentially unusable). To trigger this behavior, closing the app using the menu and loading another one or reloading the app, also using the menu, sometimes sufficed. Trying to load an app with formula errors from Calcapp Connect’s app list, pressing “OK” on the resulting error message and then loading an app with no errors could also bring about the malfunctioning navigation bar, as could reloading the preview in Calcapp Creator (which uses Calcapp Connect under the hood). (Shared apps generally worked fine.)

We’re happy to report that we have rebuilt the relevant parts of Calcapp Connect, with an eye toward fixing this issue for good. As part of this process, we have also enabled a few more animations when apps are closed, opened or reloaded. From now on, the navigation bar should work reliably.

« Release: Our August, 2016 update is now available Feature: List fields »