viernes, noviembre 23, 2007

Así es Android: componentes de software para el mundo móvil

Google ha hecho públicos los detalles de su sistema operativo Android para móviles, comenzando por el kit de desarrollo de software (SDK). Parece que será fácil crear aplicaciones para Android. Lo más interesante es que Android hace especial hincapié en los componentes de software, animando a los desarrolladores a crear módulos de software que se puedan compartir con los de otros desarrolladores y reutilizar entre aplicaciones. Es un espíritu similar al de los mashups del mundo de las aplicaciones web, aunque la tecnología en juego sea bastante distinta.

Si los desarrolladores le siguen el juego a Google, ello podría hacer de Android un entorno de desarrollo muy flexible y atractivo.

Google ha ofrecido 10 millones de dólares en premios a las mejores aplicaciones para Android. Se trata de una cantidad de dinero extraordinaria en el espacio de las aplicaciones móviles, donde los programadores están acostumbrados a la mera subsistencia, con algún gran éxito muy ocasionalmente. En comparación, 10 millones de dólares son más que el presupuesto total de marketing que tuve durante mi último año en PalmSource.

Debe ser estupendo trabajar en una empresa que dispone de recursos financieros ilimitados.

El precio también indica algo sobre la estrategia de Google respecto a Android: recopilar un montón de aplicaciones atractivas que generen demanda de teléfonos Android por parte de los usuarios. En mi opinión, sí que conseguirán dichas aplicaciones, pero está por ver si darán lugar a demanda por parte de los usuarios. Contar con una amplia base de aplicaciones tampoco nos ayudó tanto como sería de esperar en PalmSource.

La otra novedad interesante es que se trata de un entorno de desarrollo completamente basado en Java, con un gran número de extensiones aportadas por Google para aspectos como el multimedia y la gestión tipográfica. Aunque Android está basado en Linux, creo apreciar que se utiliza estrictamente a modo de fontanería: las aplicaciones no pueden acceder directamente a él (al menos, en la versión actual). El intercambio de datos entre las aplicaciones, así como el acceso de las mismas a las funciones del teléfono, pueden ser bloqueados por la operadora o por el fabricante del terminal.

Ello debería hacer de Android un sistema operativo bastante seguro, si bien no resultará nada divertido para los programadores que gustan de trastear con los niveles más bajos del SO.

¿Llegará Android a ser un ejecutable independiente? La dependencia de Java plantea la posibilidad de que la capa de aplicaciones de Android sea convertida a otros sistemas operativos. En mi opinión, ésa sería una estrategia bastante ingeniosa por parte de Google, pues le permitiría impulsar la experiencia de las aplicaciones en una gran variedad de teléfonos. Pero no sería una capa ligera, ya que Google ha construido sobre Linux una gran cantidad de middleware que probablemente también habría que convertir. A menos que Google diseñe las aplicaciones de Android para que sean transportables, que es algo que nadie ha mencionado, me temo que la conversión sería bastante laboriosa.

