Mallow's Blog

What’s new in iOS 11 Location Technologies

Accessing location is an important feature in many of the applications. The developer has to decide the way of accessing the location. The ways to access location has been changed in the recent iOS 11 updates. Let us see in detail about the ways of accessing the location before and after the update.

iOS 10 and before

Two ways of accessing location:

1. “While Using” access

2. “Always” access

1. “While using” access

“While using” access is used by the developers to access location information when the app is currently active and in the foreground. There may be a case where the app needs to track location when the app is in the background, but still the “While using” access would be sufficient. In this case, a blue bar is indicated below the status bar that your location is being tracked by the app.

NSLocationWhenInUseUsageDescription key is used in Info.plist file for describing why the app needs access to the location. In location permission setting, there will be options “Never” and “Always”

2. “Always” access

“Always” access is used by the developers for apps that need to track your location even when your app is not active. API’s like significant change API which notifies when the user moves to a specific distance and region monitoring API that notifies when the user moves or leaves a specific position.

NSLocationAlwaysUsageDescription key is used in Info.plist file for describing why the app needs always access. In location permission setting, there will be “Never”, “While using the app” and “Always”

From iOS 11:

There is no major change for those apps that use the above said “While using” access. According to Apple, 21% of the Apps use “Always” access. These apps have to consider the changes made to work perfectly. 

When developing apps for iOS 11, you should provide NSLocationWhenInUseUsageDescription irrespective of the type of permission you ask. If you are in need of “Always” access, then you should provide additionally NSLocationAlwaysandWhenInUseUsageDescription key in info.plist. So from now, the description should contain what features would be available in respective modes to the user.

Note: – However, the “NSLocationAlwaysUsageDescription” is needed for supporting backwards compatibility for iOS 10 and below versions.

Three ways of accessing location:

1. “While Using” access

2. “Always” access

3. “While Using” access first and then “Always” access

1. “While Using” access

It would work the same way as before.

2. “Always” access

Now in this case, previously the user would be prompted with either “Allow” or “Don’t allow”. But from iOS 11, you will see “Allow”, “Don’t allow” and “Only while using the App”.

3. “While Using” access first and then “Always” access

This is the recommended approach from Apple for iOS 11 apps. It is also called as “two phased” approach. When you first ask for “While using”, it will prompt with “Allow” and “Don’t allow”. Most users would give this a thumbs up and you can use this permission for giving the user a basic user experience. After a while, when you feel “Always” access is mandatory, then you can now ask for “Always” permission. But now the prompt would contain “Always allow” and “Only While using the app”.

Note that this prompt does not have “Don’t Allow” option as the permission has been already given in the first step itself.

The blue bar of location status

Before iOS11, you would get blue bar below the status bar indicating that the app currently using your location.  But this would be shown for apps that have “When in use” access in the background.

From iOS 11, this bar would be shown irrespective of what type of permission you get from the user when the location is tracked from the background using precise tracking API. However, it will not be shown for apps that use less precision API like significant change or region monitoring API. So, it is recommended that you call location API only needed and decrease the frequency of calling precise tracking API as much as possible.

The tracking Arrow

Before iOS 11, the tracking arrow that appears on the top right of home screen would be filled or hollow based on which location service is being used. But Apple felt that it was unfair. Because consider two apps, the first app which tracks location continuously would be shown by a solid filled arrow. And another app which uses significant change API would also result in solid arrow even though it has been called the API only a few times compared to the previous case.

From iOS 11, when app request location, there would be a hollow arrow. Then when the app actually receives location data, the arrow gets filled for few seconds, which on trial is approximately 10 seconds. In this way, many apps may display solid arrow very often.

Thus, we have seen the different ways of accessing the location in iOS 10 and iOS 11. The changes brought in the iOS 11 helps in making the app experience better.


Rajtharan G,
iOS Team,
Mallow Technologies.

Leave a Reply

%d bloggers like this: