Archivo

Archive for the ‘Android’ Category

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.

Anuncios

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

Cuando “medio Android” no es suficiente

La proliferación de dispositivos provenientes del lejano oriente y basados en Android es un hecho. El único problema es que al carecer de los componentes que definen a la plataforma, deja de ser Android.

HalfDroidVeo todos los días infinidad de anuncios de dispositivos tableta (“tablets”) por unos precios como poco que asombrosos. En su publicidad da la impresión de que podrían desbancar al mismísimo iPad (rey indiscutible de éste formato): procesadores de última generación (incluso Tegra 2), memoria a tutti-plen, pantallas grandes… vamos, que es una tentación no comprar el periódico para juntar los cupones y conseguir uno de estos juguetes por apenas cincuenta o cien euros. Y casi todos ellos están basados en el sistema operativo Android de Google.

La ventaja de ser un sistema operativo abierto es que cualquiera puede descargar un “branch” de desarrollo, adaptarlo (de buena o mala manera) a su plataforma y vender un producto con la etiqueta “Android”. Etiqueta que, aunque no garantice su venta, sí la facilita enormemente, por lo menos en ciertos círculos. Y algo parecido escribí hace unos días (quizá demasiados) acerca del intento de Microsoft por entrar en el terreno de los tablets y por qué no debían emplear el nombre “Windows”. Con estos dispositivos debería pasar lo mismo.

Para quien no lo sepa: no hay “un sólo” Android. De hecho hay como mínimo dos. Y no, no me refiero a la versión.

El primero es el Android realmente abierto, el que Google pone a disposición de todo el mundo. Es el núcleo completo del sistema operativo, con su interface de usuario, sus “APIs”, sus drivers genéricos. Pero lo que la gente no sabe (por lo menos en su generalidad) es que éste no es el Android que instalan los grandes fabricantes como HTC, Samsung o Sony Ericsson. Los “grandes” pasan por el “aro” de Google certificando sus dispositivos y que les da el derecho a dos cosas: a colocar el logotipo de Google y – más importante – a instalar los componentes “cerrados” de la plataforma, como son los servicios de mapas (Google Maps) o los componentes que permiten el acceso al MarketPlace de Android. Aquí Google ejerce un férreo control sobre “quien es” y “quien no es” un verdadero dispositivo Android, y si pueden o no poner su logotipo (indicativo de un Android “completo”) en sus creaciones. Y los tablets de oriente, simplemente por costos, no incorporan estas características.

Para colmo, los fabricantes de dispositivos de bajo coste, para contener precisamente eso, los costes, no hacen el menor esfuerzo por optimizar los componentes del sistema operativo “genérico” a sus dispositivos. Con lo cual, además de la ausencia de las partes que hacen que Android “sea Android”, ofrecen un rendimiento lejos de “estelar” en la mayoría, para llegar a ser simplemente deprimentes e incluso rozar lo patético. Y eso a pesar de disponer de la plataforma hardware teórica para hacer un gran tablet.

Resultado? Anuncios de dispositivos que, en lugar (por especificaciones) de ser potencialmente grandes competidores en el mercado, lo único que consiguen es dañar seriamente la reputación del sistema operativo de Google. Usuarios frustrados ven como, después de ver anuncios que le recuerdan todo lo que se puede hacer con Android, no pueden descargar su copia de Angry Birds, ni usar Google Maps o Google Earth, las animaciones de pantalla van a trompicones y, en demasiados casos, ni siquiera pueden emplear el ya habitual gesto de “pellizcar la pantalla” para aumentar o reducir el tamaño de las páginas web que ven con el excelente navegador que Android lleva de serie porque, simplemente, les han vendido un económico panel táctil resistivo en lugar del casi obligatorio hoy en día (y mucho más caro) panel capacitivo. Contención de costes.