Otros aspectos del SO:

  • Las funciones contempladas en el SO son un navegador incorporado, gráficos en 2D y 3D, base de datos SQLite, reproducción de audio y de vídeo, GSM, Bluetooth, WiFi, telefonía 3G, cámara, brújula, GPS y acelerómetro (si el teléfono dispone del hardware adecuado). Es decir, una lista de funciones bastante estándar.
  • También existe un conjunto de API opcionales, que pueden ser evitadas por cada operadora o fabricante de teléfonos. Entre ellas figuran las API de cartografía y la mensajería 'peer to peer' entre teléfonos. Google ha presentado este tipo de mensajería como una manera de que dos usuarios jueguen a las damas, pero también se podría emplear para crear una aplicación de mensajería instantánea que evite los SMS. Será interesante ver si las operadoras lo admiten en sus redes.
  • El entorno de desarrollo es un complemento para Eclipse, otro enfoque estándar. El SDK incluye un emulador para probar las aplicaciones antes de que exista el hardware para ellas. Eso era fundamental, ya que todavía falta más o menos un año para que lleguen los teléfonos Android.
  • Las aplicaciones básicas que se incluyen con el SO son las de correo-e, SMS, agenda, navegador, listín y mapas. La única que destaca por poco habitual es la de mapas.
  • Se ha previsto el soporte de hilos multitarea, y las aplicaciones pueden funcionar en segundo plano (lo que debería permitir cosas como escuchar un MP3 mientras se navega).
  • Cada aplicación funciona en su propio proceso Linux separado. Ello contribuye a la seguridad. Las aplicaciones siguen funcionando hasta que dejan de ser necesarias y el sistema decide que necesita la memoria que ocupaban. Esto puede parecer un poco extraño. Windows Mobile también tiende a dejar el código funcionando hasta que necesita el espacio, y ello ha dado lugar a problemas de rendimiento y de estabilidad. Es de esperar que Android gestione mejor las cosas.

    Otra de las advertencias de Google es que si nuestra aplicación no utiliza las llamadas adecuadas para explicar lo que está haciendo, el SO podrá dar por supuesto que no es importante y cerrarla de manera arbitraria. Lo mismo podrá ocurrirle a una aplicación bien escrita, en caso de que el sistema se quede sin memoria. Ello asusta un poco, pues podría dar lugar a la pérdida de datos, especialmente si el usuario arranca muchas aplicaciones.

    Puede que esté anticuado, pero personalmente prefiero que las aplicaciones sólo se cierren cuando le doy al botón de salir.

  • El modelo de seguridad está fuertemente compartimentado, de modo que las aplicaciones están aisladas entre sí. Para salir del 'cajón de arena' (a fin de intercambiar datos con otra aplicación, consultar el listín de direcciones o acceder a las funciones telefónicas), las aplicaciones tienen que solicitar permiso en el momento de ser instaladas. Los permisos se basan en "autoridades de confianza e interacción con el usuario". En otras palabras, una operadora o fabricante de móviles podrá bloquearlas, y de no hacerlo tendrá que ser el usuario el que conceda los permisos. Cuando se ejecute la aplicación, no se le volverá a preguntar al usuario: si no se concedió permiso al instalar la aplicación, ésta simplemente fallará. Me temo que este sistema va a constituir un grave problema de soporte, porque significa que la misma aplicación que funciona en un teléfono si éste está conectado a una red, podrá no funcionar cuando el mismo teléfono esté en otra red. Les deseo suerte cuando se lo expliquen a los usuarios.

    También puede que Google confíe en que las quejas de los usuarios obliguen a las operadoras a activar los permisos.

  • El interfase de usuario es mejorable. Google afirma que todavía está trabajando en el interfase de usuario de Android, y me alegro. Engadget ha publicado una serie de capturas de pantalla del interfase en su estado actual, y yo le veo unos cuantos problemas:

    Lo primero que me preocupa es el carrusel de iconos de la parte inferior de la pantalla.

    Android v. Yahoo

    Me parece un diseño excelente, pero me recuerda enormemente al interfase de Yahoo Go. Puede ser una simple coincidencia, pero últimamente Google muestra una preocupante tendencia Microsoftiana a tomar ideas prestadas de otros.

    El diseño general del interfase es relativamente limpio, al menos si se compara con el revoltijo excesivamente diseñado que presentan muchos teléfonos avanzados. Pero está optimizado para que se vea bien en una pantalla de ordenador, no para ser utilizado en un teléfono de verdad.

    El problema es el contraste. La mayoría de los ordenadores se utilizan en interiores, en habitaciones iluminadas con moderación. En cambio, los teléfonos móviles se utilizan en todo tipo de situaciones, incluso al aire libre a plena luz del sol. En tales condiciones resulta muy fácil que se pierdan las sutiles diferencias de contraste entre el texto y el fondo. Por ejemplo, miren la pantalla siguiente:

    ¿Se ve bien en el ordenador, verdad? Pues ahora vamos a reducir la misma imagen al tamaño que tendría en un teléfono:

    Así el texto ya es difícil de leer. Ahora lleve su ordenador afuera, a plena luz del sol. En serio, hágalo; yo le espero aquí...

    ¿Ya? Como habrá visto, las palabras "Call Back", "Done" y otras prácticamente desaparecen, porque están escritas en gris oscuro sobre fondo negro. En las capturas de pantalla de Google encontrarán muchos otros ejemplos.

    Mi recomendación a cualquiera que se dedique a crear interfases para teléfonos: blanco sobre negro, negro sobre blanco y letras grandes. Puede que no sea el diseño más bonito del mundo, pero al menos la gente podrá utilizarlo.

Consecuencias para la industria

Sigo creyendo que el éxito definitivo de Android dependerá de la creatividad de los dispositivos que se construyan sobre él, y no podremos juzgarlo hasta que dichos dispositivos salgan al mercado. Entretanto, estaremos atentos al tipo de aplicaciones que vayan apareciendo. Con toda seguridad, Google podrá excitar a los desarrolladores, especialmente si les suelta carretadas de dinero. Ello constituye un reto para Microsoft, y sobre todo para Symbian, que vienen luchando por lograr que los desarrolladores trabajen con sus API nativas, que son muy complicadas. Cuanta más actividad de programación absorba Android, más les costará a las otras plataformas conseguir el apoyo de los desarrolladores. El diseño de Android es mucho más claro que el de plataformas más antiguas como Symbian, y el modelo de desarrollo por componentes podría impulsar la creación rápida de un gran número de aplicaciones interesantes.

¿Se limitará Android al espacio de los móviles

Ésa es la otra pregunta clave. En el modelo de desarrollo de Android no hay nada que lo limite a los teléfonos móviles, y de hecho Google asegura abiertamente que es apropiado para el uso en todo tipo de dispositivos. Esperemos unos cuantos años a que madure el parque de aplicaciones para Android. Si lo hace bien, podríamos acabar viendo dispositivos Android que aspiren a competir directamente con el PC.

No hay comentarios.: