¿Cómo sabe una aplicación iOS cuando hay nuevos datos disponibles en el servidor?

EDITADO: La pregunta original era solo para aplicaciones, que a menudo son solo aplicaciones web. Para las aplicaciones de iOS, es casi lo mismo. Interval Polling es una estrategia común para reducir el ancho de banda y la utilización del servidor, para cosas más simples, se puede utilizar una conexión TCP.

Depende.

La solución original era actualizar toda la página cada pocos minutos. Este proceso se llama sondeo por intervalos, y ahora se realiza a través de llamadas Ajax. Donde JavaScript realiza llamadas api para obtener nuevos datos y agrega o reemplaza lo que está allí. El sondeo por intervalos se usa en muchas aplicaciones del teléfono, los datos livianos se transfieren y se formatean para la pantalla del dispositivo.

Otra estrategia se llama sondeo largo en el que el código de fondo actúa como si la página todavía se estuviera cargando y alimenta continuamente las actualizaciones a medida que entran. Esto es un truco y puede ser propenso a errores. Esto solo es útil en sitios web y no se usaría en una aplicación de dispositivo.

La estrategia moderna es usar websockets. Los sockets web, como el socket io, permiten que la página mantenga una conexión abierta con el servidor para que el servidor envíe nueva información. Con iOS y otras aplicaciones, podría usar una conexión TCP, o TCP Socket, en lugar de un websocket. El concepto es el mismo, solo se está originando más profundamente en el sistema operativo.