Эти приложения обычно используют возможности UIBackgroundModes для выполнения любой обработки, когда приложение является фоновым.В частности, фоновый режим, используемый Strava, скорее всего, это Background Location Services.Следует отметить, что Apple контролирует большую часть ресурсов / времени, выделяемых вашей программе, и как только она покидает передний план, она не получает эти ресурсы так же свободно, как при работе на переднем плане.
У меня быловозможность работать с приложением, основанным на службах определения местоположения, которое требовало отслеживания и отправки обновлений местоположения, даже когда оно было установлено на заднем плане, и смогло добиться этого на iOS 8.
В последние годы Apple обновила способ запроса услуг определения местоположения упользователь.Разработчик приложения может указать либо requestAlwaysAuthorization, либо requestWhenInUse.Первый позволит вам реагировать на обновления местоположения, даже если приложение является фоновым.
API-интерфейс CoreLocation довольно гибкий, например, вы можете указать, хотите ли вы реагировать только на небольшие изменения расстояния или на более крупные.
Документация разработчика является довольно надежным справочным материалом, и если выВы хотите узнать больше о фоновых режимах выполнения, которые вы можете сделать здесь:
https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
Для начала работы с CoreLocation хороший ресурс:
https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html