Si hace unos años los sistemas operativos móviles luchaban por ofrecer el mayor número de funcionalidades posibles, hoy la guerra se libra en el terreno de la optimización y la experiencia de usuario. En este caso, iOS siempre se ha declarado el claro vencedor respecto a otros rivales como Android, Windows Phone o BlackBerry OS. No en vano, hoy vamos a comparar los dos sistemas más importantes en el mundo de la telefonía – Android y iOS – explicando las razones por las que el sistema de la manzana funciona de forma mucho más fluida en un hardware con menor potencia.

Y es que si intentamos explicar la optimización en los equipos de iOS, es casi inevitable no mencionar que la empresa californiana fabrica el hardware y desarrolla el software de forma conjunta, por lo que a la hora de optimizar el código, sólo tendrán que hacerlo para unos cuantos dispositivos, a diferencia de Android. Partiendo de esta premisa, pasemos a explicar de forma mucho más técnica las razones por las que iOS funciona mucho mejor que Android (aunque a día de hoy esta afirmación es un tanto atrevida).

En primer lugar, el código de desarrollo

La principal razón por la que Android funciona de forma menos ágil que iOS reside en la base del sistema: Java es el código en el que sus aplicaciones están escritas. A simple vista puede parecer que carece de importancia, pero los que desarrollamos en este lenguaje conocemos las limitaciones del mismo al ejecutarse bajo una máquina virtual. Esto, como todos los lenguajes, conlleva una serie de ventajas y desventajas, entre las que se incluye la correspondiente pérdida de rendimiento. Sin embargo, la principal ventaja de este es su compatibilidad con cualquier tipo de hardware; además, la máquina virtual en la que Java se ejecuta es una de las que mayor rendimiento posee en el mundo. También cabe recalcar que Android en su versión 5.0 hizo un cambio de máquina de ejecución de Dalvik a ART, por lo que esta pérdida de rendimiento se ve solventada, o al menos en parte.

Por el contrario, el lenguaje en el que las aplicaciones de iOS se desarrolla es Objective-C, el cual ha sido sustituido recientemente por el lenguaje propietario de Apple: Swift. A diferencia de Java, éste no se ejecuta en una máquina virtual, sino que lo hace directamente en el sistema a bajo nivel, por lo que el rendimiento es mucho mayor que el de Java. Además, desde que Apple lanzó Swift, el rendimiento de sus aplicaciones se ve incrementado respecto a Objective-C, al menos teóricamente.

El uso de dos lenguajes completamente distintos en cada plataforma no convierte a una mucho mejor que la otra, simplemente cada uno se ajusta a las características de cada sistema. Desarrollar en otro lenguaje para Android que no tuviese la versatilidad de Java imposibilitaría la compatibilidad con la mayoría de los dispositivos. Hacerlo para iOS provocaría una pérdida de rendimiento evidente.

En segundo lugar, el sistema de gestión de procesos en memoria

ram

Otra de las razones por las que Android no funciona tan fluido como iOS se halla en la administración de los procesos de ejecución en el sistema. Esto va intrínsicamente relacionado con el concepto de multitarea o multiprocesos: mientras que Android mantiene una serie de procesos que considera de prioridad, iOS mata estos mismos procesos cuando salimos de alguna aplicación. De forma aplicable a la navegación en el sistema, podríamos decir que mientras Android mantiene en memoria las aplicaciones que el usuario ha abierto, iOS cierra estos procesos dependiendo de la memoria RAM que ocupen, dejando el sistema mucho menos sobrecargado.

Como ya hemos dicho antes, esto contiene una serie de ventajas y desventajas. En Android podemos disfrutar de una multitarea mucho más efectiva, pero la navegación en el sistema se verá afectada debido a la acumulación de procesos. Por el contrario, en iOS no disfrutamos de una multitarea real (a excepción de aplicaciones del sistema o aplicaciones que ocupen poca memoria RAM), pero la navegación en el sistema se realiza de forma mucho más fluida que en el sistema del androide verde.

Esto explica en gran medida y de forma mucho más inmediata la pérdida de rendimiento de los equipos con Android. Es por ello que los dispositivos cada vez son lanzados con más memoria RAM y núcleos de procesador, aunque Google intentó solventar este problema en Android 4.4, permitiendo su instalación en equipos con memoria RAM inferior a 512 Mb. Esto también explica por qué los dispositivos de Apple no poseen una gran cantidad de memoria RAM. Personalmente prefiero la administración que realiza Android sobre los procesos adyacentes en el sistema.

En tercer lugar, la administración de la memoria ROM

Si en los ordenadores el componente que más influye en la velocidad del sistema es el disco duro (además del procesador), en los móviles es la memoria flash, conocida también como memoria ROM. En este aspecto no influye tanto la velocidad de escritura y lectura de las memorias – debido a que casi todas poseen similares velocidades – sino a la gestión de la misma, de igual forma que con la memoria RAM.

De sobra es conocido que en el sistema del androide verde se generan muchos más archivos por aplicación que en iOS (archivos de registro, caché, previsualización de imágenes etc), archivos que en general ralentizan el funcionamiento del terminal. Basta con hacer una búsqueda en la tienda de Google y encontrar una infinidad de aplicaciones que prometen limpiar los archivos basura que genera el sistema, si bien es cierto que esto tiene que ver más con las políticas de cada empresa en lo referente a la instalación de aplicaciones. A consecuencia de ello, en terminales con poca capacidad de memoria, el sistema pierde rendimiento bruto en la navegación general. Además, Android permite la expansión de memoria a través de tarjetas de memoria cuyas velocidades de escritura y lectura no se acercan a las de las memorias flash eMMC incluidas en los actuales smartphones, por lo que si a la pérdida de rendimiento ocasionada por la falta de memoria le sumamos la poca eficiencia de las tarjetas de expansión, la experiencia de usuario puede llegar a ser tediosa.

Sin embargo, Apple sigue lanzando terminales al mercado con unos escasos 8 Gb de memoria y es que, a pesar de resultar insuficientes, la gestión de memoria en cuanto a aplicaciones alojadas en la memoria ROM que realiza iOS no afecta al rendimiento del dispositivo como sí lo hace Android.

No obstante…

La mayoría de los dispositivos Android lanzados al mercado vienen con una capa de personalización que en lugar de aportar un valor añadido a la experiencia de usuario la empañan sobremanera. Es por ello que los terminales más punteros del mercado no obtienen el rendimiento esperado, aunque parece que algunos fabricantes como Sony están trabajando para hacer más liviana su capa de personalización.

En definitiva y a modo de reflexión, ningún sistema es mejor o peor que otro, sino que cada uno se adapta a distintas necesidades. Bajo criterio propio queda la elección del mismo. Y tú, ¿con cuál te quedas?