Gizmóvil Responde

El tema Android Vs iOS es un tema muy difícil de tocar y muy en boga, ya que son los dos sistema operativos para dispositivos móviles con más éxito actualmente. Siempre habrá defensores y detractores hacia un sistema y otro, en mi caso les comento para los que no lo sepan que hasta el momento soy fiel usuario de Android, sistema en el cual he encontrado una plataforma que cumple de muy buena manera con mis necesidades, pero también se reconocer las fortalezas del sistema operativo móvil de Apple y las ventajas que pueda llegar a tener en comparación con el de Google.

En esta ocasión dedicaremos la sección "Gizmóvil Responde" a tratar de aclarar la duda que vía Twitter directamente desde Argentina me hizo llegar Germán Viavattene, preguntando acerca de un tema en especifico dentro de la batalla de estos dos sistemas operativos móviles.

.bbpBox51115341350305790 {background:url(http://a0.twimg.com/profile_background_images/66498669/Sin_t_tulo-3.jpg) #000000;padding:20px;} p.bbpTweet{background:#fff;padding:10px 12px 10px 12px;margin:0;min-height:48px;color:#000;font-size:18px !important;line-height:22px;-moz-border-radius:5px;-webkit-border-radius:5px} p.bbpTweet span.metadata{display:block;width:100%;clear:both;margin-top:8px;padding-top:12px;height:40px;border-top:1px solid #fff;border-top:1px solid #e6e6e6} p.bbpTweet span.metadata span.author{line-height:19px} p.bbpTweet span.metadata span.author img{float:left;margin:0 7px 0 0px;width:38px;height:38px} p.bbpTweet a:hover{text-decoration:underline}p.bbpTweet span.timestamp{font-size:12px;display:block}

@chayotux Hola, soy seguidor de giz y quisiera q compares o digas el porque honeycomb no es tan fluido como ios. (soy fan de android)less than a minute ago via web

Este tema en partircular, recientemente lo había discutido con algunos compañeros y me pareció muy buena la explicación que aportó @bcessa, el cual es un muy buen amigo mío y excelente desarrollador. Explicación que servirá para que desarrolle este tema y traté de dejar un poco más clara esta situación.

Para empezar "SI", aunque nos duela a los usuarios de Android más añejos y aferrados, el iPhone y su sistema operativo iOS han sido una gran pareja desde su aparición, consiguiendo un rendimiento y una fluidez en su interfaz que muchas veces causa envidias. Podemos decir cuando sale un nuevo iPhone Killer, como en su momento fue el Galaxy S, que funciona igual o mejor que cualquier iPhone y eso es cierto hasta que comenzamos a instalar aplicaciones y utilizar servicios en segundo plano, cuentas de correo, notificaciones PUSH, etc,. En unas semanas notamos que su rendimiento no es el mismo que cuando adquirimos nuestro dispositivo, ¿A que se debe esto? y ¿Por que no es tan notable en iOS?.

En primera podría decirles lo que todo mundo ya sabe, que iOS al ser desarrollado y adaptado para un solo tipo de hardware es lógico que su funcionamiento deba ser mejor, además que las mismas restricciones del sistema tan cerrado que nos ha dado Apple tiene como consecuencia una gran estabilidad, además de usar un especial modo de multitarea algo limitado. Pero comencemos por el principio, a riesgo de dar una explicación demasiado técnica, trataré de escribirlo de la manera más sencilla posible.

¿Como están desarrollados iOS y Android?

Los sistemas operativos se van armando por capas, tanto Android como iOS son sistemas con base UNIX en su nivel mas bajo, en ese sentido ambos son muy buenos, los problemas vienen cuando subimos a las capas superiores, hasta llegar finalmente al nivel de aplicación de usuario.

Las capas base de iOS son prácticamente un subset de los frameworks de Mac OS, es decir, atrás de ellas hay un trabajo de más de 15 años donde se han ido perfeccionando, son librerías y esquemas de datos escritos en el lenguaje de programación "C" y funcionan como puente directo al kernel implementando todas las funciones necesarias.

Estos frameworks están escritos en su mayoría en ObjectiveC, juntos todos estos elementos crean la plataforma Cocoa, al ser código escrito en C e interactuar directamente con las capas inferiores hasta llegar al kernel, su desempeño y velocidad son notables, a diferencia del framework de Android que esta escrito en Java.

Al estar escrito en java el código de la aplicación nunca interactúa directamente con el kernel, el código se ejecuta dentro de una máquina virtual y como muchos desarrolladores sabrán las JVM (máquinas virtuales de Java) no tienen fama de ser las más rápida, con mejor desempeño o manejo de memoria. Este diseño de sistema presenta serios problemas en varios ámbitos, básicamente tienes un muy buen kernel abajo, y una muy buena aplicación encima, pero en medio una máquina virtual no tan buena que genera un cuello de botella.

Todos recordamos como las aplicaciones en Java generalmente utilizan muchísima memoria y CPU, en si no es que la aplicación necesite de esta memoria, pero las necesidades de la máquina virtual es otro tema, ahora traslademos ese escenario a un dispositivo móvil y como resultado podemos tener varios "problemas", si se les puede llamar de esa manera, por lo que en cualquier móvil basado en Java se puede ver que se reduce considerablemente la duración de la batería y se obtiene un menor rendimiento que una tablet o móvil basado en iOS

Inclusive iOS implementa un proceso que se llama Watchdog, con el cual si tu aplicación bloquea el thread principal de ejecución por un periodo largo de tiempo (15 o 20 segundos) el sistema "mata" la aplicación en cuestión, eso te obliga que como desarrollador se implementen técnicas mas avanzadas de desarrollo como usar threads en el fondo, el resultado es aplicaciones más fluidas.

Conclusión

Espero para empezar no haberlos mareado y no cometer un error técnico en esta explicación, pero más importante aún  haber despejado un poco la duda de esta incógnita que muchos tienen. En resumen Android ni sus aplicaciones son malos ni lentos, solo se echa de menos un poco de mayor fluidez al manejar varios procesos y tener instaladas varias aplicaciones, esto debido al lenguaje de programación que se utiliza para programar dichas aplicaciones, la clave esta en mejorar Dalvik que es la máquina virtual de Java que se utiliza en Android.

Usuarios de Android no se sientan ofendidos, tenemos un sistema operativo excelente y con mucho futuro que de apoco ha ido madurando y conseguido adeptos. Cabe la pena recordar que con cada nueva versión de Android el rendimiento ha mejorado y se han implementado mejoras que harán que en algún momento el rendimiento sea igual o mejor que el de iOS.

Usuarios de iOS no se regocijen mucho ni hagan burla de sus conocidos Androides, los dos sistemas tienen ventajas y desventajas y su uso depende del gusto y necesidades de cada persona, si bien iOS muchas veces muestra una interfaz más fluida, tiene en su contra varios defectos o errores que han ido y seguirán saliendo. Android goza de muchas virtudes, que por algo lo hacen el sistema operativo móvil más utilizado en todo el mundo, además de contar con una comunidad entera de desarrolladores que trabajan mejorando el sistema y publicando ROM's, launchers, aplicaciones que mejoran el rendimiento de cualquier dispositivo Android.

Al igual que Google trata de mejorar la máquina virtual Dalvik (inclusive ya hay proyectos de terceros que pretenden usar otra máquina virtual para mejorar el rendimiento), Apple trabaja incansablemente para mejorar iOS, por lo que al final los consumidores somos los que salimos ganando.

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito

También en Hipertextual: