Sampling Coverage in Mobile Sensing on iOS 13

In our previous blog post, we tested the coverage of CAMS mobile sensing on Android. As promised, we wanted to test coverage on iOS as well, when the app runs in the background.

Hence, we ran a similar coverage test on an iPhone 11Pro running iOS 13.7. The measure set is slightly different (since not all measures are available on iOS):

  • location (1m)
  • wifi (1m)
  • weather (5m)
  • air_quality (5m)
  • device (1m)
  • activity (…)

As usual, coverage is calculated per measure on an hourly basis as the ratio of collected data points compared to the expected number.

The results shown below in Fig. 1 reveals that sampling coverage on iOS is also100%.

Fig. 1 – Sampling coverage for iPhone 11Pro, iOS 13.7. Numbers in cells indicate sampling coverage; 1 indicates 100% coverage, i.e. that all expected data points were collected. 

As we also showed in the original CAMS paper, coverage on iOS is very stable and 100% most of the time. Hence, data sampling on iOS also runs stable in the background.

In this test, we also collected activity measures, as shown in Fig. 1. The activity measure is event driven, and there is hence no “expected” number of data points. The data in Fig. 1 reveals that the user is very in-active during the night (23:00 to 06:00), and seems to be very active i the afternoon (14:00-18:00). All of which reflects the user’s actual behaviour that day.

However, note that in order to keep the app running in the background, the carp_context_package needs to be included. It is important to follow the instruction of the package, including modifying the info.plist and AppDelegate.swift files. Also make sure that “Allow location tracking always” is enabled for the app on the phone.