Antiguo ingeniero de Google explica porqué la interfaz de usuario de Android nunca será tan suave como la del iPhone o Windows Phone 7.

Este es el tipo de noticias que hace que los fanáticos de Android se arranquen los pelos, sobre todo porque no vienen de un fanático del iPhone, ni de un fanático de Windows Phone, sino de un ingeniero de software que hasta hace poco trabajaba para Google directamente con Android.

Sin embargo, mi objetivo no es hacer que nadie termine desquiciado, ni decepcionado, y por eso recomiendo que los fanáticos extremistas y todos aquellos que no sean capaces de asimilar una información de forma objetiva obvien esta nota y pasen a leer cualquier otra.

Una de las cosas que realmente se destaca en un iPhone es la suavidad con que se siente en comparación con el uso de Android. Android como sistema operativo es perezoso, lento, con un intervalo medible entre el momento en que se toca la pantalla y el momento en que el sistema operativo responde, iOS responde instantáneamente. Tan rápido que casi parece anticipar lo que quieres hacer antes de que tu dedo toque la pantalla.

¿Cómo logra Apple hacer eso? Aunque una mejor pregunta podría ser: ¿Cómo lo hace Google en Android? De acuerdo con Andrew Munn, un estudiante de ingeniería de software y ex pasante en Google, "Android es tan mal programado que Google nunca será capaz de igualar el rendimiento de un iPhone o iPad."

Antes de que empieces a negar, negar y negar, mejor echémosle un vistazo a algunos antecedentes interesantes. Anteriormente se decía que la interfaz de usuario de Android era perezosa en comparación con iOS, porque los elementos de la interfaz de usuario no utilizaban aceleración de hardware hasta Android 3.0 Honeycomb. En otras palabras, cada vez que pasas la pantalla de un teléfono Android, el CPU necesita dibujar cada píxel de nuevo, y eso no es algo en lo que los CPUs sean muy buenos.

Ese argumento tiene mucho sentido, excepto por un detalle: no es cierto. Si así hubiese sido, el retardo medible en la respuesta al tacto de la interfaz de usuario de Android habría desaparecido con el lanzamiento de Android 3.0. Y la realidad demuestra que los dispositivos Android siguen teniendo retardo incluso después de instalar Android Honeycomb.

Google como mago de la publicidad y el mercadeo y los fabricantes de móviles Android han ocultado, disfrazado el problema de una forma bastante creativa. ¿Cómo? Aumentando el poder de sus teléfonos, tanto como se pueda y tanto como ese poder permita ocultar su debilidad.

Por tal razón es normal que los teléfonos Android más modernos tengan especificaciones que en muchos casos son mejores que la del iPhone. Por ejemplo, la mayoría de teléfonos Android cuentan con 1GB de RAM y procesadores de doble núcleo a 1.5GHz y hasta de cuatro núcleos, en comparación con el iPhone 4S que cuenta con 512MB y un procesador de doble núcleo a 1GHz, sin embargo, la interfaz del iPhone y del iPad es muchísimo más suave, lo que demuestra que el problema no es de hardware. ¿Entonces cuál es el problema?

La razón por la que Android no puede hacer que su interfaz de usuario táctil, funcione sin retardos, de acuerdo con Andrew Munn es que en iOS, los procesos de representación de la IU se producen con hilos dedicados con prioridad de tiempo real, deteniendo los demás procesos y centrando toda la atención en la representación de la interfaz de usuario. En otras palabras, cada vez que tu dedo toca la pantalla de tu iPhone, el sistema operativo, literalmente, se vuelve loco: "Alguien nos está tocando! Alguien nos toca! Y detiene todo lo demás que está haciendo y se concentra en que alguien está tocando la pantalla".

En Android, sin embargo, los procesos de representación de la interfaz de usuario ocurre junto con el hilo principal y con prioridad normal. En otras palabras, la representación de la interfaz de usuario se hace de la misma manera que lo haría, por ejemplo, si estuvieras descargando de un podcast en el background, leyendo tus mensajes SMS o cualquier otra cosa. Por lo tanto, la interfaz de usuario se ve entrecortada.

Munn explica esto de una forma bastante explícita y a la vez aclara porqué Google fue lo suficientemente estúpido como para diseñar Android de esa manera.

La interfaz de usuario de Android nunca será totalmente suave debido a las limitaciones de diseño que he discutido al principio:

