Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Delayed firing of UpgradeAlert to mitigate App Store propagation delays #431

Open
lukemmtt opened this issue Aug 7, 2024 · 2 comments
Open

Comments

@lukemmtt
Copy link
Contributor

lukemmtt commented Aug 7, 2024

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:

Occasionally, the iTunes JSON will update faster than the App Store CDN, meaning the JSON may state that the new version of the app has been released, while no new binary is made available for download via the App Store. It is for this reason that Siren will, by default, wait 1 day (24 hours) after the JSON has been updated to prompt the user to update. To change the default setting, please modify the value of showAlertAfterCurrentVersionHasBeenReleasedForDays.

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.

@larryaasen
Copy link
Owner

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.

@lukemmtt
Copy link
Contributor Author

lukemmtt commented Aug 9, 2024

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:

  1. That says nothing about the potential for global propagation delays
  2. It assumes the "release date" published on the App Store & play store is accurate with sub-hour precision

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants