Archive

Archive for the ‘LocalizaTodo’ Category

LocalizaTodo 2.0 para Windows Phone en camino… por fin

Debo confesar que casi me avergüenza escribir este post. Un año sin actualizaciones, sin noticias, sin ninguna mejora que el ya conocido LTM 1.3 disponible para los usuarios de Windows Phone. También hay que decir que es la versión con menos usuarios, pero también se merecen una versión “correcta” del programa. Por fin ha llegado.

Nunca fui feliz con LTM para Windows Phone. De traca, teniendo en cuenta que es la plataforma con la que vivo día a día y con la que más cómodo me encuentro. Las versiones Android e iOS estaban a años luz particularmente en una cosa que considero fundamental: la fluidez y agilidad de uso.

Durante un año – y esto lo saben los que tengo a mi alrededor y me aguantan mientras paso horas sentado delante de un teclado – he buscado usar LTM en “otras” plataformas en lugar de en mi propio teléfono. En casa, en lugar de mi móvil, he estirado el brazo para alcanzar un iPad (de primera generación y herramienta de desarrollo para las versiones iOS de LTM) para hacer cualquier búsqueda o ver cómo iban funcionando las regatas en las que participamos como proveedores de localización. Nunca usaba mi teléfono, ni siquiera hacía “demos” con él. No me he sentido satisfecho.

Y por qué? Pues simplemente la experiencia de usuario no era correcta. Y eso siendo benévolo, debo decir. Mover el mapa de un lugar a otro era simplemente “torpe”. Y si, he dicho “era”…

Hace un tiempo me senté (de nuevo) en casa, decidido a arreglar ese desbarajuste. El problema tenía que estar centrado en un par de decenas de líneas de código – todo lo demás era “correcto”. Así que empecé a asumir todo lo aprendido en otros desarrollos que he realizado en Silverlight y WPF y me decidí a aplicarme a implementarlo en LTM. Se resume en una sola cosa: aplicar aceleración hardware de los gráficos a todo el sistema de mapas.

Y vaya que si se nota. Asumiendo que el hardware puede hacer las cosas infinitamente más deprisa que el mejor software (doloroso, pero cierto), he aprendido a escribir componentes que no intentan hacer las cosas lo más deprisa posible, sino hacerlas de la forma en que el hardware pueda ayudarme más. El resultado es, simplemente, asombroso.

Una vez solucionado el problema de la lentitud del mapa a cualquier solicitud del usuario (exacerbante a ratos), me puse a añadir todo lo nuevo que incluyen las otras versiones de LTM y que ha sido (ríanse, oigan) lo que más tiempo me ha llevado. La parte más compleja ha sido el track.

Pero aquí está: la flamante versión 2.0 de LTM para Windows Phone. A horas de aparecer en el Market (y que os aparezca la notificación de actualización).

LTM-20-WP7-02

¿Qué tiene de nuevo?

Debo decir que “nuevo, nuevo”, poca cosa trae. Más que nada porque ya lo tienen sus hermanos para Android e iOS. Lo realmente “nuevo” va por dentro y es el motor gráfico acelerado por hardware. Si alguno de vosotros puede probar esta nueva versión y compararla con las otras, me encantaría conocer sus opiniones – en serio.

Pero como los usuarios de LTM no tienen por qué leer este blog (seamos realistas: a quien le interesan las interioridades técnicas de un programa salvo a un tecnofriki como yo?), me permito enumerar un poco las nuevas capacidades del programa.

Obviamente, las vistas de barcos y aviones son viejas conocidas de los usuarios. Poco que contar aquí (creo recordar) salvo el nuevo “pulido gráfico” que ha sufrido el programa. Y esto va para todos los usuarios: deberíais notar un importante incremento en la cobertura de aviones (y nuestro trabajo nos está costando). Ha sido uno de los mayores problemas de LTM, uno de los más criticados, y uno de los más difíciles de solucionar. Y no tiene nada que ver con el software, sino con todo lo que hay “detrás”.

ltm-20-WP7-01Finalmente, lo usuarios de Windows Phone podrán conocer la posición de otros usuarios del programa y de nuestro viejo conocido WayTRKR, y publicar la suya si lo desean.

