How does iOS and apps deal with low to no disk storage?
Solution 1:
This is a design decision that is made to handle situations where operators of the device choose to ignore low storage space warnings or are not present to see them and react appropriately.
From your comments, you described that the system works well enough to let you inspect storage, choose to delete apps and data and continue working - that’s the case in my experience. The system sacrifices the ability to launch new apps, install updates and do other non-critical functions when storage space is close to empty.
In most cases, the system is able to send a sequence of disk space “warning” and disk space “critical” signals to the OS, the first party apps and third party apps requesting they purge any cached storage, but in the end, you can overload the filesystem and this is the last ditch attempt to get the device in the hands of someone that will realize that files or apps need to be deleted to resume normal operations.
For the nerds that program, there are entire API and processes around this to let an app know how much space is available for opportunistic storage and critical storage:
- https://developer.apple.com/documentation/foundation/nsurlvolumeavailablecapacityforimportantusagekey
One of the better articles on this is:
- https://developer.apple.com/documentation/foundation/nsurlresourcekey/checking_volume_storage_capacity
In the end, it’s up to the programmer of an app if they want to check and let you know they may stop working or if they want to be simple in design and let you figure out if your device is full in other manners. Neither decisions is completely right or completely wrong. The OS will nag you about low storage, so most apps let that handle education these days and they just postpone large downloads when things get tight.