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
, ,

Durante esta tarde Apple ha presentado en su campus Cupertino el nuevo sistema operativo IOS 5. Confirmado, la fecha será el próximo miércoles 12 de Octubre.

Y parece que la S está de moda…Nexus S, Samsung Galaxy S, y ahora IPhone 4S N64…para decepción de muchos que esperaban por fin el iPhone5 de una vez por todas. Pero habrá que esperar un poquito más…de hecho no se ha oido nada de nada sobre su futuro.

Según anuncia Apple, se ha realizado un rediseño total a nivel interno, añadido doble antena, aumentado la duración de la batería, soporte para GSM, CDMA y HSPA para mejorar el soporte y su internacionalización, potenciado la cámara…

La ansiada keynote ha abarcado toda la historia de dispositivos Apple, desde iPods, pasando obviamente por iPhone hasta los MacBook Air.

Scott Forstall2 Nuevo IPhone 5...perdon, 4S : )

Image via Wikipedia

Los speakers más relevantes han sido:

  • Scott Forstall,  vicepresidente de iOS
  • Tim cook, CEO desde hace apenas un mes dando el relevo al benerado Steve Jobs y al que hace nada han tenido que renovar su perfil en la Wikipedia para una mejora de marca personal icon smile Nuevo IPhone 5...perdon, 4S : )
  • Eddy Cue, senior vicepresident Internet Software and Services
  • Phil Schiller, senior vicepresident Worldwide Product Marketing

Los datos más relevantes de la keynote han sido:

Procesador y hardware

  • A5, hasta 7 veces más rápido, de doble núcleo
  • Se hizo una demo con Infinite Blade II, en el que se pudo ver la fluidez de procesador.
  • Soporte para HSDPA+, que permitirá navega a 14,4 MBPs (no suena mal)
  • A nivel de hardware, switch inteligente entre dos antenas para la recepción y envío de datos. Suponemos que Apple aprendió la lección con el issue de las antenas y las manos de los usuarios (-:

Cámara

  • Como dato, es la cámara más utilizada para subir imágenes a Flickr.
  • 8 MegaPíxels de cámara, 1080p,
  • La frase de este punto ha sido “To many customers this will be the best still camera they’ve ever owned and the best video cameras they’ve ever owned”. Humildad ante todo icon smile Nuevo IPhone 5...perdon, 4S : )
  • 300px Steve Jobs Headshot 2010 CROP Nuevo IPhone 5...perdon, 4S : )

    Image via Wikipedia

    Face detection, tecnología que parece está en auge y que parece interesas mucho al mundo del Digital Signage

  • Nuevo Image Signal Processor 26% de mejora en white-balance.
  • InfraRed filter para tener una captura de color de mucha más precisión
  • Imágenes de hasta 3264×2448
  • Comparativa de IPhone 4S con los tiempos de respuesta de Droid Bionic, Galaxy SII, HTC Sensation. La frase de crispación y risitas por parte de Scott Forstall ha sido: “I don’t know what Droid Bionic users need to do between pictures, maybe go get coffee.” icon smile Nuevo IPhone 5...perdon, 4S : )

 

Batería

  • Importantes mejoras que impactan en la optimización y en consecuencia duración.
  • 8 horas hablando con 3G
  • 14 horas hablando con 2G
  • 6 horas navegando con 3G
  • 9 horas navegando con WIFI
  • 10 horas reproduciendo video
  • 40 horas reproduciendo música

Características

  • Siri, un asistente por voz con un alto grado de reconocimiento sintáctico. Durante la keynote, se realizaron pruebas en la que se le preguntaba por distintos aspectos: “What time is it?”, respondiendo perfectamente, “Define mitosis”, donde proporcionó una definición formal del concepto, “Search Wikipedia for Neil Armstrong”, lanzando la Wikipedia con los datos de Neil, “Find me a great Geek restaurant in Palo Alto”, respondiendo información geográfica, “Wake me up tomorrow at 6am”, configurando el despertador…Un sinfín de opciones que Siri proporciona, a más de uno le va a hacer mucha compañía icon smile Nuevo IPhone 5...perdon, 4S : )
  • iCloud: gratuito para iOS5 y usuarios de Lion. 5GB gratuitos. Disponible a partir del 12 de octubre.
  • Soporte AirPlay, Disponible a partir del 12 de octubre.
  • Notification Center: central de avisos para facilitar y centralizar las notificaciones. Estas serán visibles en la barra superior desplazándola hacia abajo (esto me suena…Apple copiando cosas de Android? icon smile Nuevo IPhone 5...perdon, 4S : ) ). De esta manera se evitarán las notificaciones desgradables, algo que tenían pendiente en versiones anteriores.
  • iMessage, servicio de mensajería para los usuarios de iOS que parece ser un clon de Wassup (si algo funciona…copialo! )
300px IPod family Nuevo IPhone 5...perdon, 4S : )

Apps y extras

  • Cards Apps, con sistema PUSH
  • Newsstand, App para crear prensa digital
  • Mejorar en integración con Twitter, donde ahora se facilita compartir todo tipo de información.
  • Reminders, tipo Google Calendar.

Datos:

  • Comparación con Android, en número de aplicaciones hay 500k en AppStore y 140k para iPad. Obviamente, sólo han comparado la dimensión que más ha interesado, sin tener en cuenta las proyecciones de crecimientos en esta y otras áreas (terminales, activaciones, etc).
  • Número de velocidades teóricas de descarga 14.4Mbps vs 7.2 en IPhone 4
  • “iOS is now the number one mobile operating system, 43 percent compared to Android’s”, habría que ver sobre qué criterio es el número uno. En satisfacción de usuario, como bien se comenta, seguro.

Precios:

  • precio IPOD: $149 for 16GB and $129 for 8GB.
  • Precio de venta en España de IPhone 4S son desconocidos, con lanzamiento a fecha finales de octubre, pero sabemos en Estados Unidos USA se vendarán a partir del 14 de octubre y a través de Sprint con los precios:
  • 199 dólares la versión con 16GB
  • 299 dólares la versión con 32 GB
  • 399 dólares la versión con  64GB

Muy interesantes cambios, parece que se va dejando entrever que Apple también coge lo mejor de sus competidores y lo asimila en sus sistemas -algo positivo a nivel de usuario, potencialmente negativo para una empresa basada en la innovación -. Pero seguro que tarde o temprano Apple vuelve a dar la sorpresa como de costumbre!

150x94 Nuevo IPhone 5...perdon, 4S : )

Image by Getty Images via @daylife

Así que continuamos a la espera de IPhone 5, que como muy bien sabe hacer Apple gestiona las expectativas y canaliza las ansias del mercado cada vez que dispara con un nuevo dispositivo.

Mi más sentido pesame a los Fan Boys de Apple y IPhone icon smile Nuevo IPhone 5...perdon, 4S : )

 Nuevo IPhone 5...perdon, 4S : )
, , , , , , ,
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ú
, , ,

Continuando con los procesos de calidad y mejora continua de SlashMobility, esta última semana la hemos dedicado al gran olvidado en los procesos de desarrollo de software, la fase de TESTING. Siendo conscientes de la importancia que tiene este punto en el producto final – y en consecuencia en la calidad y la satisfacción del cliente -, esta sesión que he realizado ha estado enfocada a las best-practices y procedimentar las actividades de Testing en las Apps Móviles.20110902 Taller Mobile Testing Slash 01 300x224 Testing Mobile Apps Sessions!

Actualmente existe cantidad de información dedicada a la fase de Testing, pero la mayor parte es demasiado generalista, basada en metodologías desactualizadas o enfocadas únicamente al paradigma web. Durante esta sesión se ha analizado cuales son las particularidades del testing en Apps Móviles, las diferencias con otros entornos y la multitud de problemas potenciales que pueden encontrarse.

El evento comenzó con una breve descripción de qué es el testing, como funciona y los conceptos necesarios y teóricos. Continuó con la contextualización y la importancia en la compañía de estos procesos, y cómo encaja y se puede digerir en metodologías ágiles utilizadas por Slash como SCRUM: agilidad en el desarrollo no significa no hacer las cosas bien!

 

20110902 Taller Mobile Testing Slash 02 300x224 Testing Mobile Apps Sessions!Algunos de los puntos que se trataron fueron los siguientes:

  • Testing: funcionales y no funcionales
  • Testing de aplicaciones móviles: procedimientos y entregables
  • Test plan & Test cases móviles
  • Particularidades de testing móvil: interfaces, performance, seguridad, dispositivos, operacional, multidispositivos…
  • Casos prácticos con distintos clientes

La experiencia de los componentes de SlashMobility en la línea de servicios y producto nos hace consciente de la importancia de hacer las cosas bien hechas, no sólo a tiempo. Por ello, el esfuerzo más importante se ha hecho en los procesos necesarios para realizar un testeo correcto de las aplicaciones, enfocándose en pruebas de calidad y valor en lugar de pruebas vacías de sentido.

20110902 Taller Mobile Testing Slash 04 300x224 Testing Mobile Apps Sessions!Con estas sesiones, a parte de conseguir mejoras qualitativas a nivel de procesos, también nos ha servido para hacer equipo, en el que los miembros de los equipos de Slash comparten sus experiencias y batallitas, ya que siempre hay que dejar algo de tiempo para el lado creativo de las personas icon smile Testing Mobile Apps Sessions!

