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
, ,
150x94 Android AppChallenge en Vilanova i la Geltrú

Después de un duro fin de semana, finalizó el evento Android AppChallenge celebrado en Vilanova i la Geltrú tras 24 horas intensivas de desarrollo bajo la plataforma Android.

El reto ha sido simple: realizar un juego en 24 horas con funcionalidades diversas: 1 player, 2 players, juego contra el dispositivo, social media…un sinfín de líneas de código a generar y la satisfacción de haber acabado (prácticamente) con los requerimientos pedidos, a pesar de llegar 4 horas tarde (-:.

El equipo SlashMobility formado por los integrantes Manel Simón, Ignasi Busquets y Jose Cortés – un servidor -,dió guerra hasta el final y aguantó estoicamente – o heroicamente icon smile Android AppChallenge en Vilanova i la Geltrú – hasta el final del reto, sin dormir. Por cierto, en este enlace podéis conocer a los integrantes del equipo:

Finalmente tras una dura decisión ganó merecidamente Raul Muñoz, con una App muy bien elaborada y agradable a la vista – felicidades por cierto! -, que finalmente tuvimos el placer de poder tocar y jugar.

24 horas intensas pero para nada aburridas, en la que tuvimos la presencia de otros compas de batallas como Nacho Cougil que plantó cara a sus AsynTasks hasta salir victorioso icon smile Android AppChallenge en Vilanova i la Geltrú , el maestro Fernando Cejas con su aplicación y su inmortal persistencia IMAG0351 300x179 Android AppChallenge en Vilanova i la Geltrúhasta dejar prácticamente lista la App, y otros compas varios de GTUG y Androides como Israel Ferrer y Fernando García.

Felicitar a los organizadores y animarles a continuar con este tipo de eventos muy bien organizado – nos trataron como reyes y nos cedieron el móvil de pruebas Samsung Galaxy S Plus!-, ya que crea comunidad y concepto de equipo. Matizar que el evento era individual pero no se dejó de ver gente apoyando a sus compañeros, algo que a mi punto de vista no cambia para nada el bien merecido resultado.

 

La próxima nos vemos en el AppChallenge de IPhone!!

 

 

 

 Android AppChallenge en Vilanova i la Geltrú
, , ,
300px SIP signaling #Android #2.3 #Gingerbread cambios #API
Image via Wikipedia

Ya tenemos Android 2.3 (aka Gingerbread), API level 9, así que nos toca merendar : )_

Llevábamos ya unos días esperando la release de la versión 2.3 de Android para echar un ojo a los cambios añadidos
a la SDK, en una primera ojeada no tiene mala pinta, aunque habrá que analizar con calma.
Describo superficialmente cuáles son algunas de las nuevas aportaciones que tendremos en el SDK:

Voz IP vía protocolo SIP (Session Initiation Protocol)

Esto nos permitirá crear aplicaciones que utilicen la telefonía y videoconferencia a través de Internet.
Obviamente, aquí entrarán en juego las queridas operadoras teléfonicas (siempre al acecho…) que empezarán a poner
zancadillas a base de limitación de datos y amenaza de bajar la velocidad de la línea…si quieres llamar, a pagar
una tarifa de voz…necesario?
Lo encontraremos en el package android.net.sip, y necesitaremos de un nuevo permiso: <uses-permission android:name=”android.permission.USE_SIP”>

NFC (Near Field Communication)

Muy interesante el soporte para NFC, que precisamente hace poco me comentaban los amigos del Centro Tecnológico
Leia-Tecnalia, en Vitoria. Esto permite entre otras la lectura automática de etiquetas utilizando radiofrecuencia.
Es decir, pasamos el dispositivo por la etiqueta y listo, información recibida. Promete bastante, sobretodo por el futuro pago con el móvil que se espera empezar a ver pronto.

El package: android.nfc y el permiso: <uses-permission android:name=”android.permission.NFC”>

Soporte para nuevos sensores: giróscopo, gravedad, barómetro…

Si buscamos en la clase Sensor, vemos que algunas de las constantes añadidas han sido: TYPE_GRAVITY, TYPE_LINEAR_ACCELERATION,
TYPE_ROTATION_VECTOR.

Soporte para múltiples cámaras

Ampliación de la API para consultar el número de cámaras disponibles y seleccionar la que se prefiera. Esto es interesante ya que se están empezando a ver las típicas cámaras frontales, que posiblemente se utilizarán para videoconferencia, entre otras.

Efectos de sonido

El media framework añade soporte para modificar audio y añadir efectos añadidos en las pistas. Personalmente, no estoy demasiado metido en este framework, si bien seguro que añade mucho valor, especialmente para los creadores de juegos.
El package: android.media.audiofx

Download Manager

Api para pedir al sistema que descargue algo de una URL y lo mueva a una ubicación determinada. Como la mayoría de managers, se puede acceder a él a través de la llamada getSystemService(String servicio).

StrictMode

Interesante novedad, en la que el desarrollador puede ser notificado en el caso de que la aplicación pueda degradar
el rendimiento. Se pueden configurar los temas que se quieren monitorizar: lecturas y escrituras en disco, red, log, sql…

Soporte para pantallas “extra largas” (aka tabletPC)

Se puede indicar que la aplicación se va a ejecutar en este tipo de pantallas con <supports screens … android:xlargeScreens=”true”>, y se dispone de un nuevo qualifier en los rescursos:  (xlarge)

Content Providers

Se han añadido:

AlarmClock: gestión de alarmas dentro de nuestros componentes de aplicación.
MediaStore: soporte de una nueva acción (PLAY_FROM_SEARCH) que permite escuchar un audio directamente de una búsqueda.
Settings: cambios que permiten a la aplicación consultar los detalles de pantalla.
ContactsContract: se añaden nuevos campos para añadir el SIP (telefonía vía Internet)

Ubicación:

Cambios en las notificaciones de ubicación y criterios (Criteria) para los componentes de aplicación.

Almacenamiento:

Soporte para OBB (no totalmente soportado) y virtual SDCard.

Package Manager:

Nuevas constantes y métodos para saber si es la primera vez que se instala la aplicación, última actualización, etc.

android y gingerbread 300x148 #Android #2.3 #Gingerbread cambios #APIAcceso nativo al ciclo de vida de la Activity:

NativeActivity, que implementa directamente los métodos de callback (onCreate,onPause…)

DalvikRuntime:

Se eliminan clases anteriormente deprecadas y se añaden modificaciones en algunas clases del core:

ArrayQueue, NavigableMap, ConcurrentSkipListMap, LinkedBlockingDeque, CookieManager (HttpURLConnection)…

Todo esto, más unos cuantos cambios en la UI y en la parte gráfica (OpenGL ES 2.0), nuevos tags en el Manifest.xml y nuevos permisos…

Se pueden ver una lista completa de los cambios en la página oficial de developers

Ahora sólo queda echarle un ojo a todo y ver cómo se pueden explotar estos cambios…mientras tanto, en SlashMobility seguimos dándole caña a los cursos de Android y veremos que cosas interesantes añadimos a la formación (-:

Mientras tanto, esperaremos a Android 3.0, de la que sabemos que empezara por H icon smile #Android #2.3 #Gingerbread cambios #API

, , , , ,

Y cuando compra, no se queda corto…

70707v1 max 450x450 #Google se va de compras

Hace unos días nos enteramos por TechCrunch.com de que “el buscador” compró Jambool , especializada en dinero virtual, por unos 70 millones de dolares. El 5 de agosto fue el turno de Slide.com, (info de tradingmarkets.com) dedicada a los #Social Games, por cerca de los 200 millones.  Y como no, la sonada inversión de Google de unos 100 millones en Zynga, muy conocido por los juegos del #Facebook tipo FrontierVille, ZyngaPoker … y como no, FarmVille ( a quién no le ha llegado solicitudes para reparar noseque granja y ayudar a noseque animalitos?) #Google se va de compras

3187v10 max 450x450 #Google se va de compras

Así que por lo visto, Google está metiéndose de lleno en los Social Games, o al menos en apariencia, por lo que quizás en breve tengamos noticias de las especulaciones que se hacen sobre Google Games o Google ME (enfocado a redes sociales). Teniendo en cuenta que todo lo que Google toca lo google money #Google se va de comprasconvierte en oro (bueno, con pequeños matices, tipo Google Wave…), parece posible que el futuro ( y cómo no eso afecta a la movilidad tecnológica y los SmartPhones tipo #Android y #IPhone) está en las interacciones sociales.

Tendremos próximamente un GoogleFacebook o similar? Quien sabe…habrá que esperar…:-)

 #Google se va de compras
, , , , ,

Y por fin retomo el blog!

Después de varios miles de millones de años de parada, resucitamos el blog para contar las aventuras y desventuras que vamos teniendo en el “emprendimiento”.  Formación Android

Muchas horas de tabajo, muchas prisas y muy poco dormir, pero parece que va a valer la pena…proyectos, productos y mucha formación a impartir, así que queda mucho que hacer aún, pero parece que vamos por el buen camino icon smile Formación Android

Por otro lado, personalmente estoy ganando mucha experiencia en batallas que hasta ahora me eran totalmente desconocidas (marketing? financiación? amortizaciones?) pero como el saber no ocupa lugar…o al menos ocupa poco, le haremos un hueco.

 Formación Android

Y con esto, tras una dura tarde de lluvia de requisitos en nuestras “oficinas” icon smile Formación Android , seguimos peleandonos este fin de semana con los señores #android y #iphone, que ya hay a la vista varios proyectos muy interesantes (-:

Así que, a disfrutar del finde! (el que pueda!)

 Formación Android
, , ,