LTM para Windows Phone incorpora un tracker realmente en segundo plano. En las demás versiones, LTM debe seguir corriendo (minimizado, pero corriendo) para publicar la posición – no es el caso de la variante Windows Phone, que utiliza nativamente el sistema de tareas en segundo plano. Usando este sistema, LTM registra un componente separado de la aplicación principal, con un uso mínimo de recursos. El sistema carga periódicamente el componente y le da la oportunidad de realizar su trabajo, conservando la batería para lo realmente importante: lo que el usuario quiera. El inconveniente? que actualmente el track se realizará cada 30 minutos.

Nota abierta a Microsoft: Hola Microsoft. Sí, las tareas en segundo plano están realmente bien, pero por favor: si estáis leyendo esto, permitid a los desarrolladores solicitar otros periodos de trabajo que no sean los “30 minutos” establecidos por defecto. Sí, vosotros y yo ya sabemos de qué API estamos hablando, verdad? Bueno, pues ese. Y sí. me comprometo a complicarme la vida en certificación lo que haga falta. Pero no soy el único que está deseándolo.

Y ahora, qué?

Ahora sólo espero que os guste y que perdonéis el tiempo que he tardado en daros una versión a la altura de LTM para Windows Phone. Probadlo y decidme si está a la altura de vuestras expectativas. Y si no lo está, en qué se puede mejorar.

Con Windows Phone 8 Apollo “en puertas” (se espera para fin de año, junto con Windows 8), aparece una disyuntiva curiosa en el horizonte. Microsoft ha anunciado que todo el software WP7 correrá en WP8 sin modificación. Vale, me quedo tranquilo… pero ya estoy investigando otras implementaciones (WinRT, allá voy!).

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.

LocalizaTodo 2.0 para Android–Empieza la fusión de LTM y WayTRKR

La verdad es que ya tocaba una actualización para LocalizaTodo Mobile, y en esta ocasión la primera en llegar ha sido para la variante Android. El cambio más significativo ha sido la fusión de LocalizaTodo y WayTRKR.

ltm-20-Android

Desde ayer por la mañana la mayoría de vosotros tendréis una actualización para LocalizaTodo Mobile en vuestros móviles Android a la versión 2.0. Por fin hay posibilidad de ver una sección de “Dispositivos Móviles” junto con la información de “Barcos” y “Aviones”, pero éste no ha sido el cambio principal. Desde un principio, y aunque la plataforma Android se presta a ello, encontraba francamente farragoso tener que activar dos aplicaciones – WayTRKR por un lado y LTM por otro – para que uno pudiese “verse a sí mismo” en el mapa. así que me pareció lógico incluir parte de los servicios de tracking en la aplicación. Dado que gran parte del código de track ya estaba hecho para WayTRKR para Android, ha sido la primera plataforma en llegar a sus usuarios. Ahora tocan las demás (Windows Phone e iOS), que se encuentran en su fase final de desarrollo.

Ahora, al abrir la pantalla de configuración, encontraréis controles que hasta ahora estaban en WayTRKR: control del track en línea, selección de perfil de uso, información sobre vuestro identificador de dispositivo, etc.

Pero hay más cambios.

ltm-20-Android-settingsOtro cambio importante ha sido en el protocolo mismo de transmisión. Muchísimos usuarios han padecido el problema de los proxys WAP que las operadoras insisten en preconfigurar en los móviles, a pesar de que éstos hace mucho tiempo que no los necesitan. El resultado es que, con WayTRKR perfectamente configurado y el móvil conectado a Internet, aparecen mensajes de error indicando que no es posible publicar la posición. Un usuario no debe tener que preocuparse por esos detalles.

Por ello se rehizo el protocolo completamente: ahora pasa sin problemas a través de los proxys WAP de la operadora, simplificando la vida de todo el mundo: primero del usuario, que simplemente “usa un programa” sin tener que preocuparse de parámetros (bastante peregrinos) de configuración. También nos hace la vida más fácil a nosotros, que tenemos un problema menos del que preocuparnos. Todos felices. El cambio, pese a sus complejidades, ha valido la pena.

Nunca fué más cierto que todos los Android son iguales…

… o por lo menos eso descubrí, casualmente, cuando haciendo unas pruebas con el emulador de desarrollo encuentro otro usuario que ha registrado mi ID a su nombre. Perplejo por ello me pongo a rebuscar y me quedo sorprendido (y un poco asustado) cuando encuentro documentado un bug que afecta a la versión 2.2 de Android que, para “nuestra desgracia” es la versión más difundida actualmente del sistema operativo: muchos móviles (principalmente de HTC y Samsung) salieron de fábrica con la misma “firma digital” que se supone que debe hacerlos únicos. Al emplear esa firma digital para generar el ID de dispositivo que finalmente se emplea para publicar nuestra posición, el resultado es que todos esos móviles son el mismo.

