PDA

Ver la Versión Completa : Como notificar al terminal que tiene que actualizar datos


Dild0
17/11/17, 09:13:38
Buenas,

Tengo una app que al iniciarse se descarga ciertas configuraciones de un servidor,

¿Cual es la manera más optima de indicarle a todos los terminales que se descarguen una actualización de esa configuración que he cambiado en mi servidor?


Había pensado mediante notificaciones push despertar el móvil y que descargue pero no se si es la más optima.


Y ahora os pregunto también aun que esta fuera del foro si para IOS también es igual


Gracias

mocelet
17/11/17, 10:18:34
El término óptimo es tan amplio que depende qué quieras optimizar.
- ¿Es necesario recibir los cambios al momento para que la app haga su función?
- ¿Bastaría con que comprueben periódicamente una vez al día por ejemplo?
- ¿La app funciona offline? Si funciona online no supone mucho problema comprobar al vuelo según se usa o cuando se ejecute

Las notificaciones push son con FCM en Android y con APNS en Apple, es conceptualmente lo mismo, los móviles tienen conexión permanente con los servidores de Google y Apple y reciben tu notificación al momento o cuando se conecten... en teoría, en la práctica con los sistemas de ahorro de energía hay veces que ni me entero de un correo de Gmail y eso que es de la propia Google.

Otra opción que quizá pueda interesarte es usar la Firebase Database, si todos los dispositivos van a leer el mismo documento y les interesan los cambios es mucho más fácil de implementar (no necesitas servidor para enviar/gestionar las notificaciones) y solo tendrías que actualizar el documento en Firebase y automáticamente todos se enteran.

kriogeN
17/11/17, 20:20:20
Las notificaciones push son con FCM en Android y con APNS en Apple, es conceptualmente lo mismo, los móviles tienen conexión permanente con los servidores de Google y Apple y reciben tu notificación al momento

Con iOS también puedes usar FCM, aunque está montado sobre APNS obviamente (es lo único oficial de Apple). La verdad es que está bien, porque con una única infraestructura controlas tanto las notificaciones para Android como para iOS.

Y aunque es cierto que conceptualmente son lo mismo hay algunas diferencias entre lo que puedes hacer con Android o con iOS. La diferencia más importante es que con una notificación de Android puedes hacer lo que quieras, puedes incluso que ni siquiera le diga nada al usuario, el móvil recibe la notificación, inicia un servicio, ese servicio hace cosas y termina. Eso con iOS no lo puedes hacer, lo único que puedes hacer de hecho es avisar al usuario, esa notificación no puede hacer nada en segundo plano (salvo que la app ya esté iniciada y esté en primer o segundo plano, si la matas no hará nada, y cuidado, porque si después vuelves a pulsar la notificación volverá a hacerlo otra vez).

Y después del offtopic, yo creo que lo más óptimo para tu caso es que cada vez que se inicia la app consulte si hay novedades y las descargue, como hacen por ejemplo los juegos. Si son pocos datos no influirá mucho, y son muchos datos no es plan de agotarle la tarifa al usuario (si está en 4G) descargando algo en segundo plano que él no ha pedido.