Can I use System Status for data usage monitoring?


iOS only provides data usage since last reboot which means that the app which measures the data usage would have to be running immediately after/before reboot to record the latest usage data. This condition is very hard to achieve in practice:

  1. There’s no way to start an app automatically after system start. User would have to start System Status immediately after the system start which is very easy to forget.
  2. Any app can be killed at any time when iOS needs more memory (e.g. starting a memory-intensive game). This would break data usage monitoring.
  3. Even though there are some background modes on iOS which make it possible to run apps in the background (location service, audio, etc.), these modes may cause higher battery drain (e.g. the location service may use GPS which causes higher battery consumption). Recently Apple also got quite strict on what kind of apps can use these services so if the app isn't directly location- or audio-related, it will get rejected during the app approval process.

There are apps on the App Store tracking cellular and wifi usage based on the billing cycle despite the above limitations but from their ratings you can see their users aren’t very satisfied because it is not possible to make the readings completely reliable. I have deliberately not implemented data measurements over certain period of time because I want to provide only those features that are 100% reliable. That said, there is no issue with displaying the data obtained directly from iOS - that is the received/sent wifi/cell data since last boot, which is implemented in System Status. It is also possible to display current data usage by comparing the last read value and the current value, which is displayed in the data usage graphs.