La palabra Android puede significar dos cosas: un sistema operativo o una experiencia completa de usuario. Lamentablemente en la publicidad no se distingue entre uno y otro, y la gente asume que Android siempre es lo que ve en la publicidad: una experiencia completa. Y no es cierto: una experiencia Android sin la posibilidad de acceder al MarketPlace, ni poder usar las “aplicaciones insignia” de la plataforma, simplemente no es Android.

Así que cuando veáis un anuncio de un tablet con Android por precios muy por debajo de los de los “grandes fabricantes”, preguntaos cuánto Android estáis comprando realmente. Y mucho me temo que, para la inmensa mayoría de los mortales, la opción de “medio Android” simplemente no es suficiente.

Categorías:Android, Opinión

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”.

Dónde estamos?

Steve (Jobs) tenía razón: el iPad es mágico. Pones 40 unidades en una tienda y desaparecen de golpe…

PlayersEs viernes por la tarde y Vicky y yo salimos de uno de esos centros comerciales llenos de juguetes tecnológicos que tanto me gustan. Íbamos a por algo en concreto, algo que a los dos nos encanta: la nueva entrega de la saga Lego Star Wars. No conseguiré que sea mi artillera de apoyo en Rainbow Six, pero por nada del mundo cambiaría esas tardes que nos pasamos los dos jugando a las sagas de los pequeños muñecos de plástico animados magistralmente por Traveller’s Tales. Casualmente también era el día del lanzamiento en Europa del iPad 2. Y siendo Vicky como es, adicta a su iPad, hicimos el intento de acercarnos por la zona Apple para echar un vistazo al nuevo producto de Apple. Fue totalmente imposible. Una cola de veinte personas esperaban pacientemente que les entregasen sus nuevos iPads, mientras una maraña de gente intentaba (en algunos casos, de forma un tanto agresiva) tocar el maná de Steve que en forma de dos unidades de demostración yacían sobre la mesa – si yo hubiese sido uno de esos iPads, hubiese pasado mucho miedo.

Mientras unos lucen con orgullo su manzanita y otros disfrutan con la inmensa diversidad de sus móviles Android que pululan por todas partes, un tercer participante está oculto en las sombras y no quiere, o no le permiten, asomarse al ruedo: Windows Phone.

Al igual que Vicky no suelta su iPad ni loca, tampoco se te ocurra decirle que le quieres cambiar su LG Optimus 7 por otra cosa. Pero todavía no he visto absolutamente a nadie más (ni siquiera en los círculos “frikis” en los que me muevo) con un teléfono con el nuevo sistema operativo de Microsoft. En las tiendas no hay ninguno, en los mostradores de las operadoras puedes encontrar alguna maqueta si se equivocan y ponen una, y no verás un triste anuncio en televisión o en prensa. Windows Phone 7 no existe para el común de los mortales, a pesar de contar con una base de más de 10000 aplicaciones (y subiendo deprisa, muy deprisa). Me pregunto si será igual en el resto del mundo.

Y mientras espero tranquilamente que la operadora de turno me permita acceder a Nodo en mi HTC Trophy y en el LG de Vicky, pienso en los dos “grandes” del mundo del Smartphone.

Apple tiene, para mi gusto, un hardware absolutamente excepcional. Son bonitos, elegantes (a las mujeres les encantan y eso es un punto francamente importante cuando quieres comprarte un “juguete”, amigo!), y funcionan de maravilla. En cambio en cuanto a software comparte (siempre a mi modo de ver) un “defecto” con su contrincante Android: el concepto “tengo una aplicación para eso”. No va conmigo, que prefiero una experiencia más integrada y que WP7 me provee sobradamente. Pero me parece obvio que, para que unos contendientes tan diferentes se estén disputando a puñetazos el “trono” del “rey del Smartphone” hace falta detrás una plataforma de marketing que sepa hacer su trabajo.

