Vale la pena revisar este hilo: ¿Geo-fencing en iOS 6 sondea tu ubicación varias veces al día?
Pero en resumen, para usar las cosas de geofencing de fábrica provistas en CoreLocation:
1) Como desarrollador, usted define una “región” circular para que iOS monitoree y llame a la API relevante para registrarla dentro del código de su aplicación. Puede descargar periódicamente una lista de genfences que desea rastrear desde su propio servidor y luego registrarlas dentro de su aplicación.
- ¿Cuál es la forma más rápida de comenzar con el desarrollo de iPhone, con la menor cantidad de esfuerzo?
- ¿Qué tan importante es integrar una plataforma de análisis en una aplicación de iOS?
- ¿Cómo puede ser productivo un chat de Slack con 4000 desarrolladores de iOS?
- ¿Qué incluye una arquitectura de aplicación iOS?
- ¿Qué debería elegir un desarrollador de iOS para un aprendizaje adicional: desarrollo de juegos Unity 3D o desarrollo de aplicaciones híbridas?
2) Cuando un usuario ingresa o sale de una de estas regiones, el sistema operativo notificará a su aplicación para que pueda manejar el evento (y si su aplicación no se está ejecutando actualmente cuando recibe este empujón del sistema operativo, se despertará en segundo plano, dado unos segundos para procesar los datos, y luego terminará nuevamente).
3) Durante estos pocos segundos de tiempo de funcionamiento en segundo plano, puede informar la ubicación de los usuarios a un servidor remoto o realizar alguna otra acción, como descargar datos de un servidor remoto y / o generar una notificación.
Re: su pregunta sobre notificaciones y servidores Apple:
Cuando su aplicación está en segundo plano, puede crear una “Notificación local” (Referencia de clase de notificación UILocal). Esto tiene el mismo aspecto exacto que su notificación push típica, pero se genera localmente desde su aplicación que se ejecuta en segundo plano, no desde un servidor remoto como su notificación “push” estándar. Si utiliza este mecanismo para generar notificaciones, no es necesario hablar con ningún servidor de Apple.
Este es el patrón de diseño general que Jeff Lopes y yo usamos al crear ProximiT (Alertas basadas en la ubicación para el MBTA), que le indica al usuario la próxima hora de llegada del tren cada vez que se acerque a una cuadra de sus estaciones de tren “favoritas”.