Lo malo del asunto es cómo solucionarlo. El método que sugiere Google es “contacte con el fabricante o con la operadora para que le actualicen el teléfono”. La risa floja, teniendo en cuenta que lo más probable es que, tras la venta, los fabricantes y operadoras se olviden de actualizar los teléfonos. Hubo que buscar otra solución: Fabricar una firma única nueva en los móviles afectados.

Para la mayoría de los usuarios que utilicen WayTRKR y LTM y que no estén afectados por este bug, verán como los IDs de dispositivo que aparecen en ambos programas son el mismo. En cambio, los usuarios afectados con la “firma digital repetida” es que sus IDs serán diferentes entre WayTRKR y LTM: el primero mantendrá el ID original, obtenido directamente de la firma única del móvil, mientras que LTM, que ya incorpora código para detectar el problema, tendrá que generar un ID nuevo. Por lo menos, éste será único.

De momento, sin GPS

Otro cambio “de toda la vida” del track es que LTM 2.0 no emplea la unidad GPS de vuestro teléfono. La ubicación se obtiene exclusivamente a partir de la red móvil y de los puntos de acceso WiFi cercanos (si lleváis la radio WiFi encendida, claro está). Esto permite algo que era impensable hasta ahora con WayTRKR: llevarlo permanentemente activo.

Aunque la mayoría puede que ni note la diferencia, sí hay una: los tracks en línea de WayTRKR emplean la unidad GPS del móvil y tienen mucha más información y son bastante más precisas. Así que si necesitáis que vuestros tracks sean precisos al centímetro, seguid haciendo track con nuestro querido WayTRKR: siempre podéis tener las dos aplicaciones abiertas a la vez.

El siguiente paso: añadir la posibilidad de “track de alta calidad” en LTM, empleando el GPS. Al tiempo.

Y para los demás?

Los usuarios de Windows Phone y iPhone/iPad tendrán que esperar un poco más para la llegada de la versión 2.0 de sus respectivas plataformas. Pero tampoco tendréis que esperar mucho: ambos programas están en la fase final, ya funcionan (en su mayoría) y pronto estarán disponibles tras el correspondiente proceso de certificación por parte de los respectivos “markets”:

LTM-WP7-20-1

En la imagen podéis ver LTM 2.0 para Windows Phone 7, mostrando la posición de mi iPad corriendo su versión de LTM. Y aquí, el control del track en el iPad:

LTM-20-iOS-iPad

Cuanto falta? Poco… falta poco. En cuanto estén disponibles lo publicaré… pero seguramente y si habéis leído esto, ya no necesitaréis saber qué lleva de nuevo.

Ya no habrá LocalizaTodo para iPad… algo mejor está en camino

Hace meses que estaba buscando ratos para completar la versión para iPad de LocalizaTodo. La versión de iPhone me gusta mucho, pero hay que reestructurar un montón de cosas para la “pantalla grande”. Hace un mes, viendo lo difícil que se estaba poniendo mantener las dos bases de código actualizadas, decidí dar un tijeretazo y empezar de cero: LocalizaTodo 1.3.

En un post anterior ya hablaba de LocalizaTodo para el iPad. La idea se mantiene, pero no como una aplicación aparte: LocalizaTodo ya no es “para iPhone” o “para iPad”, ahora LocalizaTodo es una aplicación Universal y corre en todas las plataformas, aprovechado lo mejor de cada una de ellas. Con la ventaja de que el código principal es idéntico en ambas.

Otra de las cosas que me empujaron a la “complicación” de hacer una aplicación universal eran los usuarios de LocalizaTodo que tienen un iPad y ya compraron el software. No me parece de recibo que tuviesen que comprar otra versión diferente (y volver a pagar por ello) por poder aprovechar realmente su dispositivo, aunque muchos proveedores de software han encontrado en esta mecánica una curiosa forma de “duplicar” beneficios, muchas veces incluso incrementarlos, dado que las versiones “HD” del software (aquéllas destinadas al iPad) suelen ser más caras (a pesar de hacer lo mismo) que sus “hermanas pequeñas de iPhone”. Nosotros no queremos eso.

LTM-U-01

