El porqué de las notificaciones persistentes en Android

La profunda reestructuración que está viviendo BlackBerry (la antigua RIM) de una empresa multinivel a varias compañías principalmente de servicios trajo consigo la llegada de BlackBerry Messenger al resto de sistemas operativos.

bbm

Un servicio de mensajería como Dios manda, que tiene en cuenta la privacidad del usuario y el cifrado de datos (vamos, igualito a WhatsApp…), y pese a la deficiente gestión publicitaria (se le perdona por todo lo que está pasando), se agradece ver que el público (al menos el techie) apoya la decisión, con unas 10 millones de descargas en las primeras 24 horas (ES).

Dejando de lado el hippy inicial (sigo sin entender el porqué un prosumidor se descarga BBM, se crea una cuenta, y corre raudo a difundir a sus followers de twitter el PIN para que lo agreguen), lo cierto es que navegando por los comentarios de Google Play, me he encontrado en más de una ocasión una mala nota por esa notificación (hasta cierto punto molesta) que queda grabada a fuego en la barra de notificaciones.

Así que aprovecho este canal para explicar un poco el funcionamiento de Android, y porqué algunas aplicaciones dejan lo que se llama notificaciones persistentes en la barra.

Google Cloud Messaging

Uno de los principales problemas a los que hace un año se enfrentaba Android era el gasto de batería por las notificaciones. Esto era debido a que cada uno hacía lo que quería para recibirlas, normalmente de forma directa (o bien el smartphone estaba continuamente escuchando, o bien el servidor enviaba directamente la notificación a pelo al smartphone, obligando a este a conectarse cada cierto tiempo).

Esta estrucutra de comunicación no es modular, y de ahí que Google sacara Google Cloud Messaging, del cual ya hablé en su momento, y que en definitiva no es más que un Man in the middle relativamente seguro y aceptable para salvaguardar nuestra integridad, y de paso la batería. Para los que tengáis poco tiempo y no estéis interesados en leer el otro artículo, GCM se encarga de intermediario, de tal manera que cuando el servidor de la app recibe una notificación, este lo notifica al smartphone con un paquete de poco peso, y es entonces cuando la propia app llama al servidor para recopilar la información. Como puntos negativos, está el hecho de que Google accede de antemano a la notificación, por lo que siendo estrictos es un abuso de la privacidad, pero suponiendo que los datos se envíen cifrados, no debería ser el fin de los tiempos (al menos no como lo que era el turbo de Opera Mini o Chrome Beta).

Pues bien, algunas aplicaciones, como Skype, y en este caso BBM, usan sus propios protocolos, lo cual por un lado es beneficioso (son precisamente dos servicios con software propietario y a priori bastante seguros), y por otro obligan al teléfono a estar a la escucha por su propio canal (de ahí que tengan lanzada una notificación persistente). Respecto al gasto de batería, digo yo que tratándose de Microsoft y BlackBerry, su gestión de notificaciones push sea por lo menos tan efectiva como la de Google, y ya de paso se saltan al intermediario.

En el caso de BBM, se puede desactivar desde la configuración, pero teniendo en cuenta que si lo haces, o bien abres continuamente la app para seguir recibiéndolas (el timeout depende del uso que se esté dando a la pila de la RAM, y teniendo en cuenta que Android re-escribe continuamente la RAM, será un lapso de tiempo cuantificado en minutos), o bien no recibirás notificaciones hasta que la vuelvas a abrir. En el caso de Skype, y como viene siendo habitual para los de la ventanita, no hay opción alguna. O lo aceptas, o la desinstalas.

Así que en vuestra mano queda.