Si hay una cosa que se espera de un teléfono móvil es que se pueda transportar de un sitio a otro y, a ser posible, que siga funcionando.
Como vengo haciendo en los últimos posts, no voy a ponerme a hablar de la gestión de la movilidad propiamente dicha pero sí de algunas de sus implicaciones.
Por ejemplo, en Android hay un concepto que es "Broadcast Receiver". Desarrollando un módulo de este tipo una aplicación puede recibir información de eventos que se producen en el sistema como el estado de la batería, posicionamiento, el tipo de cobertura, intensidad de la señal y un largo etcetera.
Si haces una aplicación que suba vídeos que has grabado con el móvil a una web tienes varias opciones:
La clásica: creas una conexión y subes el vídeo. Y si falla se vuelve a intentar en un periodo de unos minutos.
La moderna: calculas el consumo de energía que costaría subir el archivo para el tipo de tecnología a la que se tenga acceso. Si no es suficiente o dejaría al dispositivo con poca batería habría que interrogar al usuario. Como cada vez que cambie de célula o tecnología de acceso las aplicaciones pueden ser "despertadas" ese procedimiento evita malgastar ancho de banda y batería en operaciones que no podrían llegar a buen fin.
Un ejemplo tan simple como este nos deja ver lo importante que puede ser la utilización de información de todas las capas de un sistema de comunicación para tomar decisiones "más " acertadas.
El software, señores, es lo que va a marcar la diferencia en los terminales móviles. Más que las capacidades computaciones o velocidades de transmisión de datos.