Es fácil encontrar en las aplicaciones móviles las necesidades de actualización de datos en -pseudo- tiempo real. La idea está clara: quiero que mi aplicación se entere de un suceso en el instante justo en que sucede… tipo Facebook, GMail… – aunque con cierto margen de error icon smile Push notifications vs Polling – . Y aquí es donde empiezan los problemas: ¿cómo hacer esto?

Desde hace tiempo se optó por la vía más directa para implementar esta solución, llamada Polling (encuesta). Al menos es una alternativa muy utilizada ya que minimiza los dolores de cabeza a los desarrolladores. ¿En qué consiste?

En caso de Polling la aplicación interroga periódicamente al servidor, acosándolo continuamente, para saber si existen nuevos datos disponibles. Esta solución es fácil de implementar, pero a efectos prácticos es como si cada vez que necesitamos saber si hemos recibido una polling 210x300 Push notifications vs Pollingpostal tuvieramos que pasarnos por correos – y molestar a nuestro amigo funcionario icon smile Push notifications vs Polling -. ¿Fácil? Si, pero ineficiente…tanto para el cliente como para el funcionario…perdón, servidor! icon smile Push notifications vs Polling

Entrando en el mundo de las aplicaciones móviles el impacto es grande, sólo hay que ver los siguientes datos aproximados:

  • Consumo medio del dispositivo en modo normal (sin conexiones, ni actividad, ni llamadas, ni conexión de ningún tipo): 7mA (miliAmperios)
  • Consumo por uso de red: 200mA (ojo, envíar datos consume mucho más que enviar! )
  • Consumo en modo Polling cada 5 minutos: 144mA / día
  • Consumo en modo Polling cada 15 minutos: 48mA / día

Como dato, teniendo en cuenta que una batería proporciona unos 1000mAH – de media, hay mejores y peores -, vemos que disponer de una App encuestando cada 5 minutos nos puede consumir en un día aproximadamente el 10% de la batería…¡una única aplicación! Si tenemos en cuenta que podemos tener más de 15 activas…calculemos, y el resultado es un usuario que desinstalará nuestra aplicación en cuanto sea posible.

Entonces, ¿cómo se encuentra el equilibrio entre datos lo más actualizados posible y eficiencia de la aplicación? Para esto push 300x173 Push notifications vs Pollingtenemos la tecnología PUSH: oye, servidor, te informo que necesito los datos en cuanto estén disponibles, envíamelos lo antes posible! Es decir, en lugar de preguntar de forma ansiosa si hay datos disponibles, el servidor notifica al dispositivo que dispone de nuevos datos. Y eso es todo: el cliente deja una conexión abierta para que el servidor le notifique esta información, así de sencillo.

En más de una ocasión me han preguntado lo mismo: pero, si el servidor y el dispositivo mantienen viva constantemente la conexión, ¿por que debería consumir menos batería? Sencillo: mantener una conexión esmucho más eficiente en ordenes de magnitud que enviar continuamente datos.

Y simplificando, que alternativas tenemos para implementar esta solución en las distintas plataformas -iPhone, iPad, iOS en iphone battery 300x244 Push notifications vs Pollinggeneral, Android, Blackberry…-. Aquí hay varias posibles soluciones: frameworks ya existentes para crear toda la comunicación cliente / servidor, pero mi experiencia al tener que customizar estos frameworks me dice que mejor no reinventar la rueda…

Para las plataformas, las soluciones más comunes son:

Como se puede ver, en todas las plataformas se aporta este tipo de servicios, previo a realizar el registro del servidor que aportará los datos. Proximamente espero entrar más detalladamente en cada una de ellas para analizar los entresijos y pros y contras. Lo que queda por ver es si realmente se respeta la confidencialidad de los datos, pero eso ya es otra historia…(-:

 Push notifications vs Polling
, ,
19797v1 max 250x250 Jose Cortés, Emilio Avilés y SlashMobility en BDigital Apps!
Image via CrunchBase
El próximo miércoles 17 de noviembre se organiza el BDigital APPs de mano del centro tecnológico Barcelona Digital.  En este evento distintas compañías, tanto consumidoras como creadoras de apps móviles tendrán presencia para compartir ideas y experiencias y por supuesto para realizar networking y generar nuevas oportunidades y contactos. Personalmente creo que ya iban haciendo falta este tipo de eventos y sólo queda por felicitar a Barcelona Digital por este tipo de iniciativas.
Por cierto, la ubicación de este evento será en el CosmoCaixa (Museo de la Ciencia), aquí se muestra cómo llegar:
cosmocaixa 263x300 Jose Cortés, Emilio Avilés y SlashMobility en BDigital Apps!

Ubicación BDigital Apps

En mi caso personal, realizaré una ponencia sobre los beneficios de Android enfocado a
la geolocalización, en el turno de tarde, justo después del taller de BlackBerry, de mano
de Sanyu Kiruluta (RIM) y dando el relevo a Sami J. Vitannen (Nokia), así que parece
que estaré bien rodeado.
Por otro lado, abrirá por la mañana Emilio Avilés representando a SlashMobility con la
introducción de las bondades de Android y seguro que con sus conocimientos del mercado
de las apps móviles aportará mucho conocimiento y valor a los asistentes. Posteriormente seguirá con el evento Enric Farguell (LaSalle) con  IOs (IPhone IPod y IPad).
Promete ser una jornada interesante, ya que este evento es la primera vez que se realiza
en Barcelona y parece ser que (ojalá) se realizará de forma periódica.

bdigital 300x65 Jose Cortés, Emilio Avilés y SlashMobility en BDigital Apps!

BDigital Apps

Afortunadamente, contamos con el apoyo de LaCaixa, HP, Tecnocom y Telefónica como sponsors, por lo que el éxito está asegurado. Esto, unido al hecho que tendremos un gran debate matutino con gente de Google, Nokia, RIM, Microsoft, HP y Telefónica creo que no dejará insatisfecho a nadie relacionado con el mundo de las apps móviles.

Dicho lo dicho, SlashMobility y como no, Android10.org os esperan en el primer evento dedicado a las Apps móviles!
, , , , , , ,