iPadOS app update?

Earlier in the year I exchanged emails with Dave Erath at Drone Blocks concerning a forthcoming iPadOS update that will not require a working internet connection to download the code blocks into the left hand panel when it is first launched - i.e. those blocks will be installed and available locally instead.

This will be great for me, as I work in schools around the UK, and don’t always have easy access to the school’s WiFi network. School IT managers can be very protective about allowing random devices from visitors to connect to their network!

At the time of the email exchange in March, I was told that the update to the iPadOS app should be “available in the next month or so”, but it hasn’t been released yet.

Any news on it please?

(Would also be good to get a bug fix update, as I find quite regularly that the Drone Blocks app needs to be killed from memory and re-opened in order to get it connected to a Tello again - e.g. if the battery is changed … which then sometimes requires a functioning internet connection again to re download the code blocks again!)

Thanks.

1 Like

Thanks for following up on this. We had previously enabled what’s known as AppCache, which allows DroneBlocks to be cached when offline. Unfortunately, it looks like that was removed last year.

We opted to focus on Virtual Sticks control within DroneBlocks, but I will talk to the team and pick this back up with them. We appreciate the thorough description. It’s very helpful to get these details. Also, would you be willing to join our beta test group?

1 Like

We are working on a fix. Is there a way you can provide us with steps to reproduce the blank screen? That will help us validate the fix and get a test build out.

When you say blank screen, how do you mean? You mean the blocks on the left hand side not loading? Happy to test anything out that might help, of course, including as a beta tester.

Yes exactly. Any reproducible steps would be incredibly helpful so we can verify the fix. Once we get through that process we’ll push a build out for testing.

Without an active connection to the internet, when the iPadOS app is first launched, the code blocks on the left can’t download. Dave confirmed this in the original email exchange.

However, even once they have downloaded, it seems that sometimes the blocks are ‘purged’ from storage - presumably the AppCache you previously mentioned. It’s difficult to replicate though! I’ve just tried killing the app from memory (with WiFi turned off), and reopening the app - repeatedly - and the blocks are normally retrieved OK.

Is the following possible?

  1. That the downloaded code blocks (in the cache) are marked as ‘purgeable’ in the app as far as iPadOS is concerned, and that …
  2. iPadOS sometimes therefore elects to remove them to create more space on internal storage as part of regular OS housekeeping processes.

If so, would keeping more free space available on our iPads help to avoid the issue? (I’m assuming that iPadOS is more aggressive in the purging when free space is lower?).

Irrespective of this, the ultimate fix, it seems to me, would just be to integrate the code blocks directly into the app bundle without requiring that initial download?

(I make that sound straightforward, and appreciate that it might not be!)

1 Like

Here is a beta that you can test:

It’s a step in the right direction and while it doesn’t include the blocks inside the bundle it does cache them properly. So hopefully you can install and open with a good internet connection. After that you shouldn’t need a connection again…unless you’re trying to save a mission. I’ve done a fair amount of testing and it’s working well. I’ll be anxious to hear how your testing goes.

Thanks!

Many thanks. I’ve installed the TestFlight beta now, and will report back. I’ll put it onto a subset of our student devices too, and will see if those perform better than on the current official release.

1 Like

Great idea to test on student devices. Keep us posted please.

1 Like

Used the iPadOS beta version yesterday with a group of UK A Level students, and I’m afraid it still behaved as before, occasionally emptying out all of the coding blocks from the left hand panel until a working internet connection was reestablished. Something is still purging them from the cache. (Fortunately it was a small group so I could temporarily tether the iPads to my phone to get up and running again).

Also used DroneBlocks Code which worked really well, with students creating an array of letters for ‘sky writing’, and iterating over the array to run functions to draw each letter in the ‘sky’ with the Tello.

I wish there are a console to report errors in code though, as any JS syntax error seems to prevent all code from executing. (The students were more used to Python than JS)

Hi Richard,

There are multiple factors that impact how a web app deals with low network/offline scenarios. The management of the cache and the reclaiming of resources is something that the OS manages. As developers, you can suggest or provide hints or preferences to the OS, but when the time comes to free resources, the OS will do what it does when it wants.

The other big factor that impacts caching is when the web app content expires and gets marked as stale. There is a balance when trying to establish cache rules because you want to set an expiration that is in the future so you can load content and assets quicker, but not so long (or forever) so that you’d miss updates made to the content.

Previously, the app loaded the web app and used the standard cache rules. The recent changes to help support offline usage will detect if the network is offline or doesn’t have a viable connection and it will try and load the blocks from the cache if it is still a) in the cache and b) not expired.

To ensure that the iPads will work when the iPads do not have internet access, preloading the content into the cache when you have an internet connection should work. Did you have any subsequent issues when you loaded the apps via your hotspot?

Hi Kevin.

Yes, even once the blocks have downloaded they sometimes seem to be ‘purged’ unpredictably by iPadOS.

Ultimately, what I’m looking for I think is for the iPadOS to not be a web app at all, and for it to function completely offline. As shared before, our problem is that, as a service that moves between schools, we can’t always get access to a school’s WiFi network to access the internet.

Other options (e.g. Swift Playgrounds) don’t require internet access to work, but we’d prefer to use DroneBlocks, especially with younger students. It’s fantastic, but unreliable for us in its current form.

Regards,

Richard

On a somewhat related subject, is there any thought about allowing DroneBlocks to save missions to the local iPad memory, rather than connecting to a Google account? I, too, work in several different schools and do not have local internet connection at those schools. Being able to save missions to the iPad would be greatly beneficial.