Los usuarios de iPhone apenas van a notar un par de cambios en la pantalla principal una vez tengan instalado (o actualizado) su móvil con la nueva versión. En la barra de herramientas aparece un nuevo botón, que nos permite ubicar nuestra propia posición en el mapa:

LTM-U-02

Además, aprovechando la posición del usuario, ahora todos los elementos que se seleccionen incorporarán un nuevo dato: la distancia desde donde estemos:

LTM-U-03

Además, he cambiado la pantalla de configuración… Sí, la que había era muy mona con ese “page curl” tan simpático, pero estaba todo tan “apretado” que era difícil interpretar y manejar los controles. Ahora la configuración aparece en una pantalla aparte, con más separación entre los distintos elementos.

Pero lo realmente llamativo será lo que ocurra en aquéllos afortunados poseedores de un iPad cuando actualicen la aplicación y sean recibidos con esto:

LTM-U-04

Si, es el mismo programa, el mismo código, todo “igual”… solo que la experiencia no tiene nada que ver (os lo aseguro). Realmente. La posibilidad de poder buscar directamente desde la pantalla del mapa agilizan enormemente el uso del programa, al igual que ajustar parámetros en la configuración:

LTM-U-05

Si todo va como espero, en unos días vuestros iPhones, iPods e iPads (suena raro, no?) os recordarán que tenéis una actualización pendiente – LTM 1.3 ya está en proceso de certificación del AppStore.

Categorías:Apple, Desarrollo, LocalizaTodo Etiquetas: , ,

Y tras 18 meses… WayTRKR 2.0 Beta 1

Llevaba muchísimo tiempo sin escribir en éste blog, pero nada comparado con el tiempo que llevaba languideciendo la versión para Android de WayTRKR. Por fin he tenido oportunidad de darle un repaso y ponerlo al día con esta versión beta.

Aparte de estar prácticamente entero rehecho por dentro, también me he dedicado a hacer algo que me apetecía muchísimo desde hace igual de tiempo: dar mucha más información en la pantalla de GPS y, de paso, actualizar un poco el formato. Lo que me prometí a mí mismo en el proceso es que WayTRKR seguiría funcionando en prácticamente cualquier móvil Android que hoy en día esté en funcionamiento, y eso incluye la versión 1.5 del sistema operativo.

Esta ha sido la mayor complicación del proceso: aprovechar de la mejor forma posible la gran variedad de pantallas que hay disponibles pero empleando “sólo hasta” el API de Android 1.5, con serias limitaciones para especificar formateos que se adapten bien a resoluciones que, por aquél entonces, simplemente no existían. En algunos momentos tuve la tentación de tirar la toalla y simplemente decidirme a soportar de Android 2 en adelante.

Afortunadamente no ha sido el caso, y la verdad es que siento una especial satisfacción por un resultado que encuentro muy satisfactorio. De hecho, aunque sea “a martillazos”, es agradable comprobar como el sistema operativo “1.5” puede adaptarse con bastante soltura a entornos que “no conocía”. Eso sí: toca retorcer un poco (o quizá bastante) los servicios de layout de Android.

Aparte de “lo obvio” que se observa en las nuevas pantallas, por dentro los cambios han sido muy significativos. Para empezar, los adaptadores de unidades de la versión 1 han sido totalmente reemplazados por una versión derivada del que empleo en LocalizaTodo Mobile. Ya puestos también he incluido el adaptador de coordenadas. Iba en el lote, así que…

WTAndroid201-1

Lo principal en la pestaña de información de GPS es la nueva información que aparece: la altitud actual y la distancia recorrida para el track en curso. La altitud jamás había sido soportada por WayTRKR (salvo en otra versión de la que hablaré más adelante y que nunca vio la luz) y ahora se incluye no solo en los archivos de track opcionalmente, sino en la misma pantalla principal. La distancia recorrida era un oscuro campo interno en unidades extrañas que gracias a la nueva presentación consigue llegar al usuario.

La brújula es “herencia” de esa otra versión de la que hablaba antes, y la he implementado en esta versión por nostalgia. Está sin acabar, pero quería ver el efecto en el interface de usuario. Puede funcionar de dos formas, configurables por el usuario: bien rotando la “aguja” o bien rotando el “bisel”.