Y eso es lo que parece que Microsoft NO tiene, a pesar de todo el poderío del gigante del software. Estos días veo una caída brutal de precios en dispositivos Windows Phone 7 – prácticamente un 40% menos que hace un par de meses, en los sitios de compra online (si, claro, porque en las tiendas no los tienen y mucho menos libres). Eso, unido a que NoDo para WP7 está listo desde (ejem) el pasado mes de diciembre pero no hay manera de que llegue a nuestros dispositivos y sumado al reciente acuerdo de colaboración con Nokia, me dan que pensar de lo que pueda estar pasando en los despachos.

Por una parte, HTC ve como su mercado basado en el sistema operativo de Windows (con el que siempre han hecho un trabajo excepcional mejorando la experiencia de usuario) se diluye al no poder personalizar el sistema operativo y diferenciarse de sus competidores. Y si el objetivo de la diferenciación es alejarse de Nokia, puede implicar una indecente cantidad de recursos que, simplemente, no compensan el esfuerzo que tendrían que realizar, mientras que su trabajo en Android les ha convertido en el fabricante de referencia de la plataforma. Y otros OEMs con, quizá, menos “poderío” que HTC como son Samsung y LG ven que, de una tarta de la que ya de por sí pueden capturar un trozo bastante pequeño, ahora tienes que compartirla con el nuevo contendiente. Para colmo, ellos no van a tener las facilidades que va a tener Nokia para adaptar la plataforma.

Y no olvidemos a las operadoras. Microsoft no ha conseguido lo que tiene Apple: la capacidad para “saltarse” a las operadoras y llegar directamente a los usuarios con las actualizaciones de sus aparatos. La infraestructura existe, pero no se les permite usarla – las operadoras quieren controlar los dispositivos, básicamente para que, aburrido de esperar una actualización que no llega nunca, te des por vencido y tengas que cambiar de aparato y firmar por otros 12, 18 ó 24 meses de permanencia. Y, por supuesto, que ahora que el personal de las tiendas está perfectamente aleccionado para vender dos plataformas – no sabrían qué hacer con una tercera.

Se quedará Nokia como principal fabricante de móviles Windows Phone 7, junto con algún fabricante chino que apunte al segmento “económico” (el rumoreado Chasis-2)? Abandonarán los demás fabricantes una plataforma que les da prácticamente cero posibilidades de diferenciarse de su competencia? Seguirán las operadoras estrangulando el acceso de Microsoft a los usuarios para que lleguen las actualizaciones?

O eso, o Microsoft tiene preparada una traca con un nuevo móvil y un tablet Windows 8 (no Windows Phone: sólo “WIndows”) con un interface de usuario basado en Metro. Recordemos que Intel, con sus nuevos procesadores Atom, está como loca por entrar en el mercado de los handheld, del que fué desterrada hace mucho tiempo, cuando el mundo decidió que había que usar procesadores ARM. Veremos un tablet capaz de ejecutar Office?

Mientras tanto, los iPads siguen desapareciendo…

Google, tenemos un problema!

Hoy lo he intentado. Tras dejar de lado un rato el desarrollo de LocalizaTodo para iPad para refrescar las ideas y ver cómo soluciono una molesta “característica” de los servicios de mapas de iOS, hoy me decidí a implementar un par de detalles a la versión de Android.

No había vuelto a abrir Eclipse prácticamente desde un par de días después de subir la versión de Android al MarketPlace. Me he centrado sobre todo en sacar la versión de iPhone y darle algo de funcionalidad básica a la versión web. La última actualización importante fue poder por fin usar la última versión de Eclipse y ya me daba por satisfecho. La visita habitual cuando me pongo con un proyecto a developer.android.com me hizo cambiar durante un rato mis planes de la mañana.

Ahí estaba. Por fin! El SDK de Android 3.0, conocido en el mundillo como Honeycomb. Había visto (si, pecado mío) solamente un par de vídeos del nuevo sistema operativo de Google y mi posición era la de “perfecto, la demo genial, ahora quiero tocarlo”. Y montar el SDK me daba la oportunidad de hacerlo gracias al emulador.

