Mobile app bad performance Vs WebApp


I’ve recently updated my app and publish it into Google Play and iOS stores. I also have my app published as a web app. The update was just minor bug fixing and design improvement, no new blocks nor components.

Surprisingly the performance in both android and iPhone is horrible while the web-app executes perfectly well.

Has anyone suffered the same issue?

It may be something in the blocks or the way variables are used but we need more information to be able to help out here. Could you share some screenshots of the blocks where you are noticing these performance issues? Or possibly share your project URL with us? Thank you!

Thanks for the response Matt.
I think the issue is in this block, im now refactoring it…but if it where for the blocks why is it performing so well on web and so badly on android? (iOs is in the middle of both)

Thunkable (screen DashUX)

I attache the screen record so you can see what i refer

Adding some logs to record seconds since 1970, the whole function When Dash UX takes only 439 ms…but you can see in the video its taking around 11 seconds painting the screen.

If i open the web app url it takes way less, around 2 sec…attached video : RPReplay_Final1705251519.MP4 - Google Drive

The video was recorded in a iPhone13

Same issue here.

I have just opened an app on the thunkable platform that was last updated in April 2023, I have made no changes at this point but was just running through to check everything works before updating.
When downloaded to the device a list filtered from a local app variable is taking over double the amount of time to complete compared to the original app on the same device.

Original app: Around 5 seconds


Recent app with no changes: Around 12 seconds


Web preview from thunkable platform: less than a second


All looking at the same local data of around 1000 records.

In my case i think the issue is on the rendering…in any device (web , android or iOS) the functions are taking the same time and reasonable performace, the difference comes on the time it takes on the mobile devices to fully show the screen…any idea what can this be?

Is the app local performace issue being looked at @matt_conroy

Can you share the blocks and/or project with us? It is impossible for us to know why this issue could be happening based on just seeing the app running in production.

I would also take a peek at this post, which talks a lot about performance and how to use different blocks and variables to speed things up.

These are the blocks running the filter for the above examples, could not be simpler.

But the issue is more that all I have done is open an app on the platform 8 months after it was last edited and the same search has more than doubled in time to run?

Hi Matt,

Thank you for your time looking into this.

I posted a similar topic here, i’m just going to paste it here for you to look at:

Hello everyone,

Apple just rejected my new release from an existing app, the reason is that the app takes too much time to perform some simple actions.
I thought it was my device but now i guess it’s not just me.

The blocks i’m talking about are these:

  • First one getting a variable and switching screen

To change the screen it actually takes from 6 to 12 seconds.
The “Cocktails” database is a local one (i thought it would be faster).
I just need it switches screen fast, as in the one afterwards there are already some loading icons.

Believe me when i say i tried every single option (get data from airtable, get row object and then load with “get properties”, get data from local database, get data from variables, ecc…)

  • This one takes up 4/5 seconds
    In general the drawer menu takes 3/4 seconds everytime i click on an item

Did something change recently about drawer menu and data list?

Thank you for your help

Here some more useful info you might need:

  • it’s in the Snap To Place platform, but i had the same problem with the d&d after converting it
  • No big changes were made in the app
  • If I download and install the APK i encounter the same issue

Let me know if you need more info that might help you

Thank you

May I ask you if the barcode that is scanned is unique in all the rows, or if you can find the same barcode in other rows too?

If it’s a unique one, that means that it won’t be found in other rows, instead of using the component “for each item” which takes a lot of time, you can use:

Get Row Object
In list “get all values from column ‘barcodes’ in offLineTemp” - get the first occurance of Scan_Input5

After getting the row object you can play with the same variable list keeping almost the same blocks

I am sure you thought about it already but it’s worth a try


Hi Maurizio,

The data is not in a local table, its in a local app variable downloaded from firebase at login so no columns or rows.

And barcode can appear several times.

Is anyone having a look into this yet? @matt_conroy @ioannis

@martint Does it run slow(er) if the list offLineTemp has more list items?

Yes, significantly. There is another list in the app which is identical except for 3 extra list items.

Old version with 6 list items (as pic above) 5 seconds
New version with 6 list items (as pic above) 12 seconds

Old version with 9 list items, same 5 seconds
New version with 9 list items 38 seconds

All using the same data (around 1000 records) filtering for the same entry tested on several different devices.

Web preview remains unafected with all versions completing in under 1 second.

Thanks for the clarification on that! We’ll keep digging into this.

1 Like

Just to clarify, @matt_conroy

The issue only affects the local version running the filter from an app variable with objects.

In the same app I have the exact same filter using the same list/object combination live from firebase without the app variable and this completes in under 1 second with the same data.

@matt_conroy @paulmw
Are the devs looking into this yet? desperate to get my apps updated.

Still checking here for you. Appreciate your patience!

Have you got any where with this @matt_conroy