I just cleared all data, simulating a clean install, and was greeted with this:
This screen remained for a few minutes until the updates completed, making the app seem rather broken (an app store without apps?!). It would probably be a good idea for F-Droid to check if it has ever updated and if not, display an alternative message until the first update is done. Something along the lines of "We are downloading the list of apps. Please check back in a moment."
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related.
Learn more.
I just hit this too, as a new user. There was no clue why there were no apps listed. There really should be some kind of 'download list' status. There was an item if I pulled down the 'notifications window' but that was not obvious to me (inexperienced on android).
It took about 5 minutes, maybe 7 to get the list and display something. That's definitely long enough to need some kind of 'please wait, downloading app list' notification.
In !299 (closed) I have the additions toInstalledAppProvider being regularly broadcast, instead of only at the completion of the processing. We could do a similar thing with AppProvider. So as UpdateService is processing the index XML, it would send regularly broadcasts out whenever any change was processed, like once a second. That would make this initial screen only show the blank screen for a short time, and then it would start filling up with apps.
username-removed-24982Changed title: Improve first run → show informative screen on first run, instead of warning about out of date index
Changed title: Improve first run → show informative screen on first run, instead of warning about out of date index
it would send regularly broadcasts out whenever any change was processed, like once a second. That would make this initial screen only show the blank screen for a short time, and then it would start filling up with apps
While I completely agree that the UX for this is good, the implementation is difficult. We need to keep in mind that the update is done such that all the apps are streamed into a separate, temporary table. Only at the end of the process are they then dumped into the real table. It doesn't mean it is impossible to achieve, but there are some non-trivial things that would need to be supported this, and I'm not sure that the effort will be worth it in the end.
yeah, the temp table issue definitely makes this first run hard. Perhaps then we should just stick a spinner on that screen during the update process to show that its working.
You could also ship the app with initial metadata that then gets updated in the background. If you are worried about size, you could also just ship a subset of the actual metadata.
Based on looking at the UX of lots of app stores in #705 (closed) I'm thinking that we should just show a spinning progress bar and maybe a word or two like "please wait" or "loading". That's what all the others do.
We could include a static index.xml file as an asset that includes just the app info for maybe the top 50 apps, but no APK info. Then it wouldn't go out of date. That would rapidly show at least something, but then it would be confusing why the user can't install anything.