Actualizado a: 19 de diciembre de 2023
En el competitivo mundo de los sistemas operativos para dispositivos móviles, la batalla entre iOS/iPadOS de Apple y Android de Google ha sido una constante fuente de debate y preferencias entre los usuarios, aunque muchas de las comparativas se han venido centrando más bien en los sistemas operativos para escritorio.
Cada uno de estos sistemas ofrece experiencias únicas y características distintivas, desde su diseño hasta su funcionalidad. En este artículo, exploraremos una comparativa técnica detallada entre iOS/iPadOS y Android, examinando aspectos más técnicos de ellos, para conocerlos desde dentro y así ayudar en la elección de algún modo, aunque sin basarnos en favoritismos…
¿Qué es iOS?
iOS (anteriormente iPhone OS) es un sistema operativo móvil desarrollado por Apple Inc. exclusivamente para sus dispositivos. Está presente en dispositivos iPhone y dispositivos iPod Touch (descontinuados a mediados de 2022). Es el segundo sistema operativo móvil más ampliamente usado en el mundo, después de Android.
Además, sirve como base para otros tres sistemas operativos creados por Apple: iPadOS, tvOS y watchOS. Y, aunque es software propietario, algunas partes son de código abierto bajo la Licencia de Fuente Pública de Apple y otras licencias.
Fue lanzado en 2007 para el primer iPhone, iOS se ha extendido desde entonces para dar soporte a otros dispositivos de Apple, como el iPod Touch (septiembre de 2007) y el iPad (introducido en enero de 2010, disponible en abril de 2010). A partir de marzo de 2018, la App Store de Apple contiene más de 2.1 millones de aplicaciones iOS, un millón de las cuales son nativas para iPads. Estas aplicaciones móviles han sido descargadas colectivamente más de 130 mil millones de veces. Las versiones principales de iOS se lanzan anualmente, y la versión estable actual, iOS 17, fue lanzada al público el 18 de septiembre de 2023.
Sin embargo, sus orígenes se remontan a dos años antes, ya que en 2005, Steve Jobs comenzó a planificar el futuro iPhone, tuvo que organizar el equipo de desarrollo de un nuevos sistema operativo, para ello reuniría tanto al equipo de desarrollo de macOS y iPod, liderados por Scott Forstall y Tony Fadell, respectivamente, en una competencia interna para tratar de crear un macOS muy reducido o tratar de expandir el sistema del iPod.
Forstall ganó creando iPhone OS, lo que permitió el éxito del iPhone como plataforma para desarrolladores externos. El sistema operativo fue revelado junto al iPhone en la Macworld Conference & Expo el 9 de enero de 2007 y lanzado en junio de ese año.
Licencia y desarrollo
Aunque iOS/iPadOS sean sistemas operativos cerrados o propietarios, bajo licencia de Apple. También existen algunas partes de código abierto relacionadas con este sistema, como es el caso de Darwin, que está bajo licencia Apple Public Source License (APSL), una licencia de código abierto y libre, aunque no es compatible con GNU GPL.
Apple ha hecho el kernel XNU de código abierto bajo la licencia BSD de 3 cláusulas para las partes originales heredadas del sistema BSD, mientras que las partes añadidas por Apple están bajo la licencia de APSL. Sin embargo, las versiones del kernel en iOS no están disponibles públicamente.
En cuanto al desarrollo, se emplea lenguaje ensamblador para algunas cosas del kernel, así como lenguajes de programación C, C++, Objective-C y Swift para las apps, como debes saber. Todo lo referente al sistema operativo lo desarrolla la propia Apple, sin embargo, las apps de terceros están desarrolladas por muy diversos particulares, grupos y empresas.
Para facilitarle la vida a los desarrolladores para la creación de apps compatibles, Apple dispone de un iOS SDK (Kit de Desarrollo de Software). Inicialmente, Steve Jobs, CEO de Apple, no planeaba permitir que desarrolladores externos crearan aplicaciones nativas para iOS, pero tras la presión de los desarrolladores, anunció en octubre de 2007 que estaría disponible un kit de desarrollo de software para febrero de 2008. Quizás esta decisión salvó a este sistema operativo, ya que de no ser así, el ecosistema de apps para él hubiese sido muy pobre, y Android hubiera arrasado.
El SDK está disponible para macOS. Proporciona acceso a diversas funciones y servicios de dispositivos iOS/iPadOS, así como un simulador de estos dispositivos móviles para probar aplicaciones en el desarrollo. Se requiere una suscripción al Apple Developer Program para probar, obtener soporte técnico y distribuir aplicaciones a través de la App Store, es decir, hay que pagar, además una cuota muy superior a la que se paga por publicar en Google Play.
En conjunto con Xcode, el iOS SDK ayuda a los desarrolladores a escribir aplicaciones iOS utilizando lenguajes de programación oficialmente admitidos, como Swift y Objective-C. Otras empresas también han creado herramientas que permiten el desarrollo de aplicaciones nativas para estos sistemas con sus respectivos lenguajes de programación…
Núcleo o kernel
El kernel de iOS/iPadOS es el kernel XNU (XNU is Not Unix). Las versiones de XNU están basadas en diferentes versiones de Darwin, y dicho kernel se diseña bajo ASLR (Address Space Layout Randomization), lo que complica las posibilidades de explotación de vulnerabilidades al no conocerse las direcciones de memoria donde se aloja dicho kernel, algo que también tenemos en Linux, entre otros.
iOS no tiene extensiones de kernel (kexts) en el sistema de archivos, la imagen base del kernel se randomiza mediante el cargador de arranque (iBoot), y a lo largo del tiempo, las versiones de kernel de iOS/iPadOS y macOS han convergido, ya que iOS introdujo nuevas características que posteriormente se incorporaron a macOS también. Apple parece estar fusionando gradualmente los kernels, para lograr esa convergencia que tanto han deseado Microsoft e incluso Canonical en el mundo Linux, o lograr algo similar a ChromeOS de Google.
XNU es desarrollado por Apple Inc. desde diciembre de 1996 para su uso en el sistema operativo macOS y lanzado como software libre y de código abierto como parte del sistema operativo Darwin. Y más tarde sería la base también del resto de sistemas operativos de esta compañía.
Para los que aún no conocen qué es Darwin, es el sistema operativo central de tipo Unix originalmente existió como un sistema operativo de código abierto independiente y que está compuesto por código derivado de NeXTSTEP, BSD, Mach y otros proyectos de software libre, así como código desarrollado por la propia Apple.
Es un kernel híbrido que utiliza OSFMK 7.3 (Open Software Foundation Mach Kernel) de OSF, elementos de FreeBSD y una interfaz de programación de controladores orientada a objetos llamada I/O Kit. Este diseño híbrido combina la flexibilidad de un microkernel con el rendimiento de un kernel monolítico.
El entorno de desarrollo XCode, aunque parece ser propietario de Apple, utiliza herramientas de código abierto de GCC o LLVM para la compilación real.
Hay que decir, que aunque XNU sea compatible con la arquitectura AMD64 y la IA-32, finalmente se portó a Apple Silicon (ARM), y ahora se ha eliminado el soporte de las otras arquitecturas anteriores para aligerarlo. Además, las x86 tampoco tendrían sentido en los dispositivos móviles, como es este el caso. Pero de esto hablaremos más adelante…
La parte BSD del kernel proporciona la interfaz de programación de aplicaciones (API) POSIX, el modelo de procesos Unix sobre tareas Mach, políticas de seguridad básicas, sistemas de archivos virtuales, sistemas de archivos locales y protocolos de red, entre otros. El I/O Kit es el marco de controladores de dispositivos escrito en un subconjunto de C++ basado en Embedded C++. Ofrece un diseño orientado a objetos que facilita la escritura de controladores en menos tiempo y código, siendo multiproceso, multiprocesador simétrico y permitiendo la configuración automática de dispositivos.
Arquitectura soportada
El llamado Apple Silicon, tanto en las M-Series para ordenadores como en las A-Series para dispositivos móviles, entre otras series, se basan en la arquitectura o ISA ARM, pero no es una ARM pura. Apple ha agregado también sus instrucciones y extensiones particulares para optimizar el rendimiento según sus necesidades. Y XNU ha sido optimizado para esta ISA, consiguiendo el mejor rendimiento y eficiencia.
Es decir, Apple personaliza sus CPUs, aunque en esencia sí que sea una ISA ARM casi en su totalidad. Sin embargo, esas pequeñas diferencias y el hecho de ser un SoC complejo, en el que están implicadas otras partes, es el motivo por el cual binarios compilados para una ARM pura no funcionan en estos dispositivos.
Básicamente, los chips de Apple se basan en la ARMv8 en la actualidad, aunque anteriormente también se emplearía ARMv7-A y ARMv6.
Sistema de archivos APFS
Apple File System (APFS) es un sistema de archivos propietario desarrollado y utilizado por Apple Inc. en macOS, así como iOS, watchOS, tvOS, y en el iPadOS. APFS se diseñó para abordar problemas fundamentales de HFS+ y ha sido optimizado para las nuevas unidades de memoria flash.
Anunciado en la conferencia de desarrolladores de Apple en junio de 2016. El sistema utiliza números de nodo-i de 64 bits y ofrece almacenamiento más seguro. APFS utiliza el comando TRIM para una mejor gestión del espacio y rendimiento. Utiliza el esquema de partición GPT, con contenedores APFS y volúmenes APFS dentro de ellos. Ofrece clones eficientes, instantáneas, cifrado nativo y soporte para múltiples opciones de cifrado. También se centra en la integridad de los datos, protección contra fallas y compresión transparente. Sin embargo, algunas limitaciones incluyen la falta de checksums para datos de usuario, rendimiento más lento en discos duros y problemas o vulnerabilidades conocidas.
Interfaz gráfica
Aunque no se conocen detalle sobre el nombre de la GUI para pantallas táctiles multi-touch, como sí se conoce la de macOS, que se llama Aqua. Pero lo que sí sabemos es que existe el framework UIKit, y que ofrece diversas funciones para desarrollar aplicaciones, proporcionando componentes que permiten construir la infraestructura principal de apps para estos sistemas operativos.
UIKit también incluye soporte para animaciones, documentos, dibujo e impresión, gestión y visualización de texto, búsqueda, extensiones de aplicaciones, gestión de recursos y obtención de información sobre el dispositivo actual. Permite personalizar el soporte de accesibilidad y localizar la interfaz de la aplicación para diferentes idiomas, países o regiones culturales. Además, UIKit funciona de manera integrada con el framework SwiftUI, lo que permite implementar partes de la aplicación en SwiftUI o mezclar elementos de interfaz entre ambos marcos.
Apple Mobile Services
No existen demasiados detalles al respecto de este «Apple Mobile Services», de hecho, no hay referencias al nombre como sí existe en Android y los GMS o Google Mobile Services. Sin embargo, lo que sí sabemos es que incluye una serie de servicios y apps básicas.
Además de los servicios esenciales para el teléfono móvil, también tenemos un kit de apps preinstaladas, las llamadas bluilt-in, como Camara, Fotos, Mensajes, Mail, Safari, Mapas, Siri, Calendario, App Store, Contactos, Agenda, Reloj, Calculadora, Find My iPhone, Archivos, etc.
Apps y tienda de aplicaciones
Como he comentado, la tienda de apps desde la que te puedes descargar todos los programas y videojuegos disponibles para esta plataforma, se llama Apple App Store, como sabrás.
En cuanto a las aplicaciones disponibles, son muy numerosas, y todas ellas programadas en lenguajes:
- Objective-C es uno de los lenguajes de programación destacados para el desarrollo de aplicaciones en iPhone. Es un lenguaje orientado a objetos basado en C y se utiliza en conjunto con Xcode y Cocoa para crear aplicaciones iOS. Cocoa es una interfaz de programación escrita en Objective-C que gestiona la memoria y sigue el modelo MVC. Aunque Objective-C ha sido el estándar durante mucho tiempo, en 2010, Apple permitió el uso de código interpretado en el kit de desarrollo de software de iOS.
- Swift, por otro lado, es un lenguaje más reciente diseñado para ser más fácil de usar que Objective-C. Se considera el futuro del desarrollo de aplicaciones para iOS y ha ganado popularidad por su facilidad de uso y sintaxis más clara. Grandes empresas, como Firefox y WordPress, han adoptado Swift, y se espera que más empresas hagan la transición de Objective-C a Swift en los años venideros.
Además, mientras en Android los paquetes se conocen como .apk, en el sistema de Apple tenemos los .ipa. Su nombre proviene de iOS App Store package, y es tan simple como un archivo comprimido ZIP con la app. Y, a no ser que hagas jailbreak, apps descargadas desde fuentes de terceros no podrán ser instaladas de ninguna forma por motivos de seguridad.
Jailbreak
Como sabrás, los sistemas operativos para dispositivos móviles, como iOS/iPadOS y Android, vienen muy «capados», tú eres un usuario sin privilegios, para evitar problemas de seguridad. En cambio, esto limita también las posibilidades, y algunos realizan una «liberación» para poder ganar privilegios y que se conoce como jailbreak, el equivalente el root de Android.
Desde su lanzamiento, iOS ha sido objeto de diversos hacks destinados a añadir funcionalidades no permitidas por Apple. Antes de la aparición de la App Store de iOS en 2008, el principal motivo para hacer jailbreak era eludir el mecanismo de compra de Apple para instalar aplicaciones nativas. Aunque Apple afirmaba no lanzar actualizaciones de software específicamente diseñadas para romper estas herramientas, con cada actualización de iOS, se solían corregir exploits de jailbreak no parcheados anteriormente.
El jailbreak implica explotar y parchear el kernel de un dispositivo cada vez que se inicia, ya que iOS carga inicialmente su propio kernel durante el arranque. Hay diferentes tipos de jailbreak, siendo el untethered el más completo, permitiendo reiniciar el dispositivo sin necesidad de una computadora. Los jailbreaks tethered solo funcionan temporalmente durante un solo arranque. En años recientes, han surgido soluciones semi-tethered y semi-untethered, ofreciendo variaciones en la persistencia de las modificaciones realizadas en el dispositivo entre reinicios.
¿Qué es iPadOS? Diferencias iOS vs iPadOS
iPadOS no deja de ser un iOS modificado para funcionar en tablets. Aunque es compatible con aplicaciones de iOS y comparte gran parte de su código base con la familia más amplia de plataformas iOS, incluyendo tvOS, watchOS y el iOS original para el iPhone, iPadOS presenta algunas diferencias clave en términos de funciones y capacidades.
A diferencia de iOS para iPhone, iPadOS se ha optimizado para el uso en tabletas y ofrece características específicas de multitarea y extensibilidad. Por ejemplo, iPadOS admite un modo de pantalla dividida y puede trabajar con pantallas externas, características que no están disponibles en iOS para iPhone. Además, iPadOS es compatible con Apple Pencil y tiene un modo de escritorio web nativo, características que no se encuentran en iOS para iPhone.
A pesar de estas mejoras, iPadOS tiene algunas limitaciones en comparación con iOS para iPhone. Por ejemplo, iPadOS no es compatible con el Apple Watch y requiere un iPhone conectado para funciones como llamadas telefónicas y mensajes iMessage/SMS. La compatibilidad de aplicaciones también tiene algunas diferencias, ya que iPadOS puede ejecutar la mayoría de las aplicaciones diseñadas para iOS en modo de compatibilidad, pero el iPhone no puede ejecutar aplicaciones diseñadas específicamente para iPadOS.
En términos de seguridad, iPadOS incluye funciones modernas como autenticación biométrica, almacenamiento seguro de elementos para contraseñas y pagos, soporte VPN y IPv6, bloqueo de seguimiento de terceros, cifrado de respaldos y almacenamiento en la nube encriptado, entre otras.
En cuanto a su historia, se remonta a su lanzamiento en 2019, cuando Apple decidió diferenciar la experiencia del sistema operativo de iPad de la de iPhone. A lo largo de las versiones, se han introducido mejoras significativas, como el modo Sidecar para usar el iPad como monitor externo, optimizaciones para ratón y trackpad, y nuevas funciones de multitarea, como Stage Manager en iPadOS 16, que permite ejecutar hasta cuatro aplicaciones en una interfaz de escritorio.
En términos empresariales, iPadOS puede ser una opción viable para casos de uso específicos, como reemplazo de computadoras portátiles, quioscos de registro, pantallas de información en el lugar de trabajo o sistemas de punto de venta (POS). Sin embargo, su idoneidad depende del caso de uso específico, ya que iPadOS no puede ejecutar aplicaciones de escritorio macOS y está limitado a aplicaciones diseñadas para la plataforma iOS.
En resumen, las diferencias iOS / iPadOS son las siguientes, el resto es compartido:
Funciones | iOS (iPhone) | iPadOS (iPad) |
Pantalla dividida para las apps | No | Sí |
Soporte para pantalla externa | No | Sí |
Sidecar (entrada de pantalla) | No | Sí |
Compatible con apps para iPadOS | No | Sí |
Compatible con apps para iOS | Sí | Sí |
Modo libre de escritorio | No | Sí |
Soporte Apple Watch | Sí | No |
Telefonía | Sí | Sí |
iMessage / SMS | Sí | Sí |
Dock UI en la pantalla principal | No | Sí |
Picture-in-picture (PiP) video | Sí | Sí |
Safari en modo escritorio | No | Sí |
Conectividad 4G / 5G | Sí | Sí (algunas versiones) |
VoIP / videoconferencia | Sí | Sí |
Seguridad biométrica | Sí | Sí |
Ultra wideband (UWB) | Sí | Sí |
Modo kiosko (Single app mode) | Sí | Sí |
Mobile Device Manager | Sí | Sí |
Soporte para Apple Pencil | No | Sí |
¿Qué es Android?
Android es un sistema operativo móvil impulsado por Google (Alphabet) basado en una versión modificada del kernel de Linux y otros programas de código abierto. Diseñado principalmente para dispositivos táctiles como smartphones y tablets, aunque luego se ha instalado también en otros muchos dispositivos, como TV Boxes, algunos pequeños portátiles, etc.
Es desarrollado por la Open Handset Alliance, un consorcio de desarrolladores como la propia Google, LG, SoftBank, Telefónica, HTC, Dell, Sony, Intel, Motorola, Qualcomm, Texas Instruments, Samsung Electronics, T-Mobile, NVIDIA, etc. Además, cuenta con una comunidad que también contribuye o que crea sus propios forks (Harmmony OS de Huawei, Baidu, ColorOS, Replicant, /e/, Lineage OS, Fire OS de Amazon, OxygenOS de Oneplus, Remix OS,…). Fue presentado en noviembre de 2007, y el primer dispositivo comercial, el HTC Dream, se lanzó en septiembre de 2008.
El núcleo del sistema operativo es conocido como Android Open Source Project (AOSP), que es software libre y de código abierto principalmente bajo la Licencia Apache. Sin embargo, la mayoría de los dispositivos utilizan la versión propietaria desarrollada por Google, que incluye software cerrado, como Google Mobile Services (GMS) y que más adelante detallaré.
Android ha sido el sistema operativo más usado en el mundo desde 2011. Superando con creces a iOS/iPadOS en el ámbito de los móviles, y también superando por muchos millones de usuarios a Windows en el escritorio.
La historia de Android se remonta a su fundación en 2003, con la intención inicial de desarrollar un sistema operativo avanzado para cámaras digitales. Después de cambios de enfoque, Google adquirió Android en 2005. Desde entonces, ha experimentado múltiples actualizaciones, adoptando nombres de postres en orden alfabético, como ya sabrás…
Además de la competición con el sistema de Apple, también se ha enfrentado a otros problemas, como las demandas por patentes de Microsoft, por el uso, por ejemplo, del sistema de archivos FAT. De hecho, Microsoft ha ganado más dinero con esto que con su propio sistema operativo Windows Phone, que resultó todo un fracaso.
Licencia y desarrollo
Android es desarrollado por Google hasta que los cambios y actualizaciones más recientes están listos para ser lanzados, momento en el cual el código fuente se pone a disposición del Proyecto de Código Abierto de Android (AOSP), liderado por Google como una iniciativa de código abierto. El código AOSP se encuentra en dispositivos seleccionados con modificaciones mínimas, principalmente para que funcione en un hardware específico.
El código fuente de Android no incluye controladores de dispositivo, estos son agregados por cada fabricante de dispositivos, a menudo propietarios, necesarios para ciertos componentes de hardware.
En cuanto a licencias, hay que decir que Android es de código abierto principalmente, bajo licencia GNU GPLv2 para el kernel Linux y Apache License 2.0 para el software del espacio de usuario. Además, tiene partes freeware y otras propietarias, como los blobs binarios o controladores que agregan los fabricantes de dispositivos para garantizar la compatibilidad, o como GMS.
Núcleo o kernel
El kernel de Android se basa en las ramas de soporte a largo plazo (LTS) del kernel de Linux. Hasta el año 2023, Android utiliza versiones 4.14, 4.19, 5.4, 5.10 o 5.15 del kernel de Linux, adaptadas y a menudo nombradas como android13-5.15 o android-4.19-stable, dependiendo del dispositivo específico. El kernel de Android tiene cambios arquitectónicos adicionales implementados por Google fuera del ciclo de desarrollo típico del kernel de Linux.
Estos cambios incluyen la introducción de componentes como árboles de dispositivos, ashmem, ION y diferentes manejadores de falta de memoria (OOM). Aunque Google ha contribuido con ciertas características al kernel de Linux, como la función de gestión de energía «wakelocks», algunas contribuciones fueron inicialmente rechazadas por los desarrolladores principales del kernel debido a preocupaciones sobre el mantenimiento a largo plazo.
Como sabrás, el kernel Linux es de tipo monolítico, con capacidad de carga dinámica de módulos para funcionar de forma similar a un microkernel. Por tanto, no es puro como se insinúa en algunos documentos, sino que ha evolucionado para adaptarse a los nuevos tiempos.
Muchos se preguntarán por qué Android no es una distribución GNU/Linux, y el motivo es que no usa el ecosistema GNU, sino que se basa en Linux solamente, y como sustituto a GNU ha integrado la shell mksh, un sistema core utils nativo con inspiración en NetBSD, y las bibliotecas Bionic libc, en vez de la GNU C Library (glibc).
Para los que no conozcan Bionic, decir que es una bifurcación de la biblioteca estándar de C de BSD desarrollada por Google para Android, aislándola de las licencias GPL y LGPL. Se enfoca en ser más pequeña y eficiente en memoria que glibc y uClibc, siendo recomendada para el desarrollo de Android con el kit de desarrollo nativo (NDK). Bionic presenta limitaciones, como la falta de manejo de excepciones de C++, la necesidad de incluir manualmente la biblioteca de plantillas estándar (STL) y la ausencia de soporte para caracteres ampliados. También incluye funciones específicas de Android en algunas llamadas del sistema, y desde Android Jelly Bean MR1 (4.2), ofrece soporte para FORTIFY_SOURCE de glibc para prevenir desbordamientos de búfer.
Arquitectura soportada
A pesar de que el kernel Linux está disponible para multitud de arquitecturas, Android solo ha sido portado por el momento para x86 y ARM. Sin embargo, ya se está trabajando también para traer soporte para RISC-V.
Concretamente, desde que salió Android, se ha dado soporte para los primeros dispositivos de 32-bit ARMv7, así como también para versiones más modernas de la ISA como las nueva ARMv8 o ARMv9 de 64-bit. Por supuesto, es compatible tanto con IA-32 como con AMD64 del lado de x86. Y, como digo, actualmente también se está agregando el soporte para RISC-V, lo que va a ser muy interesante…
Sistema de archivos FAT
Android es compatible con varios sistemas de archivos o FS (File Systems), como los siguientes:
- FAT32 (File Allocation Table 32): es un sistema de archivos compatible con una amplia variedad de plataformas. Tiene limitaciones en el tamaño de archivos y particiones, siendo adecuado para dispositivos con capacidades de almacenamiento más pequeñas y necesidades básicas.
- Ext3 (Third Extended File System): en sistema de archivos diseñado para sistemas Linux. Proporciona mejor durabilidad y recuperación en comparación con su predecesor, Ext2, al implementar un registro de diario.
- Ext4 (Fourth Extended File System): es la versión más reciente de la serie Ext para sistemas Linux. Ofrece mejor rendimiento y capacidad para manejar archivos más grandes y particiones más extensas. También conserva las características de registro de diario de Ext3.
- exFAT (Extended File Allocation Table): desarrollado por Microsoft, es un sistema de archivos diseñado para ser compatible con plataformas Windows y dispositivos de almacenamiento extraíbles. Se utiliza comúnmente en tarjetas de memoria y unidades flash, y supera las limitaciones de tamaño de archivo de FAT32.
Sin embargo, la mayoría de dispositivos Android actuales usan FAT, especialmente exFAT. Es por eso que Microsoft está ganando mucho dinero con la venta de dispositivos Android por usar esta tecnología suya… El resto de sistemas de archivos no se suelen usar en dispositivos móviles, sino que se dejan para los Android x86 especialmente.
Interfaz gráfica
Material Design es un conjunto de principios de diseño y pautas desarrollado por Google para crear interfaces visuales coherentes y atractivas en aplicaciones y sitios web. Fue introducido en 2014 y se centra en la creación de una experiencia de usuario intuitiva y visualmente agradable. Material Design se basa en la idea de que la interfaz debe tener la misma apariencia y comportamiento en todas las plataformas y dispositivos.
La relación de Material Design con la GUI (Interfaz Gráfica de Usuario) de Android es estrecha, ya que Google lo ha adoptado como el enfoque de diseño estándar para las aplicaciones en su sistema operativo Android. Material Design proporciona pautas detalladas sobre cómo estructurar la interfaz, cómo utilizar colores, tipografía, animaciones y elementos visuales para crear una experiencia coherente y atractiva para los usuarios de Android.
Google Mobile Services
Google Mobile Services (GMS) constituye una colección de aplicaciones propietarias y servicios de interfaces de programación de aplicaciones (APIs) de Google que suelen venir preinstalados en dispositivos Android, tanto en smartphones, como tablets, relojes inteligentes, etc. Es importante destacar que GMS no forma parte del Proyecto de Código Abierto de Android (AOSP, por sus siglas en inglés), lo que implica que un fabricante de Android debe obtener una licencia de Google para instalar legalmente GMS en un dispositivo Android.
En cuanto a las aplicaciones fundamentales que integran Google Mobile Services, se incluyen Google Search, Google Chrome, YouTube, Google Play, Google Drive, Gmail, Google Meet, Google Maps, Google Photos, Google TV y YouTube Music. Estas aplicaciones centrales contribuyen significativamente a la experiencia del usuario en dispositivos Android y son parte integral del ecosistema ofrecido por Google en sus plataformas móviles.
Al no formar parte de AOSP, se puede eliminar este GMS y sustituirlo por otros servicios similares de terceros, es lo que hizo Huawei con sus HMS tras las sanciones que impedían a la marca china usarlos, o también como se ha realizado en otros sistemas derivados, como Amazon FireOS, que usa su propio sistema de servicios, o como el sistema operativo /e/ que se basa en LineageOS y que emplea MicroG+servicios de ubicación de Mozilla como sustituto de GMS.
Apps y tienda de aplicaciones
Para empezar, la tienda de aplicaciones y videojuegos en este caso es Google Play, parte de los Google Play Services integrados en GMS. Desde esta tienda se pueden descargar e instalar todo tipo de software disponible para la plataforma, así como comprobar la seguridad, actualizar, etc.
Android se basa en el kernel de Linux, como he comentado anteriormente, pero con middleware, bibliotecas y APIs escritas en C, y aplicaciones que se ejecutan en un framework de aplicaciones que incluye bibliotecas compatibles con Java. La plataforma utiliza Android Runtime (ART) como su entorno de ejecución, con compilación previa a la instalación. Antes de ART, Android usaba Dalvik como máquina virtual con compilación just-in-time (JIT). La biblioteca C estándar de Android, Bionic, se diseñó específicamente para Android, siendo más ligera que glibc y uClibc y optimizada para CPUs de baja frecuencia.
Google cambió la pila Bluetooth de BlueZ a BlueDroid en 2012 por motivos de licencia. Además, Android no tiene nativamente X Window System ni admite el conjunto completo de bibliotecas GNU. En versiones actuales, se utiliza «Toybox», una colección de utilidades de línea de comandos, y Trusty OS, un sistema operativo dentro de Android, proporciona un entorno de ejecución confiable para diversas aplicaciones, desde pagos móviles hasta detección de malware.
En cuanto al gestor de paquetes, en este caso se usa la propia Google Play como gestor de paquetes, aunque se puede configurar las opciones de seguridad para aceptar paquetes de fuentes terceras, bajo tu propia responsabilidad. Además, bajo root también se pueden instalar otras tiendas de apps.
Los archivos en este caso instalables son .apk. Un archivo APK (Android Package) es el formato utilizado por el sistema operativo Android, tipo típicamente JAR, que puede ser construido a partir de código fuente en Java o Kotlin y contiene todos los elementos de un programa, como código, recursos, certificados y el manifiesto. Los archivos APK se pueden generar y firmar a partir de Android App Bundles.
Root
Root en dispositivos Android se refiere a obtener acceso privilegiado al sistema operativo y a particiones sensibles, como /system/, el equivalente al jailbreak de Apple. A diferencia de las distribuciones de Linux de escritorio típicas, los usuarios de dispositivos Android no tienen acceso de root al sistema operativo y ciertas particiones son parcialmente de solo lectura.
Sin embargo, se puede obtener acceso de root al explotar vulnerabilidades de seguridad en Android o desbloqueando el gestor de arranque (bootloader). El desbloqueo del bootloader, disponible en muchos dispositivos Android, permite el acceso de root pero borra todos los datos del usuario durante el proceso. Esta capacidad es utilizada por la comunidad de código abierto para mejorar las capacidades y la personalización de los dispositivos, pero también puede ser aprovechada por partes malintencionadas para instalar virus y malware.
Resumen de las diferencias
Parametros | iOS/iPadOS | Android |
Desarrollador | Apple es la única responsable del desarrollo. | Open Handset Alliance (OHA) y Google son los responsables del desarrollo. |
Lanzamiento inicial | 2007, concretamente el 29 de julio. | 2008, concretamente el 23 de septiembre. |
Familia | Unix-like (XNU – Darwin) | Unix-like (Linux) |
Nombre de la primera versión | iOS 1 / iPadOS 13 | Android 1.0 |
Sectores objetivo | Para dispositivos móviles iPhone, los smartphones de Apple, y para las tablets iPad de esta misma compañía. También estuvo presente en reproductores iPod. | Para un amplio espectro de dispositivos, tanto móviles como smartphones y tablets, pasando por TV Boxes, Smart TVs, pequeños portátiles, etc. |
Controladores | iOS y el iPadOS solo se optimizan y se incluyen controladores para los dispositivos de Apple. | Android trabaja en un amplio abanico de marcas y modelos muy diferentes, con hardware de muchas marcas, por lo que debe incluir estos controladores. Es más general. |
Kernel | iOS y el iPadOS tienen núcleo XNU, como macOS. Un núcleo híbrido | Android usa Linux, y es de tipo monolítico con carga dinámica de módulos. |
Licencia | iOS/iPadOS usa licencia APSL, y Proprietaria (EULA), dependiendo de cada parte. | Android usa licencia GNU GPLv2 y otras partes bajo la licencia Apache. |
Lenguajes de programación | Se usan lenguajes para su desarrollo como Objective-C, Swift, C, y C++. | En Android se emplea tanto Java, como C, y C++, aunque otros componentes pueden incluir otros lenguajes también. |
Actualización | Con gestor de actualizaciones por OTA | Con gestor de actualizaciones por OTA |
Aplicaciones | Las aplicaciones se desarrollan usando Swift. | Las aplicaciones se desarrollan en Kotlin y especialmente Java. |
Navegador web predeterminado | Safari | Chrome |
Asistente de voz | Siri | Google Assistance |
Seguridad | Se basa en un sistema de seguridad propio, además las apps se filtran antes de publicarse en la App Store para que no sean maliciosas. Por supuesto, tiene un sistema para bloquear fuentes de terceros por seguridad, y un sistema de permisos. | Se basa en un sistema de seguridad SELinux, además las apps se filtran antes de publicarse en la Google Play para que no sean maliciosas. Por supuesto, tiene un sistema para bloquear fuentes de terceros por seguridad, y un sistema de permisos. |
Idiomas | Disponible en unos 24 idiomas diferentes. | Disponible en más de 100 idiomas diferentes. |
iOS/iPadOS vs Android: Ventajas y desventajas de cada uno
Con los detalles técnicos citados anteriormente, ya deberías tener una idea más clara de las ventajas y desventajas de cada uno. Pero, para ponértelo más fácil a la hora de elegir el sistema operativo adecuado, aquí te muestro algunos de los pros y contras más destacables de cada uno:
- iOS/iPadOS: pensado para todo tipo de usuarios, muy fácil de usar e intuitivo, además de seguro, estable y con un gran número de apps. Sin embargo, hacer el cambio de una plataforma a otra puede presentar algunas dificultades, por lo que si has usado anteriormente Android y no estás disgustado con él, pasar al ecosistema de Apple necesitará de un tiempo de adaptación. Por otro lado, destacar lo siguiente:
- Ventajas:
- Optimización: iOS/iPadOS, al estar diseñado específicamente para dispositivos Apple, garantiza una integración óptima entre el software y el hardware. Por eso, son dispositivos muy rápidos y eficientes.
- Calidad: las apps y el hardware suele ser de mayor calidad, además de contar con un diseño más exclusivo.
- Seguridad: la estructura cerrada y el estricto control de la App Store contribuyen a un entorno más seguro en términos de malware y amenazas, en lo que posiblemente superan a Android, aunque no son invulnerables.
- Ecosistema integrado: la integración fluida con otros dispositivos de Apple, como Mac, iPad, Apple Watch, y servicios como iCloud, permite una experiencia muy buena frente a tener un ecosistema heterogéneo, donde quizás no todo funcione tan bien.
- Desventajas:
- Personalización limitada: la personalización del sistema y la interfaz de usuario es más limitada en comparación con Android. Además, se dificulta bastante el jailbreak.
- Coste: los dispositivos Apple suelen ser más costosos en comparación con opciones Android equivalentes.
- Menos variedad de dispositivos: Apple fabrica un número limitado de dispositivos, lo que puede limitar las opciones para los consumidores, mientras que en Android el número de posibilidades son mayores.
- Ventajas:
- Android: pensado para todo tipo de usuarios, muy fácil de usar e intuitivo, además de seguro, estable y con un gran número de apps disponibles, incluso más que en el caso de Apple. También ocurre lo mismo, si ya estás adaptado al entorno de Apple, o tienes otros dispositivos Apple en casa, mejor elegir iOS/iPadOS por facilidad y por integración. Por otro lado, destacar lo siguiente:
- Ventajas:
- Variedad de dispositivos: Android está presente en una amplia gama de dispositivos de varios fabricantes, ofreciendo opciones para diferentes presupuestos y preferencias.
- Personalización avanzada: los usuarios tienen mayor libertad para personalizar la interfaz de usuario y ajustar configuraciones según sus preferencias. Además, encontrarás apps como los lanzadores y otras muchas funciones que no necesitan root para funcionar bien.
- Código abierto: al ser open-source, o de código abierto, puede transmitir más confianza e incluso tienes ROMs con el kernel libre de blobs binarios, versiones con mejoras en la seguridad y privacidad, sin los GMS, etc.
- Google Services: Apple no cuenta con tanta variedad de servicios como Google, y algunas se han visto derrotadas, como es el caso de Mapas frente a Google Maps. Por ejemplo, en estos dispositivos encontrarás de forma predeterminada la integración de GMail, GDrive, Youtube, Maps, Chrome, GBoard, Lens, Play Music, Fotos, etc.
- Desventajas:
- Fragmentación: la fragmentación del sistema operativo puede llevar a una experiencia de usuario inconsistente, ya que los fabricantes implementan actualizaciones a su propio ritmo. No obstante, las grandes marcas de dispositivos móviles, como Google, Samsung, etc., no tienen problemas.
- Seguridad variable: Debido a la diversidad de dispositivos y fabricantes, la seguridad puede variar, especialmente en dispositivos más antiguos o de gama baja.
- Menor optimización: al tener que funcionar en tanta variedad de dispositivos diferentes, no está optimizado para uno concreto, lo que puede llevar a dispersidad de funciones que no funcionan en todos.
- Ventajas:
Por supuesto, ya sabes que la elección entre iOS y Android dependerá de las preferencias individuales del usuario y de factores como el presupuesto, la personalización deseada y la preferencia por un ecosistema específico…