AppSheet is very good about loading images in advance so that they appear immediately when needed. I found, however, that using expressions to randomly produce URLs to retrieve images from my server may not trigger that advance loading. What I was doing was similar to the following little tip I gave a while back:
Well, it was working quite nicely until I found that my images weren’t loading in advance. The images would appear but they needed a bit of time to load first – not what I wanted.
It occurred to me that the problem was that the expressions I was using in my virtual image columns were preventing AppSheet from recognizing the URLs as images that needed to be loaded in advance. That thought led me to the following solution.
Without changing the URL generating formulas in my virtual columns, I simply generated a list of all of the image URLs I wanted the app to load in advance and then pasted them in a real image column in a small table. The image column is never used in that table but it seems to have the desired effect of making the images for each URL load in advance. Then, when those same URLs are generated randomly through expressions in another table, the images appear instantly.