En esta sesión han participado una parte de los equipos de SlashMobility, desde los desarrolladores IPhone y IPAD (IOS), Android, Blackberry y el Quality Manager. Los asistentes más jovenes se quedaron para la foto finish y el estreno de las nuevas camisetas de temporada de SlashMobility! icon smile Testing Mobile Apps Sessions!

Si estás interesado en profundizar en la calidad en las Mobile Apps durante el mes de octubre realizaremos la sesión Q&A Mobile Apps, enfocada a mejorar la calidad y usabilidad en las aplicaciones móviles. Nos vemos allí!

Las diapositivas de la sesión se pueden encontrar AQUí

 Testing Mobile Apps Sessions!
, , , , , , ,
3118839891 eb5077305b m #Android: identificando instalaciones y dispositivos

Android

Se comenta en las últimas entradas del blog de Android Developers el hecho que muchas veces es necesario identificar las instalaciones y los dispositivos en los que se instalan nuestras Apps. En el mundo #IPhone la cosa es relativamente más sencilla, ya que todo está “etiquetado”: hardware, software, Apple IDs…

En Android, la cosa es más compleja. Resumo a grandes rasgos las mejores maneras de identificar (hacer tracking) dispositivos y instalaciones.

Instalaciones de aplicación:

  1. Usar TelephonyManager.getDeviceId(): problema, ya que el sistema devolverá el IMEI, MEID, o ESN, pero no todos los dispositivos Android deben tener estos identificadores. Además, el ID no varia en distintos wipes (resets) y necesita permisos especiales (READ_PHONE_STATE).
  2. Utilizar un UID pseudo-aleatorio y registrarlo en el servidor: puede funcionar, pero existe una pequeña probabilidad de colisión entre identificadores.
  3. Con el modelo del punto 2, lo mejor sería utilizar el método UUID.randomUUID() que devuelva un UID único (RFC 4122)

Identificar dispositivos:

  1. Usar TelephonyManager.getDeviceId(), con el problema acabado de comentar.
  2. Utilizar la MAC Address del dispositivo: no muy recomendado, ya que no todos los dispositivos tienen un adaptador WIFI
  3. Utilizar la variable del sistema android.os.Build.SERIAL , pero sólo está disponible desde la versión 2.3 (GingerBread)
  4. Variable Settings.Secure.ANDROID_ID , disponible desde la versión 2.2 (Froyo), parece la mejor elección
, , , , , , ,
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!
, , , , , , ,

Manfred Moser en el CINC

14601v1 max 450x450 Manfred Moser en el CINC

Pues continuando las andanzas, hoy los amiguines de #SlashMobility (Jose Cortés, Emilio Avilés & Nacho Cougil, entre otros) hemos estado dando una vuelta por el CINC a ver que se contaban los compañeros del #GTUG y  Androides BCN.

Hemos estado escuchando a Manfred Moser (http://www.simpligility.com/ y http://www.linkedin.com/in/manfredmoser), fundador del VIJUG (Vancouver Island Java User Group), dedicados a fomentar las tecnologías JAVA en Canadá.

A grandes rasgos, ha comentado las bondades que ofrece #Maven, conocida herramienta para la gestión de proyectos JAVA (bueno, en teoría no sólo JAVA, pero ya sabemos como son estas cosas…) con el robotito verde (aka Android). Entre otras cosas, se han analizado:

El ciclo de vida de un proyecto con Maven: compile, testing, packaging, install, deploying…
Ampliar la funcionalidad de Maven con plugins: lo que no hace, lo puede hacer.
Fases de los plugins (goals).
Visión de un POM.

Y lo más interesante, el plugin maven-android-plugin, para evitarnos tener que ir trasteando con el emulador y el adb,
dando una capa de abstracción que ayuda a realizar las típicas tareas del ciclo de vida de una app Android:
 Manfred Moser en el CINC
android:apk – para crear el empaquetado de la aplicación
android:deploy – subir el apk al emulador (configurable en el pom.xml)
android:emulator-start – obvio, no?
android:pull y android:push para copiar ficheros desde el dispositivo a local y viceversa, respectivamente.

etc.
Quizás se echó un poco en falta el saber cómo se realiza la gestión de dependencias, pero está claro que no se puede
hacer todo en un par de horas…

En general muy intesante, acompañada de un sorteo de libros de Manfred sobre Maven. Y finalmente, como no, el “networking” final
con los enganchados de #Android…

Nos vemos en la siguiente!

 Manfred Moser en el CINC
, ,

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
, , ,