Есть ли простое приложение (для iOS), которое присылает уведомление при приближении к заданным GPS-координатам?

Да, существуют простые приложения для iOS, которые могут отправлять уведомления, когда пользователь приближается к заданным GPS-координатам. Вам необходимо разработать приложение, используя Objective-C или Swift, в котором вы будете использовать функциональность GPS-модуля и функции локальных уведомлений iOS.

Для начала, вы должны запросить разрешение пользователя на использование его местоположения. Вы можете сделать это, добавив ключ NSLocationWhenInUseUsageDescription в файл Info.plist вашего приложения. В этом ключе вы должны описать, почему ваше приложение нуждается в доступе к местоположению пользователя.

После получения разрешения, вам нужно создать экземпляр класса CLLocationManager, который будет отслеживать местоположение пользователя. Вы должны установить делегата для объекта CLLocationManager, чтобы получать обновления о текущем местоположении пользователя.

Далее, вы должны определить целевые координаты, к которым пользователь должен приближаться. Обычно это делается путем задания широты и долготы в виде double значений.

Когда пользователь приближается к целевым координатам, вам нужно создать и отправить локальное уведомление. Вам понадобится экземпляр класса UNUserNotificationCenter для создания и отправки уведомлений. В уведомлении вы можете указать заголовок, сообщение и другие настройки, например, звук или значок уведомления.

Чтобы определить, что пользователь приближается к целевым координатам, вы можете использовать метод distance(from:), который вычисляет расстояние между текущим местоположением и целевыми координатами. Если расстояние меньше определенного порога, вы можете создать и отправить уведомление.

Наконец, не забудьте обрабатывать разрешения пользователя на отправку уведомлений. Вам понадобится запросить разрешение у пользователя для отображения уведомлений. Это можно сделать с помощью метода requestAuthorization(options:completionHandler:) для экземпляра класса UNUserNotificationCenter.

Вот пример кода на Swift, который показывает основные шаги реализации этой функциональности:

import CoreLocation
import UserNotifications

class LocationManager: NSObject, CLLocationManagerDelegate {
    let locationManager = CLLocationManager()
    
    override init() {
        super.init()
        locationManager.delegate = self
        locationManager.requestWhenInUseAuthorization()
    }
    
    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        guard let currentLocation = locations.last else { return }
        
        let targetLocation = CLLocation(latitude: 37.33, longitude: -122.03) // Заданные координаты цели
        
        let distance = currentLocation.distance(from: targetLocation)
        if distance < 100 { // Пороговое значение расстояния
            sendNotification()
        }
    }
    
    private func sendNotification() {
        let content = UNMutableNotificationContent()
        content.title = "Приближение к цели"
        content.body = "Вы приближаетесь к цели."
        content.sound = UNNotificationSound.default
        
        let request = UNNotificationRequest(identifier: "locationNotification", content: content, trigger: nil)
        UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
    }
}

// Создаем экземпляр LocationManager
let locationManager = LocationManager()

Этот пример кода инициализирует экземпляр класса CLLocationManager, запрашивает разрешение на использование местоположения и определяет целевые координаты. При каждом обновлении местоположения пользователя он проверяет расстояние до целевых координат и отправляет уведомление, если пользователь достаточно близко к цели.

Обратите внимание, что этот код является простым примером и может потребовать настройки и доработки для вашего конкретного приложения. Вам также может потребоваться учесть другие аспекты, такие как точность позиционирования, обработка ошибок и обновление местоположения в фоновом режиме.