Universidad del Quindío
Programa de Ingeniería de Sistemas y Computación
Título: Introducción al desarrollo de apps móviles
Docente: Carlos Andrés Florez V.
Los dispositivos móviles han sido uno de los inventos más significativos de la era moderna. Desde sus primeras versiones en los años 70, que permitían la comunicación a través de redes celulares, hasta la explosión de funcionalidades actuales, han transformado radicalmente la forma en que nos comunicamos y accedemos a la información.
Desde dispositivos básicos que solo permitían llamadas y mensajes de texto, hemos evolucionado hacia teléfonos inteligentes que funcionan como mini computadoras, capaces de ejecutar aplicaciones complejas, navegar por internet, tomar fotografías de alta calidad y mucho más. Esta evolución ha sido impulsada por avances tecnológicos en hardware, software y conectividad.
A continuación, se presenta un breve resumen de la evolución de los dispositivos móviles a lo largo de las décadas:
El primer teléfono móvil comercial fue el Motorola DynaTAC 8000X, aprobado por la FCC (Federal Communications Commission) y lanzado al mercado en 1983. Aunque era voluminoso y costoso, este dispositivo marcó el inicio de la telefonía móvil comercial. Pesaba cerca de 1 kg, medía aproximadamente 25 cm y ofrecía alrededor de 30 minutos de conversación, con un tiempo de recarga de batería de hasta 10 horas. A pesar de sus limitaciones técnicas, representó un hito en la comunicación personal inalámbrica.

El desarrollo de este dispositivo fue posible gracias a avances previos en la tecnología celular. En 1973, Martin Cooper, ingeniero de Motorola, realizó la primera llamada telefónica desde un teléfono móvil portátil, demostrando la viabilidad de la comunicación móvil sin cables y sentando las bases de la telefonía celular moderna.
Posteriormente, en 1979, Nippon Telegraph and Telephone (NTT) implementó en Japón la primera red celular comercial del mundo, basada en transmisión analógica de voz. Este sistema dio origen a lo que más tarde se conocería como redes 1G (primera generación). Tras Japón, Suecia desplegó su red celular en 1981, y Estados Unidos hizo lo propio en 1983, permitiendo finalmente la comercialización masiva de teléfonos móviles como el DynaTAC.
Las redes 1G se caracterizaban por el uso de señales analógicas, baja eficiencia espectral y ausencia de mecanismos de cifrado, pero fueron fundamentales para el desarrollo de las generaciones posteriores de comunicaciones móviles.
La década de los 90 vio la introducción de los primeros teléfonos móviles con capacidades adicionales, como la capacidad de enviar mensajes de texto (SMS) y la inclusión de pantallas monocromáticas. En 1992, se envió el primer SMS, y en 1996, Nokia lanzó el Nokia 9000 Communicator, uno de los primeros dispositivos que combinaba funciones de teléfono y PDA (Asistente Digital Personal).

Nokia dominó el mercado de teléfonos móviles durante gran parte de la década con modelos icónicos como el Nokia 3210 y el Nokia 3310, conocidos por su durabilidad y larga duración de batería.
Durante esta década, la tecnología de redes celulares también avanzó con la introducción de la 2G (segunda generación), que permitió la transmisión digital de voz y datos, mejorando la calidad de las llamadas y permitiendo servicios como el SMS.
El cambio de milenio trajo consigo la llegada de los teléfonos inteligentes modernos. En 2000, Ericsson lanzó el R380, uno de los primeros dispositivos en ser etiquetado como “smartphone”. Sin embargo, fue en 2007 cuando Apple revolucionó la industria con el lanzamiento del iPhone, que combinaba un diseño elegante con una interfaz táctil intuitiva y acceso a internet móvil. Este dispositivo marcó el inicio de una nueva era en la telefonía móvil, impulsando el desarrollo de aplicaciones móviles y estableciendo nuevos estándares para la industria.

