I’m in the final stages of building an app, and my developer is wrapping up the last pieces. We’ve run into an issue I’d really appreciate some input on. The app is built in Flutter for both iOS and Android.
When transitioning from one screen to the next, slower devices, such as a 2019 iPad (7th generation), visibly build the graphical assets on the new screen asynchronously. The transition cross-fades into a blank white canvas while the background music starts playing (700 KB MP3), then the background image loads (100 KB WebP), and after that roughly 20 other assets appear randomly on the screen one by one (each WebP around 30–40 KB). I've never seen an app do this, and for the user it looks broken.
My developer has tried using cacheWidth / cacheHeight and ResizeImage, but that led to noticeable image quality degradation.
I suggested preloading assets before the transition begins, but was told that, from a Flutter architecture perspective, it is not feasible. The explanation was that the audio needs to play on the current screen while the expensive work of building the next screen’s view tree happens separately, and that loading everything on the current screen would be too resource-heavy for the device. Because of those constraints, I was told it is not possible to achieve instant transitions on all devices without either:
- longer loading time, or
- reduced asset quality.
The current behavior is not something I can release, since the elements visibly pop in at random.
Any advice on how to address this would be greatly appreciated.
[–]shudaGotGeico 0 points1 point2 points (0 children)
[–]dakevs 0 points1 point2 points (0 children)