Sistemas operativos móviles
De dónde vienen Android e iOS, cómo se empaqueta y se publica una aplicación, qué formas hay de desarrollar para los dos a la vez, y cómo gestiona una organización una flota de teléfonos.
Android
Android está construido sobre el núcleo de Linux, del que hereda la gestión de procesos, de memoria y de dispositivos. Eso no lo convierte en una distribución de Linux: por encima del núcleo no hay el entorno habitual de un escritorio Linux, sino la pila propia de Google.
Para el almacenamiento local de datos estructurados, cada aplicación dispone de SQLite, una base de datos que no es un servidor sino una biblioteca que trabaja sobre un fichero, integrada en el propio sistema.
Las versiones se identifican por número y por un nombre de postre en orden alfabético, y las recientes son las que conviene tener localizadas.
| Versión | Nombre |
|---|---|
| Android 14 | Upside Down Cake |
| Android 15 | Vanilla Ice Cream |
| Android 16 | Baklava |
Android usa el núcleo de Linux y SQLite como almacenamiento local. Son los dos datos que más se preguntan de su base técnica.
Para el examen
Núcleo: Linux
Base de datos: SQLite: biblioteca sobre un fichero, no un servidor
Android 14, 15 y 16: Upside Down Cake, Vanilla Ice Cream y Baklava
Cómo se empaqueta una aplicación: APK y AAB
El APK es el paquete que se instala en el teléfono. Es un contenedor comprimido y dentro lleva, entre otras cosas, tres piezas que hay que saber identificar.
| Pieza | Qué es |
|---|---|
| Recursos | Todo lo que no es código: imágenes, textos, diseños de pantalla |
| classes.dex | Todo el código compilado, reunido en un solo archivo. DEX significa Dalvik Executable |
| AndroidManifest.xml | La declaración de la aplicación, y en particular los permisos que solicita |
El AAB, Android App Bundle, es otra cosa y se confunde con frecuencia: no es un formato de instalación, es un formato de publicación. El desarrollador sube un único paquete que contiene el código compilado y los recursos para todas las configuraciones posibles de pantalla, idioma y procesador, y es la tienda la que, a partir de él, genera e instala en cada teléfono solo lo que ese teléfono necesita. El resultado es una descarga más pequeña.
Un dato que explica por qué esto ha dejado de ser opcional: desde agosto de 2021, Google Play exige el formato AAB para las aplicaciones nuevas, de modo que el APK ha quedado como formato de instalación pero ya no como formato de publicación en la tienda.
En cuanto a la construcción de la interfaz, Android ofrece Jetpack Compose, una biblioteca declarativa: en lugar de ir creando y modificando elementos paso a paso, se describe cómo debe verse la pantalla en cada estado y el sistema se encarga de reflejarlo.
El APK se instala; el AAB se publica. Del AAB sale el APK concreto que llega a cada teléfono.
Para el examen
Qué lleva un APK: recursos, classes.dex y AndroidManifest.xml con los permisos
DEX: Dalvik Executable
AAB: el formato de publicación
Obligatorio en Google Play: desde agosto de 2021
iOS
iOS deriva de macOS, que a su vez desciende de BSD, es decir de la familia Unix. Por eso comparte con macOS el núcleo y buena parte de sus bibliotecas, y por eso las herramientas de desarrollo son en gran medida las mismas.
Su arquitectura, la que empaqueta el fichero .IPA, se organiza en capas, de la más cercana a la aplicación a la más cercana al hardware.
| Capa | Qué ofrece |
|---|---|
| Cocoa Touch | Los marcos de trabajo de interfaz, como UIKit con sus botones y controles |
| Media | Gráficos, sonido y vídeo |
| Core Services | Servicios básicos que dan funcionalidad a lo de arriba, como las clases de fundación |
| Core OS | Los servicios de más bajo nivel del sistema |
| Núcleo y controladores | La base sobre la que se apoya todo lo demás |
El entorno de desarrollo es Xcode, que en su día se distribuyó como iPhone SDK y hoy como iOS SDK. Existió también AppCode, de JetBrains, aunque su fabricante lo retiró. Los lenguajes son Objective-C, el histórico y más difícil, y Swift, el actual. Para la interfaz, UIKit es el marco clásico y SwiftUI el declarativo.
SwiftUI en iOS y Jetpack Compose en Android hacen lo mismo: describir la interfaz de forma declarativa en lugar de construirla paso a paso.
Para el examen
De dónde desciende: de BSD, a través de macOS
Sus capas, de arriba abajo: Cocoa Touch, Media, Core Services, Core OS y núcleo
Entorno de desarrollo: Xcode
Lenguajes: Objective-C el histórico y Swift el actual
Desarrollo multiplataforma, aplicaciones híbridas y PWA
Escribir una aplicación dos veces, una en Kotlin y otra en Swift, es caro. De ahí que existan herramientas que permiten escribir una vez y publicar para las dos plataformas, cada una con su lenguaje y su enfoque.
| Herramienta | Lenguaje | Nota |
|---|---|---|
| Xamarin | C# | Genera código para Android y para iOS. Microsoft terminó su soporte en 2024 y su sucesor es .NET MAUI |
| Flutter | Dart | De Google, con planteamiento similar al de Xamarin |
| React Native | JavaScript | Enfoque híbrido |
| Ionic | TypeScript | Enfoque híbrido |
| Apache Cordova | JavaScript | Enfoque híbrido |
| Adobe PhoneGap | JavaScript | Basado en Cordova. Adobe lo descontinuó en 2020 |
La aplicación híbrida merece explicación aparte porque es el concepto que se pregunta. Se programa con tecnología web, es decir HTML, CSS y JavaScript, pero en lugar de publicarse como una página se empaqueta junto a dos componentes: un WebView, que es un navegador sin barras que pinta la interfaz dentro de la aplicación, y un puente nativo, que expone al código web las funciones del teléfono, como la cámara o la localización. El resultado se instala y se comporta como una aplicación nativa, aunque no llega a todas las capacidades del sistema.
Las aplicaciones web progresivas, o PWA, van un paso más allá en la otra dirección: son webs construidas con HTML, CSS y JavaScript que el usuario puede anclar en su pantalla de inicio y usar como si fueran una aplicación, sin pasar por una tienda y sin instalación en el sentido clásico.
Nativa, híbrida y PWA se distinguen por dos preguntas: dónde se ejecuta la interfaz y cuánto acceso tiene al teléfono.
Para el examen
Aplicación híbrida: web (HTML, CSS y JavaScript) empaquetada con un WebView y un puente nativo
PWA: una web anclable, sin pasar por la tienda
Lenguajes de los marcos: Flutter usa Dart, Xamarin C# y React Native JavaScript
Gestión de dispositivos móviles
Cuando una organización reparte cientos de teléfonos, hace falta administrarlos de forma centralizada: repartir configuraciones, instalar y retirar aplicaciones, exigir código de bloqueo y poder borrar en remoto un terminal perdido. De eso se ocupan las plataformas de gestión de dispositivos móviles, y sus siglas se preguntan por separado porque cada una cubre un ámbito distinto.
| Sigla | Qué gestiona |
|---|---|
| MDM | El dispositivo: sus datos y su configuración, el despliegue de aplicaciones y la seguridad (autenticación y cifrado) |
| MAM | Las aplicaciones instaladas en el terminal |
| MIM | Los datos y contenidos alojados en el terminal |
| EMM | El paraguas empresarial que engloba a los anteriores |
En cuanto a productos, los que suelen citarse son Microsoft Intune, Samsung Knox, FAMOC, Dialogs smartMan, MobileIron, que hoy forma parte de Ivanti, y VMware AirWatch, que tras el cambio de propiedad se comercializa como Omnissa Workspace ONE.
MDM gestiona el aparato, MAM las aplicaciones, MIM la información, y EMM es el conjunto empresarial que los agrupa.
Para el examen
MDM: gestiona el dispositivo
MAM: gestiona las aplicaciones
MIM: gestiona la información
EMM: engloba a los tres
Productos: Microsoft Intune y Samsung Knox
Modelos de propiedad del dispositivo
Antes de gestionar un teléfono hay que decidir de quién es y qué se puede hacer con él. Ese acuerdo se resume en cuatro siglas, y la clave para distinguirlas es fijarse en dos cosas: quién compra el aparato y si se admite o no uso personal.
| Sigla | Significado | Quién lo compra | Uso personal |
|---|---|---|---|
| BYOD | Trae tu propio dispositivo | El empleado o un tercero, como un invitado | Sí, es su teléfono |
| CYOD | Elige tu dispositivo | La empresa, de un catálogo cerrado que ella valida | Sí |
| COPE | Corporativo, habilitado también para uso privado | La empresa | Sí |
| COBO | Corporativo, restringido a la actividad laboral | La empresa | No |
COPE y COBO son los dos de la empresa, y se distinguen únicamente en si permiten uso personal. BYOD es el del empleado y CYOD deja elegir dentro de una lista validada.
Para el examen
BYOD: el teléfono es del empleado
CYOD: lo elige de un catálogo que valida la empresa
COPE: de la empresa, con uso personal permitido
COBO: de la empresa y solo para uso laboral