Archivo

Archive for the ‘iPad’ Category

LocalizaTodo 2.0 para iOS ya está disponible… y una actualización va en camino

Por fin, y tras unos cuantos tropiezos, LocalizaTodo 2.0 para iPhone, iPad e iPod Touch ya está disponible en el AppStore. A continuación, las novedades y las anécdotas de este lanzamiento.

Y mira que le dí vueltas y vueltas, intentando asegurarme (aunque todos sabemos que es imposible) que todo iba a funcionar bien y a la primera. Pero no, como ya sabemos Murphy es un cachondo y nada mejor que un montón de usuarios jugando con las nuevas versiones para descubrir un problema que había pasado totalmente desapercibido.

Pero primero, vamos a las novedades. Como ya podréis imaginar, LocalizaTodo 2.0 (al igual que su hermano para Android) ya dispone (por fin!) de su correspondiente “mini-WayTRKR” integrado que permite publicar la posición de uno en línea y así poder ser localizado tanto por otros usuarios de LocalizaTodo Mobile como desde la web de LocalizaTodo:

LTM-IOS-20-01

Otro cambio que notaréis es que ahora, además de mostrar la dirección postal en vuestra posición, también la muestra para todos los demás… cuando su perfil sea “peatón” o “vehículo”!!

Acceder al tracker integrado es sencillo: hay un botón dedicado en la misma pantalla principal que abre la pantalla de configuración:

LTM-IOS-20-02

Para la mayoría de los usuarios de WayTRKR en general y de LocalizaTodo Mobile en Android, todo será muy familiar, excepto la última opción: poder definir la precisión del track. Esta opción permite decidir cuánta batería queremos gastar (a cambio, claro está, de la calidad del track). El problema del GPS es su enorme consumo de energía, que acorta la vida de la batería de forma dramática. LTM para iOS puede hacer track tanto con redes celulares y WiFi como con GPS.

Seleccionando “Nunca”, LTM sólo empleará las redes celulares y WiFi para obtener una ubicación. Esto permite mantener activo el track permanentemente sin que nos quedemos sin batería en pocas horas. La calidad de la ubicación dependerá de la cobertura móvil (sobre todo cuántas antenas pueda “ver”) y de los puntos de acceso WiFi que se vaya encontrando, pero es con diferencia la mejor opción en entornos urbanos, donde muchas veces (sobre todo en calles estrechas) es prácticamente imposible obtener un fix GPS.

Las opciones “En ejecución” y “Siempre” activan el receptor GPS. Con la primera opción el tracker de LTM activará el GPS cuando la aplicación esté en uso, pero volverá a la modalidad de bajo consumo una vez que se cierre y nos pongamos a hacer otra cosa. Y como habréis podido imaginar, la opción “Siempre” hace que el GPS esté permanentemente encendido (ojo con la batería!). Eso si: el track va al centímetro.

Mi ubicación

Un pequeño cambio, pero muy útil: al pulsar sobre nuestra propia ubicación aparecerá la información que tengamos publicada en ese momento, pudiendo ver de forma sencilla si el track está activo y el momento en que se ha enviado la última actualización. En la primera imagen sólo se presenta la información de la ubicación actual, en la segunda se presentan también los datos que está viendo el “resto del mundo”:

LTM-IOS-20-04

El ID de dispositivo…

Esa es una larga historia. Hasta iOS 4 (creo recordar), el sistema operativo ofrecía a las aplicaciones una “firma digital” única para el teléfono, al igual que hace Android o el difunto Windows Mobile. El problema es el mal uso que se ha hecho de ella: muchas aplicaciones usan esa firma “tal cual” con lo que es posible hacer un seguimiento de las actividades de los usuarios. Visto lo visto, Apple cortó esa forma tan poco elegante de identificar al personal y de hecho cualquier aplicación actual que use esa firma no es aceptada en el AppStore. Había que buscar alternativas.

Lo único que se me ocurrió fue algo parecido a lo que tuve que montar en Android y su famoso “bug del ID repetido”: generar una firma aleatoria y guardarla en alguna parte. Y de hecho es lo que estoy haciendo y la verdad es que funciona muy bien, con una ventaja adicional: al usar el almacén de seguridad del teléfono (el ID va encriptado) se guarda con los backups de iTunes. Así que ya sabéis: cuando cambiéis vuestro iPhone 4 por un flamante iPhone 4S (o lo que venga) y uséis iTunes para guardar todo lo que teníais en el teléfono viejo y lo reinstaléis en el nuevo, vuestro ID de dispositivo irá con vosotros. Una comodidad más.