Ni que decir tiene que ya tengo experiencia con el emulador de Android. Primero fue WayTRKR, ahora era LocalizaTodo. Ya me había llevado la sorpresa con las últimas versiones de Android: son prácticamente inutilizables en el emulador, a no ser que dispongas de la paciencia (y tiempo!) del mismísimo Santo Job. Pero intentar (ojo: “intentar”) arrancar la nueva bestia de Google me ha hecho pensar. Es totalmente imposible utilizar Honeycomb en el emulador y mucho me temo que muchísimo menos plantearlo como herramienta para el desarrollo de aplicaciones. Es inutilizable.

Imagino que cuando nació el emulador de Android para desarrollo lo más importante era tener una plataforma lo más parecida a un dispositivo real que se pudiese. Lo mismo que pensó Microsoft con sus entornos de desarrollo para Windows Mobile:  emular un hardware de dispositivo completo, con la CPU incluida.

Cuando las PDAs y los teléfonos móviles empleaban procesadores que muchas veces apenas pasaban de los 200Mhz, con 16 MB de memoria y nula aceleración hardware para los gráficos, emular un entorno completo con CPU ARM incluida era fantástico: el mismo binario que probabas en el emulador funcionaba finalmente en el dispositivo real. Lo malo es ahora, cuando las nuevas generaciones de procesadores y sistemas operativos móviles realmente exprimen cada componente de los dispositivos hasta límites ahora ahora desconocidos.

Apple siempre lo ha sabido. Microsoft se dio cuenta de que un emulador hardware completo para su nueva plataforma sería un completo desastre. Los gráficos, las animaciones, los interfaces de usuario modernos exigen una velocidad de proceso que requiere tambien de aceleración en los emuladores.

Tanto Apple como Microsoft ahora lo que yo llamo “emuladores ligeros”: ejecutan una copia del sistema operativo deseado pero compilado para el procesador nativo de la máquina (x86 en nuestro caso). Para Apple implica incorporar dos compiladores diferentes en XCode, uno que genera código máquina x86 y otro ARM. Para el desarrollo se compila código nativo que no es necesario emular: es ejecutado directamente por el procesador de la estación de trabajo para desarrollo, actuando el emulador como una fina capa que traduce los APIs de la plataforma emulada en APIs nativos del sistema de desarrollo. Cuando el proyecto está listo, se compila para el procesador ARM de los dispositivos en los que se va a ejecutar.

En el caso de Microsoft, el uso exclusivo para el desarrollo de aplicaciones “de terceros” de la plataforma .NET + Silverlight tiene una inmensa ventaja: las aplicaciones desarrolladas para Windows Phone 7 (y .NET en general) son totalmente “agnósticas” del procesador en el que corren, al igual que Java. Con lo cual los binarios siguen siendo los mismos, con las ventajas que ello conlleva. Mañana podríamos fabricar un móvil con WIndows Phone 7 con un procesador x86, o MIPS y las mismas aplicaciones .NET correrán sobre ellos sin modificación.

El caso de Google es diferente: el 99% de las aplicaciones Android se desarrollan en Java que tambien es una plataforma agnóstica de procesador. Correrían felizmente en una máquina virtual Dalvik compilada para x86 o cualquier otra plataforma. Pero Google insiste en obligarnos a utilizar un emulador ARM V5 corriendo un sistema operativo diseñado para un procesador ARM11/Cortex A8 de doble nucleo recompilado para que funcione en ese procesador insuficiente, emulado por un procesador x86. Para colmo, el emulador no tiene el menor tipo de aceleración hardware para gráficos, así que las animaciones en pantalla tiene que hacerlas “por software” el procesador ARM emulado. De traca.

Señores de Google, por favor: es hora de tirar el emulador actual y empezar uno nuevo. Pero los que desarrollamos software necesitamos probar nuestros programas en plataformas variadas, con tamaños de pantalla diferentes, varias versiones de Android… Actualmente ni me planteo intentar desarrollar algo para Honeycomb si tengo que hacerlo con ese emulador.