Saltar al contenido

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ónNombre
Android 14Upside Down Cake
Android 15Vanilla Ice Cream
Android 16Baklava

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.

PiezaQué es
RecursosTodo lo que no es código: imágenes, textos, diseños de pantalla
classes.dexTodo el código compilado, reunido en un solo archivo. DEX significa Dalvik Executable
AndroidManifest.xmlLa 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.

CapaQué ofrece
Cocoa TouchLos marcos de trabajo de interfaz, como UIKit con sus botones y controles
MediaGráficos, sonido y vídeo
Core ServicesServicios básicos que dan funcionalidad a lo de arriba, como las clases de fundación
Core OSLos servicios de más bajo nivel del sistema
Núcleo y controladoresLa 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.

HerramientaLenguajeNota
XamarinC#Genera código para Android y para iOS. Microsoft terminó su soporte en 2024 y su sucesor es .NET MAUI
FlutterDartDe Google, con planteamiento similar al de Xamarin
React NativeJavaScriptEnfoque híbrido
IonicTypeScriptEnfoque híbrido
Apache CordovaJavaScriptEnfoque híbrido
Adobe PhoneGapJavaScriptBasado 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.

SiglaQué gestiona
MDMEl dispositivo: sus datos y su configuración, el despliegue de aplicaciones y la seguridad (autenticación y cifrado)
MAMLas aplicaciones instaladas en el terminal
MIMLos datos y contenidos alojados en el terminal
EMMEl 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.

SiglaSignificadoQuién lo compraUso personal
BYODTrae tu propio dispositivoEl empleado o un tercero, como un invitadoSí, es su teléfono
CYODElige tu dispositivoLa empresa, de un catálogo cerrado que ella valida
COPECorporativo, habilitado también para uso privadoLa empresa
COBOCorporativo, restringido a la actividad laboralLa empresaNo

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