Por cierto y para los curiosos: si queréis conocer vuestro ID de dispositivo (muy útil para hacer búsquedas de recorridos en la web de LocalizaTodo, lo tenéis en la pantalla de “Acerca de”:

LTM-IOS-20-03

Y las pegas?

La primera, que nos hizo perder un par de días, fue un problema “semántico”: tras la semana de espera habitual hasta que llega el momento de la revisión, recibo un email de Apple en el que se me indica: “la aplicación ha pasado la certificación pero no puede publicarse por un error en los metadatos”. Arrea. Lo primero que pensé es si había utilizado un XCode “beta” (que no se pueden usar para subir aplicaciones al AppStore) o algún parámetro erróneo en el info.plist (cantidad de problemas si metes la pata con alguno de sus contenidos) o cualquier otra cosa. El email me dirige al “centro de resoluciones” donde obtendré más información acerca del problema.

Con manos temblorosas temiéndome lo peor (“se me ha ido la mano usando el keychain?” ó “estoy abusando del permiso de ejecución en background?”) encuentro la explicación: la aplicación viola el punto 2.16 del proceso de certificación.

Lo espectacular llegó cuando me releí la documentación al respecto y compruebo en qué consiste esa regla: “una aplicación no podrá solicitar un permiso de ejecución en segundo plano y usarlo para otra cosa”. Vamos a ver… LTM solicita permiso para correr en segundo plano para tareas de localización y es precisamente lo que estoy haciendo… dónde está el problema?

Cuando una aplicación solicita hacer algo en segundo plano debe indicar qué va a hacer. Actualmente sólo se permite correr en segundo plano para ofrecer servicios de localización (como LTM), voz sobre IP, música, proceso de descarga en segundo plano del Quisco, manejo de accesorios hardware externos y para servicios de conectividad Bluetooth. Nada más. Y ha habido aplicaciones que han intentado usar los permisos de ejecución en segundo plano para hacer “otras cosas”, como por ejemplo solicitar “ejecución en segundo plano para reproducir audio”, cuando lo que realmente hacen es actualizar un feed RSS o de Twitter sin reproducir ningún tipo de música. Ese tipo de aplicaciones son rechazadas, precisamente, por violación del punto 2.16. Pero… y LTM?

Profundizando en la documentación, encuentro la causa real: no he incluido en la descripción del producto un aviso haciendo saber al usuario que si usa el GPS en segundo plano la duración de la batería será acortada “dramáticamente”. En este momento no sabía qué pensar. “Qué tiene ésto que ver con la regla 2.16?”. Respuesta fácil: absolutamente nada. De hecho, en absolutamente ninguna parte de la guía de certificación se exige este aviso.

Me parece estupendo (sinceramente) el esfuerzo que hace Apple por dar la mejor experiencia posible a sus usuarios, pero esta anécdota simplemente me demuestra que la guía de certificación tiene que ser más dinámica y ahora se están aplicando reglas que aún no están definidas pero SI son efectivas. No se pueden aplicar reglas no escritas, que ya es bastante duro cumplir con las que sí lo están.

La otra pega es muchísimo más tonta, pero lamentablemente muy llamativa: LTM procesa incorrectamente las descripciones que incluyen caracteres internacionales (aunque los maneja estupendamente en cualquier otra parte, como por ejemplo las direcciones). El problema lo tienen tanto LTM para iOS como para Android, y ambas versiones ya están corregidas: la versión Android estará disponible en unas horas y la versión iOS ya está en proceso de certificación (otra vez!!).

Y ahora qué?

Lo principal es corregir ese problema tan llamativo y que cualquier “Muñoz” pueda sentirse orgulloso de su apellido (y su eñe) y usarlo con libertad para publicar su posición. Y lo siguiente será completar la familia: la versión 2.0 de LTM para Windows Phone 7… ¡que ya toca!

Los que ya tengáis LTM para iOS seguramente ya lo tendréis actualizado. Para los que no, podéis descargarlo desde aquí – si todavía veis “versión 2.0.0” ya sabéis: se está certificando.

Anuncios

Ya arranca (y primeras imágenes): LTM para iPad

Ha habido que rehacer más cosas de las que yo hubiese querido, pero ya funciona. Ahora toca la fase de diseño del interface de usuario, y ver qué hacer con todos esos metros cuadrados de pantalla que le dan una nueva dimensión a LocalizaTodo Mobile.

Lo primero que notas cuando haces el primer “port” de la aplicación es que los diálogos que hay que utilizar en las versiones “de bolsillo”, simplemente no funcionan. Demasiado espacio desperdiciado, cuando albergar muchas de esas cosas en la misma pantalla principal es mucho más lógico. No podía ni plantearme reutilizar muchas cosas que había hecho para iPhone pensando que tendrían su uso en el hermano de pantalla grande de la familia.

LTMPad-05El primer salto fue integrar la búsqueda directamente en la pantalla principal. Usar un diálogo separado para ello simplemente “no funciona”, y fue la transición más compleja con diferencia de todo el proyecto, debido posiblemente a ser mi primer contacto con los popovers de iPad. Por cierto, señores de Apple: tanto cuesta documentar cómo obtener una barra de título “estándar” en dichos controles?

Lo segundo (e igual de obvio) es que no podía presentar la información tal y como hago en las versiones pequeñas, reservando un trozo de pantalla en la zona superior: simplemente queda demasiado grande, y el cuadro queda totalmente “desvinculado” del elemento al que queremos dar referencia: vuelta a la mesa de diseño, opté por la opción que ya había utilizado en LocalizaTodo Fast: el mismo control, pero de dimensiones más contenidas y al lado del elemento en cuestión.

Continuando con el panel de información, he aprovechado para darle un buen repaso por dentro, y ahora se adapta muchísimo mejor a los contenidos y a los tamaños – se acabó el nombre de la mitad de los barcos cortados por ser “demasiado” largos. Esta mejora la “heredará” automáticamente la versión iPhone en su próxima actualización.

LTMPad-02

LTMPad-01

Obviamente, no nos hemos olvidado de los aficionados a los aviones:

LTMPad-03

Queda bastante trabajo todavía para terminar de pulir esta versión, pero aquí están los primeros resultados. Cuando estará disponible? Espero que pronto – solo me queda esperar comentarios acerca de lo que estáis viendo!