Otra información añadida en la sección de “Estado” es la calidad de la información de GPS, información que anteriormente no se veía en ningún lado. WayTRKR requiere que la información de localización tenga una precisión mínima, y ahora podremos verlo al lado del estado: un mensaje “Fix/15m” indica que el fix es válido con una precisión de 15 metros. Un mensaje “Sin Fix/50m” significa que, aunque el GPS nos esté dando una posición, WayTRKR la está ignorando por ser insuficientemente precisa.

Cielos, floto!

Pues si, gracias a los nuevos tracks “3D” gracias a la altitud, me llevé una sorpresa tras completar el primer recorrido “real” probando WayTRKR en un Samsung Galaxy S: todo el recorrido lo hice en “vuelo rasante”, a unos cincuenta metros del suelo:

GPSAltitude

El por qué es sencillo: he seleccionado uno de los puntos del recorrido, donde además de la velocidad ahora se incluye la altitud: 725 metros, o por lo menos, eso fue lo que dijo el GPS del Samsung. El problema es que la altura real de ese punto es de 649 metros sobre el nivel del mar (como puede comprobarse en la parte inferior de la pantalla). La explicación del desfase es sencilla: un GPS no sabe a qué altitud sobre el nivel del mar está, sino a qué distancia está de los satélites. Para calcular la altitud sobre el nivel del mar hacen una proyección sobre una elipsoide que define el achatamiento “medio” de la Tierra. Y el problema es que la Tierra no es una geometría “perfecta”: en algunos puntos el terreno es más alto, en otros más bajo. Para colmo, puede que otros GPSs apliquen una proyección diferente, con lo cual el efecto final dependerá del teléfono y de la unidad GPS que lleve.

Resultado? Pues el que podéis ver en la ilustración: un recorrido flotando sobre la M30 de vuelta a casa. Fascinante.

La pregunta ahora es: ¿y para qué sirve entonces un track con altitud? Pues si os movéis a pié o en un vehículo terrestre, francamente para poca cosa, a no ser que queráis conocer al detalle los desniveles, socavones, baches y demás características del terreno. Si no, mi recomendación es desactivar la altitud. Pero si un día tenéis oportunidad de subir en un ultraligero o un parapente, es el momento perfecto para activarlo!

Y ahora que habéis leído todo esto y si todavía os quedan ganas de probarlo, el link para descargarlo directamente es éste: http://www.localizatodo.com/waytrkr/beta.htm. Solo una cosa más: los archivos de track se guardan en una carpeta “WayTRKR” que aparecerá en el directorio raíz de la tarjeta de memoria. Si, lo sé… es una de esas cosas para mejorar!!!

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!

Tercera parte: LocalizaTodo 1.2, ya disponible en el Marketplace de Android

Se completa la familia con la puesta al día de la versión Android de LocalizaTodo.

A diferencia de las otras versiones, escribo esto un día después de que haya aparecido en el Marketplace (y que todos los que lo descargaron en su día hayan accedido a la actualización). Es lo que tiene el mercado de aplicaciones de Android, donde no existe el proceso de validación y las aplicaciones se publican al instante.

Esta versión incluye todas las mejoras de las versiones iOS y WP7, como la información detallada, los selectores de unidades, formatos de coordenadas, etc, pero también ha recibido un trabajo de puesta a punto “por dentro” que necesitaba con alguna urgencia. La principal diferencia entre la plataforma Android y las demás es la fragmentación de dispositivos: mientras en Windows Phone 7 sólo hay que “pensar” en un formato final, o dos para iOS (a saber: pantalla “normal” de las versiones 3G y 3GS y “Retina” del iPhone 4), para la plataforma Android hay que pensar en infinidad de plataformas, formatos, velocidades de procesador, tamaños de pantalla y versiones del sistema operativo, cada una de ellas con un funcionamiento “ligeramente” distinto. Y sí, esta versión sigue funcionando en un Android 1.5.

LTM-4

Y ahora, qué?LTM-5

Esto completa la familia LocalizaTodo en su versión “móvil”. Hay dos versiones más, de las que apenas he comentado nada, que son la versión web disponible para todo el mundo en www.localizatodo.com/fast y que ha servido de “banco de pruebas” para todas las demás y la versión iPad que lamentablemente tengo bastante abandonada, pero que espero retomar con la dedicación que se merece.

Ahora toca un breve paréntesis en el desarrollo de LTM para dedicarme a otro proyecto, mucho menos “vistoso” pero imprescindible para seguir dotando a LocalizaTodo de “ojos” y “oídos”.