> 1. Users are offline; experiencing latency issues or are in unreliable network conditions.
> 2. Fetching the data over the network will be slower than fetching it from a local source.
> 3. The app users should be informed about the low network conditions but it shouldn’t be a hindrance to their objective.
> 4. Users’ network and battery status are taken into account, and thus only the data that has changed since the last synchronization should be synced.