- La representación de la IU se produce en el hilo principal de una aplicación
- La representación de interfaz de usuario tiene prioridad normal

Incluso con un Galaxy Nexus, o en el procesador de cuatro núcleos del Asus Eee Pad Transformer, no hay forma de garantizar una velocidad de fotogramas suave si estas dos restricciones de diseño siguen siendo válidas. Es decir, se necesita el poder de un Galaxy Nexus para acercarse a la suavidad de un iPhone 3G con más de tres años. Así que ¿por qué el equipo de diseño de Android diseñó el framework de representación de esa manera?

Los trabajos en Android comenzaron antes del lanzamiento del iPhone, y por aquel entonces Android estaba siendo diseñado para ser un competidor para el Blackberry. El prototipo original de Android no fue un dispositivo con pantalla táctil. La representación de Android con compensaciones tenía sentido para un dispositivo con un teclado y una rueda de desplazamiento. Cuando el iPhone salió, el equipo de Android se apresuró a lanzar un producto que compitiera con el, pero por desgracia ya era demasiado tarde para reescribir el framework de la interfaz de usuario.

Pero surge otra pregunta: ¿Por qué Google no ha cambiado el framework de la interfaz de usuario de Android? Bueno, la respuesta es simple. Se trata de una tarea de enormes proporciones que requiere que cada aplicación en el Android Market sea re-escrita para soportar el nuevo marco. Eso se tomaría como mínimo un año, y la lógica dice que probablemente eso nunca sucederá.

En otras palabras, para que Google elimine el problema de retardo en Android, básicamente tendrían que destruir todo su ecosistema de aplicaciones. iOS, por otro lado, se construyó desde cero para soportar dispositivos multitouch, lo que demuestra que tan visionario fue Apple y que importante es hacer las cosas bien.

Me encanta cuando alguien que sabe explica las cosas, si hay algún ingeniero de software de Android que esté dispuesto a demostrar que Munn está equivocado, su explicación será bienvenida a través de los comentarios.

Los que quieran más detalle sobre todo este asunto, pueden ver la explicación de Andrew Munn en Google+ haciendo clic aquí. Seguro que habrán algunos fanáticos que querrán explicarle porqué está equivocado...

😉

About Domadis Cabrera

Geek por naturaleza. Technorati por pasión. Emprendedor y amante del buen diseño. Disfruto probando cualquier cosa relacionada con la tecnología, da igual si es software o hardware. Viajero frecuente y amante de la adrenalina. Me divierte solucionar problemas y puedes seguirme en tu red social favorita, sólo tienes que buscarme por mi nombre.

Últimos comentarios

  1. Saul D. 8 diciembre, 2011
  2. Señor Burns 8 diciembre, 2011
    • pepe 19 diciembre, 2011
  3. Enmanuel 8 diciembre, 2011
  4. Pablete 8 diciembre, 2011
    • Sonsoles 8 diciembre, 2011
  5. Benjam1n 8 diciembre, 2011
  6. Sergio Loaiza 8 diciembre, 2011
  7. B4IOS 8 diciembre, 2011
    • pepe 19 diciembre, 2011
      • Fernando 21 febrero, 2012
        • Alex 14 marzo, 2012
    • David Núñez 25 diciembre, 2011
    • Tera 9 enero, 2012
  8. Christian Olivares 8 diciembre, 2011
  9. Walpa 8 diciembre, 2011
  10. Luis 9 diciembre, 2011
  11. beto val 20 diciembre, 2011
    • MAC USER 28 febrero, 2012
      • ferspock 3 octubre, 2012
  12. edgardoweb 24 diciembre, 2011
  13. David Núñez 24 diciembre, 2011
    • MJM 9 mayo, 2012
  14. Diego 27 diciembre, 2011
  15. Eduardo 2 enero, 2012
  16. Hubert 14 enero, 2012
  17. Jalalabuey 1 febrero, 2012
  18. Jessica 8 marzo, 2012
  19. uriel 18 junio, 2012
    • Carlos Alvarenga 22 diciembre, 2012
      • Miss Rabia 23 diciembre, 2012
  20. Jose 1 agosto, 2012
  21. Josep 3 septiembre, 2012
  22. Antonio 13 noviembre, 2012
  23. cry70r 19 diciembre, 2012
  24. Ing_software 19 febrero, 2013

Deja tu respuesta

d74ca0a187f0ec6b40686c25dcd3d262557c7e84d8ef45591f