Thanks for your answer. We are developing a mobile app for use in the forestry industry with relatively large number of layers, and used over relatively slow networks. That is, spotty cellular reception deep inside the forest, far from public infrastructure.
The maps are often available offline, but we do also support online maps, which are often very slow. In fact, we must assume that the maps are very slow, and both loading layer metadata, as well as individual tiles, are error prone.
An entrepreneur is using our app to harvest timber, and need to be relatively sure that the map in front of them is accurate, finished drawing, and up-to-date. A layer may e.g. be showing endangered species' habitats, or culturally significant spots that are illegal to driver over with heavy forestry machinery, due to regulatory reasons. Or property borders, and the entrepreneur cannot harvest timber from a neighboring property, due to legal reasons.
We can use layer state to know if the layer itself is loaded, visible, and without errors or warnings, but we can't use it to tell (as far as I can tell) if the viewport is finished rendering. This can sometimes take several seconds, sometimes part of the requests even time out (in which case drawing is complete, but we'll see warnings, methinks)
Typically the user will pan the map around with their finger, and a spinner is displayed as the map loads tiles and rasters, until finally coming to a rest a some time later, and the spinner goes away.
If we remove the "blue dot", or the user is looking at an area that does not include himself, the `drawStatus` seems to work as expected. Ideally, I think I'd like to have the layer state include some kind of tile loading status.