The WWDC 2020 presentation reminds us of the importance of setting activityType appropriately.
The documentation states that activityType affects the pausing of location updates. However this blog post (regex.info/blog/2015-12-03/2651) indicates that there may be other side effects, e.g. Snap-to-Road behavior, and that this behavior crosses application boundaries. There is an associated radar (#23737784, openradar.appspot.com/radar?id=6056041628303360).
Can you clarify:
(1) What specific behaviors are affected by activityType?
(2) Can Snap-to-Road be controlled/affected by the app developer (this would be desirable)?
(3) Has the referenced radar been addressed?
The documentation states that activityType affects the pausing of location updates. However this blog post (regex.info/blog/2015-12-03/2651) indicates that there may be other side effects, e.g. Snap-to-Road behavior, and that this behavior crosses application boundaries. There is an associated radar (#23737784, openradar.appspot.com/radar?id=6056041628303360).
Can you clarify:
(1) What specific behaviors are affected by activityType?
(2) Can Snap-to-Road be controlled/affected by the app developer (this would be desirable)?
(3) Has the referenced radar been addressed?
Great question. activityType is how you tell CoreLocation algorithms what you expect your users will be doing while they are using your app. CoreLocation algorithms use activityType to help improve the positioning experience we present to your app.
Answers to your specific questions:
(1) activityType affects tuning throughout the CoreLocation stack. We're constantly trying to improve performance based on developer feedback for different use cases, so behaviors affected by activityType may change over time. That's why it's important to set activityType based on what you expect your users will be doing while they use your app- that's your way of telling us how to optimize the positioning experience for them.
(2) activityType otherNavigation is appropriate for positioning in use cases that do not or may not adhere to roads, assuming such use cases are not dedicated fitness or workout sessions. For the latter, fitness is a more appropriate choice.
(3) The referenced radar, 23737784, has been addressed with a software change in a previous iOS release.
Answers to your specific questions:
(1) activityType affects tuning throughout the CoreLocation stack. We're constantly trying to improve performance based on developer feedback for different use cases, so behaviors affected by activityType may change over time. That's why it's important to set activityType based on what you expect your users will be doing while they use your app- that's your way of telling us how to optimize the positioning experience for them.
(2) activityType otherNavigation is appropriate for positioning in use cases that do not or may not adhere to roads, assuming such use cases are not dedicated fitness or workout sessions. For the latter, fitness is a more appropriate choice.
(3) The referenced radar, 23737784, has been addressed with a software change in a previous iOS release.