«Todo el mundo está intentando adoptar la estrategia de Apple. No buscamos este tipo de validación externa de nuestra estrategia, pero que sí que sugiere que hay muchos copiándola y que la gente se ha dado cuenta de su importancia». Así se pronunciaba Tim Cook, CEO de Apple, en recientes declaraciones a Dixit.
¿A qué estrategia se refiere Cook? La respuesta es que Apple siempre luce trajes a medida. Estos se los hace un sastre de la casa llamado Swift. Por supuesto, nos estamos refiriendo a como la compañía de Cupertino es capaz de diseñar sus propios propios procesadores y sistemas operativos para añadir a dispositivos como el iPhone, los iPad y próximamente los Mac.
Los llamados fanboys de Apple se han caracterizado siempre por destacar constantemente las bondades del rendimiento de las aplicaciones en dispositivos de la compañía. Pero, ¿podemos decir hoy en día que esta afirmación es cierta? Rotundamente sí. A continuación profundizaremos un poco más en todo ello.
Sofware + Hardware, el traje hecho a medida por Apple
Antes que nada es importante definir a groso modo que quiere decir «compilar código». Se podría decir que un compilador es algo así como un traductor que es capaz de transformar un programa entero de un lenguaje de programación (código fuente) a otro. Esto se suele realizar a través de un ejecutable que, con solo pulsar un par de veces, es capaz de ejecutar una aplicación.
Desde el inicio de iOS, el sistema operativo móvil de Apple, se compiló y ejecutó de forma nativa. Es decir, que solo se ejecutaba en dispositivos con el logo de la manzana mordida. Es el caso contrario de Android, el cual fue pensado desde su origen para que pudiese funcionar con prácticamente cualquier tipo de hardware. Este caso es algo complejo, ya que resultaba imposible configurar compiladores para cada procesador que iba a ejecutar Android. La respuesta para poder realizar esto es una máquina virtual de Java.
¿Qué es lo que hace la máquina virtual realmente? Pues ejercer una función de capa necesaria. Los desarrolladores escriben y compilan Android en Java y es esta máquina virtual la que se encarga de «reescribirla» para poder ejecutarse en el dispositivo que la usemos, independientemente del hardware que esté usando y del que se utilizó para escribirla. Efectivamente esto supone un perdida de rendimiento, pues la máquina virtual de la que hablamos anteriormente consume bastante cantidad de memoria RAM y otros recursos. Para que este «truco» funcione mejor, la máquina virtual se ejecuta siempre con prioridad sobre todos los demás procesos y esto quiere decir que otras aplicaciones y procesos del sistema que estén moviéndose en segundo plano siempre son menos prioritarios que el optimo funcionamiento de la máquina.
A todo esto hay que añadir aquellas aplicaciones que disponen de su propio sistema de avisos por notificaciones, lo que requiere que sigan actuando en segundo plano. Hablamos de apps como WhatsApp o Telegram. ¿Quién sigue gestionando todo esto para que vaya fluido? Pues la memoria RAM, en la cual se cargan todas las instrucciones que ejecuta la unidad central de procesamiento (procesador) y otras unidades del computador.
Conociendo ya como funcionan estos procesos, podemos entender el motivo por el que un iPhone va a necesitar menos RAM para funcionar que un dispositivo Android. Si nos remontamos al caso de iOS 11 comprobamos como el sistema podía manejarse a la perfección con tan solo 1GB de RAM mientras que un equipo de Android precisaba de al menos 3 o 4 GB para comenzar a dar un funcionamiento adecuado.
Otro punto que gana Apple con iOS a Google con Android reside en la buena gestión que hace este de la memoria RAM, la cual permite que las aplicaciones se reserven una cierta parte de memoria para funcionar como es debido cuando vuelvan a abrirse tras estar en segundo plano. En Android esto es gestionado por el propio sistema operativo, y aquí no hay reserva que valga porque las apps van usando la memoria RAM a destajo. Antiguamente el sistema permitía que las apps se bloquearan cuando no se disponía de más RAM, pero ahora directamente se cierran cuando llevan un tiempo sin usarse.
Realmente todo este sistema es mucho más complejo e incluso interesante de ver, pero nos sirve como pequeña explicación para entender cual es el motivo de que un iPhone necesite menos RAM que un equipo Android. A objeto de cada uno dejamos la conclusión acerca de si esto supone una ventaja o desventaja. No obstante, a título personal, creo que es una desventaja para los Android que deberán tomar un rumbo parecido al de iOS si quieren tener un rendimiento similar, aunque eso suponga tener que decir adiós a una parte de su negocio.