Durante esta década, la tecnología de redes celulares continuó evolucionando con la introducción de la 3G (tercera generación) y posteriormente la 4G (cuarta generación), que ofrecieron velocidades de datos significativamente mayores, permitiendo la transmisión de video en tiempo real y el acceso a servicios en línea más avanzados.
La red de 5G (quinta generación) comenzó a desplegarse a finales de la década de 2010, ofreciendo velocidades aún más rápidas, menor latencia y la capacidad de conectar una gran cantidad de dispositivos simultáneamente, lo que es fundamental para el desarrollo del Internet de las Cosas (IoT). Su adopción está en curso y se espera que transforme aún más la forma en que interactuamos con la tecnología móvil en los próximos años.
El desarrollo de los sistemas operativos móviles ha sido crucial para la evolución de los dispositivos móviles. Estos sistemas permiten a los usuarios interactuar con sus dispositivos y ejecutar aplicaciones que amplían sus funcionalidades.
El primer sistema operativo móvil significativo fue Symbian, desarrollado en la década de 1990 por una colaboración entre varias empresas, incluyendo Nokia, Ericsson y Motorola. Symbian dominó el mercado de teléfonos inteligentes durante varios años antes de ser eclipsado por sistemas operativos más modernos.
En 2007, Apple lanzó iOS junto con el iPhone, estableciendo un nuevo estándar para la experiencia del usuario en dispositivos móviles. iOS se destacó por su interfaz intuitiva y su ecosistema cerrado, lo que permitió a Apple controlar la calidad de las aplicaciones disponibles en su tienda.
Por otro lado, en 2008, Google lanzó Android, un sistema operativo de código abierto basado en Linux. Android permitió a una amplia variedad de fabricantes de dispositivos adoptar el sistema operativo, lo que llevó a una rápida expansión del mercado de teléfonos inteligentes. La naturaleza abierta de Android fomentó la innovación y la diversidad en el ecosistema de aplicaciones móviles.
Actualmente, Android e iOS son los dos sistemas operativos móviles dominantes, con Android liderando en términos de cuota de mercado global debido a su adopción por parte de múltiples fabricantes y su accesibilidad en una amplia gama de dispositivos.
A continuación, se describen los sistemas operativos móviles más relevantes en la actualidad: iOS y Android, así como una breve mención de otros sistemas operativos móviles que han existido.
| Logo: | ![]() |
|---|---|
| Descripción: | Por sus siglas en inglés iPhone/iPod/iPad Operating System. iOS fue originalmente desarrollado para el iPhone, sin embargo, años después se extendió su uso en dispositivos como el iPod Touch, iPad y el Apple TV. Apple Inc. no permite la instalación de iOS en hardware de terceros. Su ecosistema cerrado garantiza un alto nivel de seguridad y control de calidad, además de una integración óptima con el hardware de Apple. |
| Lanzamiento: | Su lanzamiento se dio el 26 de junio del 2007 con el nombre de iPhone OS, tres años después pasó a llamarse iOS. |
| Proveedor: | Es un sistema operativo móvil de la empresa Apple Inc. |
| Lenguaje de Programación: | Objective-C, Swift. |
| Última versión estable: | 26.2.1 - 26 de enero de 2026 |
| Última versión beta: | 26.3 Beta 3 - 26 de enero de 2026 |
| Tienda de aplicaciones: | App Store (única tienda oficial por su ecosistema cerrado) |
| Logo: | ![]() |
|---|---|
| Descripción: | El sistema operativo Android permite ejecutar aplicaciones desarrolladas en Java y Kotlin sobre el entorno de ejecución ART (Android Runtime), que reemplazó al antiguo entorno Dalvik a partir de Android 5.0. ART se encarga de ejecutar el bytecode de las aplicaciones, optimizando su rendimiento mediante técnicas de compilación y gestión de memoria. Su naturaleza abierta permite una amplia personalización y adaptación por parte de fabricantes y desarrolladores. |
| Lanzamiento: | Android tuvo su lanzamiento oficial en septiembre del 2008. |
| Proveedor: | Inicialmente fue desarrollado por Android Inc., empresa que Google respaldó económicamente, para más tarde comprarla. |
| Lenguaje de Programación: | Java, Kotlin y C/C++. |
| Última versión estable: | Android 16 - 10 de junio de 2025 |
| Tienda de aplicaciones: | Google Play Store (tienda más reconocida). |
A diferencia de iOS, que solo permite la instalación de aplicaciones a través de la App Store oficial, Android permite la instalación de aplicaciones desde múltiples fuentes. Esto incluye:
La posibilidad de instalar aplicaciones desde fuentes externas (conocido como sideloading) es una de las características que diferencia a Android de iOS y ofrece mayor libertad a los usuarios, aunque también implica mayores riesgos de seguridad si no se tiene cuidado con las fuentes.
La característica más destacada de Android es que es un sistema operativo de código abierto, lo que permite a los fabricantes de dispositivos y desarrolladores de aplicaciones acceder al código fuente y modificarlo según sus necesidades. Esto ha llevado a una gran variedad de dispositivos Android en el mercado, desde teléfonos económicos hasta dispositivos de alta gama.
Android surge del proyecto de código abierto AOSP (Android Open Source Project), lo que permite a cualquier fabricante utilizar y modificar el sistema operativo para adaptarlo a sus dispositivos, por lo que es común encontrar diferentes versiones de Android con distintas interfaces de usuario y características adicionales que los fabricantes agregan.
El desarrollo de Android es supervisado por la Open Handset Alliance (OHA), un consorcio fundado en noviembre de 2007 que agrupa a más de 80 empresas de tecnología, incluyendo fabricantes de dispositivos (Samsung, LG, HTC, Sony), operadores de telecomunicaciones (T-Mobile, Telefónica, NTT DoCoMo), fabricantes de chips (Qualcomm, Intel, NVIDIA) y empresas de software. Google lidera este consorcio y mantiene el proyecto AOSP, garantizando que el sistema operativo evolucione constantemente con nuevas características y mejoras de seguridad.
Esta colaboración abierta entre múltiples empresas es una de las razones por las cuales Android ha logrado una adopción tan amplia en el mercado.
Es importante entender la diferencia entre Android “puro” (AOSP) y el Android que la mayoría de usuarios conoce:
| Aspecto | AOSP (Android Open Source Project) | Android con Google Play Services |
|---|---|---|
| Definición | Versión base de Android, completamente de código abierto. | AOSP + aplicaciones y servicios propietarios de Google. |
| Aplicaciones incluidas | Solo apps básicas: marcador, contactos, mensajes, cámara simple, galería. | Apps de Google: Gmail, Maps, YouTube, Chrome, Google Photos, Play Store, etc. |
| Servicios en segundo plano | Sin servicios de Google. | Google Play Services: notificaciones push, ubicación, autenticación, APIs de Google. |
| Actualizaciones | Dependen del fabricante o del usuario. | Google puede actualizar Play Services independientemente del fabricante. |
| Quién lo usa | Amazon (Fire OS), algunos fabricantes chinos, proyectos personalizados como LineageOS. | Samsung, Xiaomi, Motorola, y la mayoría de fabricantes fuera de China. |
| Licencia | Gratuito y libre. | Requiere acuerdo de licencia con Google y cumplir ciertos requisitos. |
Google Play Services es un componente crucial que muchas aplicaciones requieren para funcionar correctamente. Proporciona APIs para:
Por esta razón, dispositivos como los de Huawei (sin acceso a Google Play Services) deben desarrollar sus propias alternativas o depender de aplicaciones que no requieran estos servicios.

La mayoría de los dispositivos Android son fabricados por empresas como Samsung, Huawei, Xiaomi, Oppo, Vivo, entre otras. A continuación, se muestran las estadísticas de algunos de los principales fabricantes:

Para más información sobre estadísticas puede visitar la página: Android Global Market Share Statistics 2026.
Aunque Android es el sistema operativo móvil más popular del mundo, también enfrenta varios problemas y desafíos que afectan tanto a los usuarios como a los desarrolladores. Algunos de los problemas más comunes incluyen:
La fragmentación en Android es un problema porque el ecosistema está muy dividido en versiones, dispositivos y capas de personalización. Esto significa que no todos los usuarios tienen la misma versión del sistema ni reciben las mismas actualizaciones al mismo tiempo, lo que trae varios inconvenientes.
Mientras iOS suele tener >90% de usuarios en la última versión al año de su lanzamiento, Android suele tener su versión más reciente en menos del 10% de dispositivos en ese mismo lapso.

Observe cómo, a pesar de que Android 16 fue lanzado en junio de 2025, a la fecha actual solo el 7.5% de los dispositivos Android tienen esta versión instalada. Esto se debe a que muchos fabricantes tardan en actualizar sus dispositivos y algunos modelos más antiguos no reciben actualizaciones oficiales.
Debido a la naturaleza abierta de Android y la gran cantidad de aplicaciones disponibles en Google Play Store, el sistema operativo es más vulnerable a malware y ataques de seguridad en comparación con otros sistemas operativos móviles. Los usuarios deben ser cautelosos al descargar aplicaciones y asegurarse de que provienen de fuentes confiables. Además, la fragmentación también puede dificultar la implementación de parches de seguridad, ya que no todos los dispositivos reciben actualizaciones de manera oportuna.
Dado que Android permite a cualquier desarrollador publicar aplicaciones en Google Play Store, la calidad de las aplicaciones puede variar significativamente. Algunas aplicaciones pueden ser mal diseñadas, contener errores o incluso ser maliciosas. Los usuarios deben leer reseñas y verificar la reputación del desarrollador antes de descargar una aplicación.
Existen varias tecnologías y lenguajes de programación que se pueden utilizar para desarrollar aplicaciones para Android. A continuación, se describen las más populares:
| Tecnología | Descripción | Rendimiento | Caso de uso |
|---|---|---|---|
| Java | Primer lenguaje oficial para Android. Orientado a objetos, maduro y muy utilizado. Cuenta con un amplio ecosistema y excelente soporte. Muchas apps Android clásicas están escritas en Java. | Muy alto (nativo). Acceso directo al hardware y a las APIs del sistema operativo. | Aplicaciones nativas de Android que requieren estabilidad, compatibilidad amplia y alto rendimiento. |
| Kotlin | Lenguaje moderno, conciso y oficialmente recomendado por Google para Android. Totalmente interoperable con Java y con sintaxis más segura y productiva. | Muy alto (nativo). Igual que Java, tiene acceso directo al hardware y APIs nativas. | Desarrollo nativo de Android con mayor productividad, código más limpio y soporte actualizado. |
| Kotlin Multiplatform (KMP) | Tecnología de JetBrains que permite compartir código Kotlin (lógica de negocio, modelos de datos, acceso a red, etc.) entre Android, iOS, escritorio y web. Cada plataforma conserva su propia interfaz de usuario nativa, lo que garantiza una experiencia óptima en cada dispositivo. Se integra de forma natural en proyectos Android existentes. | Muy alto (nativo). La lógica compartida se compila a código nativo para cada plataforma (bytecode en Android, binario nativo en iOS). La UI sigue siendo completamente nativa. | Proyectos que necesitan compartir lógica de negocio entre Android e iOS sin sacrificar la experiencia nativa de usuario en cada plataforma. |
| Flutter | Framework multiplataforma creado por Google. Usa Dart y renderiza toda la UI a través de su propio motor gráfico basado en Skia (y su sucesor Impeller en versiones recientes), lo que garantiza interfaces fluidas y visualmente consistentes en todas las plataformas sin depender de los componentes nativos de cada sistema. | Alto, pero por debajo de los nativos. No accede directamente al hardware; depende de canales de comunicación (platform channels) para interactuar con APIs del sistema. | Aplicaciones multiplataforma que buscan coherencia visual y desarrollo rápido en Android e iOS. |
| Compose Multiplatform | Framework de JetBrains basado en Jetpack Compose que permite compartir tanto la lógica como la interfaz de usuario entre Android, iOS, escritorio (Windows, macOS, Linux) y web. Utiliza Kotlin y el paradigma declarativo de Compose. Evoluciona sobre KMP añadiendo la capa de UI compartida. | Alto. En Android el rendimiento es prácticamente nativo al ejecutarse sobre Jetpack Compose. En iOS y escritorio utiliza Skia/Skiko como motor de renderizado, lo que puede implicar pequeñas diferencias respecto a la UI completamente nativa. | Aplicaciones multiplataforma que buscan compartir el mayor volumen posible de código, incluyendo la UI, manteniendo un único lenguaje (Kotlin) en todo el proyecto. |
| React Native | Framework de Facebook basado en JavaScript que renderiza componentes nativos. Permite compartir gran parte del código entre plataformas. Es flexible y tiene un ecosistema grande. | Medio–alto. Usa un puente (bridge) para comunicarse con el código nativo, lo que introduce cierta latencia y limita el rendimiento frente a tecnologías nativas y frente a Flutter. | Apps multiplataforma con alta reutilización de código, especialmente si el equipo domina JavaScript. |
| Xamarin / .NET MAUI | Framework de Microsoft que utiliza C#. Permite compartir lógica de negocio en múltiples plataformas, integrándose bien con el ecosistema .NET. Xamarin está siendo reemplazado gradualmente por .NET MAUI. | Medio–alto. Aunque genera apps casi nativas, su capa intermedia hace que no alcance el rendimiento del desarrollo completamente nativo. | Apps multiplataforma para equipos que ya trabajan con C# y tecnologías Microsoft. |
El sistema operativo Android está basado en una arquitectura de capas que permite una separación clara entre las diferentes funcionalidades y componentes del sistema. La arquitectura de Android se compone de cinco capas principales:
Imagen obtenida de: https://commons.wikimedia.org/wiki/File:Android-System-Architecture.svg
A continuación, se describen las capas principales de la arquitectura de Android:
| Capa | Descripción |
|---|---|
| El núcleo Linux | El núcleo de Android está formado por el kernel Linux. Esta capa proporciona servicios como la seguridad, el manejo de la memoria, el multiproceso, la pila de protocolos y el soporte de drivers para dispositivos. Esta capa del modelo actúa como capa de abstracción entre el hardware y el resto de la pila. Por lo tanto, es la única que es dependiente del hardware. |
| Runtime de Android | Está basado en el concepto de máquina virtual utilizado en Java. Dado las limitaciones de los dispositivos donde ha de correr Android (poca memoria y procesador limitado) no fue posible utilizar una máquina virtual Java estándar. Google tomó la decisión de crear la máquina virtual Dalvik. A partir de Android 5.0 se reemplaza Dalvik por ART (Android Runtime). Esta nueva máquina virtual consigue reducir el tiempo de ejecución del código Java hasta en un 33%. |
| Librerías nativas | Incluye un conjunto de librerías en C/C++ usadas en varios componentes de Android. Estas librerías proporcionan funcionalidades como gráficos, bases de datos, y soporte multimedia. |
| Entorno de aplicación | Proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e innovaciones (sensores, localización, servicios, barra de notificaciones, etc.). Esta capa ha sido diseñada para simplificar la reutilización de componentes. Las aplicaciones pueden publicar sus capacidades y otras pueden hacer uso de ellas (sujetas a las restricciones de seguridad). Este mismo mecanismo permite a los usuarios reemplazar componentes. |
| Aplicaciones | Este nivel está formado por el conjunto de aplicaciones instaladas en una máquina Android. Todas las aplicaciones han de correr en la máquina virtual Dalvik para garantizar la seguridad del sistema. Normalmente las aplicaciones Android están escritas en Java y Kotlin. Para desarrollar aplicaciones para Android podemos utilizar el Android SDK (software development kit). Existe otra opción que es el Android NDK (Native Development Kit) para crear apps con C/C++. |