Archivo

Archive for the ‘Google’ Category

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.