There have been some problems which the Thunkable team have been working on to rectify built/downloaded app crashes. But what are the steps we should take to be sure our apps are not the cause of the problem? If an app is working well in Preview/Live Test, but then a downloaded version fails to open or crashes while in use, what steps should a Thunker take to rule out their blocks as being the cause of the problem?
I have discovered that I can reliably crash one of my apps by stabbing at the splash screen buttons during when it is loading. There’s a small image, which arrives late for some reason, providing a window for a user to do this before the page appears properly loaded.
This is a really great question actually @penny, I think we can maybe look at improving our troubleshooting guide as quite a few users at the moment are introducing errors in their blocks and then assuming that there’s some issue with Thunkable.
For the moment, let’s stick to your app and we can go from there:
Is this something you expect your users to do? (or do repeatedly?)
Assuming you’ve made your own custom splash screen?
Are you using a button component here (you mentioned buttons) or an image?
“Is this something you expect your users to do? (or do repeatedly?)”
No, not really but I just tried to cause a crash and realized I could in the loading moment. There’s an image and it loads last for some reason, though it is not a large image (15kb). The buttons appear before the image which makes them available to use and it seems there’s a vulnerability in that moment. I suppose anyone in a hurry might hit the button earlier than the load sequence would like, and thus trigger the crash I was able to precipitate.
I read someone else referring to crashes related to changes of screen, too. Particularly the “navigate to” block.
Dom, please put a link to the troubleshooting guide.
You’re right. It often happens that actions occur asynchronously and the user may try to perform an action with data that is not ready for use. What should do in this case? You need to check whether the data is ready to work with them. If the development environment doesn’t allow you to do this, then this is a huge problem.
You could‘Disable’ buttons for a short period of time, such as a couple of seconds. Then they will light up ready to use! You can also hide them depending on the type of app (or the type of users) you are dealing with and have a loading icon up for those few seconds etc.
Or use When Screen > Starts, instead of When Screen > Opens, that has fixed one or two issues for me.