Open lukemmtt opened 3 months ago
That’s not a bad idea. A delay after the JSON has been updated might alleviate some issues for users. Have there been any reports that a user was prompted with an update by this package, and the update in the store was not available yet? Do we know how often this happens? In my experience and estimation a 24 hour wait is way too long and would delay upgrading many eligible users for too long. I think a 15 minute delay would be reasonable.
I've only just implemented your package in my first flutter app; I've used Siren with the default settings in a native iOS app.
Anecdotally, I've certainly seen some propagation delays in real life before: the delay from "ready for distribution" to live on my local device's App Store, differences between availability on my device's App Store and my friends', etc. As you've noted, these things rarely seem more than 15 - 60 minutes, but:
In reality, I'd rather take a 6 hour delay rather than a user see a prompt that nags them to do something that is not yet possible for them.
Before I began using Flutter, I used the Siren library for native iOS, which is arguably the best-maintained and most-commonly-used equivalent to
upgrader
for that platform.In their docs, they state the following:
In other words, Siren would suppress the firing of the Upgrade Alert until at least 1 day had passed from the latest version's release date, in order to mitigate the likelihood of App Store propagation delays (in which the user would click "Upgrade" but the binary might not available yet).
In reviewing
upgrader
's docs, it doesn't appear that this has been taken into consideration—or at least, the mechanism is not documented or exposed to us end users.In pursuit of an optimal user experience for my app's users, I'm wondering if someone can confirm my finding here, and help assess whether this is something of interest to the community to pursue an enhancement.
If needed, any pointers on where to begin with such an enhancement (such as whether
upgrader
retrieves the releaseDate of the currentVersion and persists it anywhere) would be helpful.Thanks for the consideration.