Preload in background the list of all My Observations

Platform(s), such as mobile, website, API, other: mobile

URLs (aka web addresses) of any pages, if relevant: n/a

Description of need:

Support fast first-time browsing to older observations on Android (and I assume also iOS) without tying up large amounts of user time scrolling through all of them to load them first.

Sometimes you don’t have a specific goal in mind and would just like to browse all of your observations backwards in time until you reach something interesting. So long as you previously loaded all your observations, this is fairly smooth and painless. However, if you have thousands of observations on iNaturalist already, and are loading the data for the first time (as you might do when installing the app for the first time, or having to relogin for some reason) then loading all those observations by scrolling requires lengthy, repetitive user input until the job is done. Every 20 seconds the user needs to scroll down to load another 20 observations. This adds up to many minutes even for modest numbers of observations, or possibly hours once you’ve accumulated multiple thousands of them.

Most users will tire of this before they ever reach the end. If they can’t endure the painfully long wait, those older observations will remain unreachable to them by just scrolling them in their My Observations pane.

Feature request details:

Please provide a way for the user to preload all of their observations as a background job after a fresh install or relogin.

I understand that normally, loading all observations is not a thing a user would want to do, so I imagine the feature would be hidden in Settings and perhaps even challenge the user with an “are you sure?” prompt after explaining it could take a while and will potentially use a large amount of storage on the device. A notification bar with progress indicator and a Cancel option might be appropriate.

When data and bandwidth are plentiful (e.g. on a home WiFi network), and the device has sufficient storage to hold them all, preloading the app’s cache with all your observations is practical. You only need to do that once per install (or once per login) and it will eliminate the waiting while scrolling your My Observations tab. Thereafter, just waiting for the app to catch up all the newer uploads in the foreground since the last time you used the app is no great hardship.

The app used to cache a lot more but after a few hundred it would be several gigs of data. I don’t think any phone could store 5000 observations. Maybe without photos? But the photos are the thing that slows down downloads.

1 Like

Yes, without photos it should be fine. I have observed over 6000 observations so far since 2017, and after applying my lengthy scroll-to-load-all-observations technique, Android reports 779 MB in cache. Since my Mi A2 has 128G of storage, so long as the app itself doesn’t run into performance issues handling that many observations, keeping the textual metadata for them all loaded will not be a problem for the foreseeable life of the phone.

There’s a little delay when I open an observation that I haven’t viewed on mobile yet (or recently) - less of a delay when on my fast home network, and more when on a slower data connection. I would guess that the images themselves (apart from the tiny square cover image thumbnails) aren’t being loaded until that time, so are not a factor in the twenty seconds it takes to download the next bunch of records when scrolling through “My Observations”.

Now, I know that the API rate limit is nominally 60 requests per minute, and that checks out with the one-per-second rate seen when scrolling down and watching it load 20 at a time. So my guess, based on that behaviour, which is really consistent, no matter how many photos each observation in that batch of twenty has, is that it’s simply the API rate limit that is holding it back, not the images.

1 Like