PMDM · Tema 1

Dispositivos móviles y entorno de desarrollo

Evolución del hardware, las tres familias de tecnologías de desarrollo, y la puesta en marcha de Android Studio.

Mapa del tema

Seis paradas antes de escribir la primera línea de Kotlin

01

Dispositivos móviles

Evolución, tipos y limitaciones de hardware.

02

Tecnologías

Nativo, multiplataforma y web/híbrido.

03

Android Studio

IDE, SDK, Gradle y ADB.

04

Emuladores

AVD, configuración, perfil, dp/sp.

05

Actividades

Las cuatro entregas del tema.

06

Proyecto A

Primer hito del proyecto continuo.

01 · Dispositivos móviles

Qué es un dispositivo móvil

Un equipo informático de tamaño reducido, alimentado por batería, con conectividad inalámbrica y pensado para usarse en movimiento.

Cada una de estas cuatro características impone una restricción real al software que vamos a escribir durante el curso.

01 · Dispositivos móviles

Cuatro etapas de evolución

1990–2000 Telefonía básica Voz y SMS 2000–2007 Feature phones Java ME, cámara 2007–2015 Smartphones Táctil, app stores 2015–hoy Ecosistema actual IA, wearables, plegables
01 · Evolución

Telefonía móvil básica (1990–2000)

  • →Tamaño: de maleta portátil a bolsillo en una década.
  • →Pantalla: monocroma, blanco y negro o verde suave.
  • →Funciones: llamar, SMS; con el tiempo, calculadora, alarma, snake.
  • →Icono: Nokia 3310 (2000) — duradero, autónomo, indestructible.
01 · Evolución

Feature phones (2000–2007)

  • →Del teléfono a la herramienta multimedia: ya no es solo llamar y mandar SMS.
  • →Pantalla a color + cámara: fotos y vídeo.
  • →Reproducción MP3 y aparición de tarjetas de memoria externas.
  • →Referentes: Blackberry (teclado completo, mensajería en red) y Nokia 5200 (MP3, flip deslizante).
Teléfono BlackBerry con teclado físico completo Nokia 5200 con pantalla flip deslizante
01 · Evolución

2007: el salto a smartphones

  • →iPhone: pantalla táctil capacitiva ocupando casi el 100% de la superficie, sin teclado físico.
  • →Tiendas de aplicaciones + sensores (GPS, acelerómetro).
  • →El salto clave para este módulo: el móvil se convierte en una plataforma abierta a desarrolladores externos.
Primera presentación pública del iPhone en Macworld 2007

Antes, programar para un móvil era una excepción; después, un sector completo.

01 · Evolución

Android como alternativa abierta

iOS

Ecosistema cerrado

Apple controla hardware y software; alto rendimiento y consistencia.

Android

Plataforma abierta

Elegida por fabricantes para entrar al mercado smartphone; hoy a la par en rendimiento.

La gran demanda de desarrolladores Android del mercado es la razón por la que este curso se centra en Android nativo.

01 · Dispositivos móviles

No todo es un teléfono

Smartphones

El caso mayoritario, el que usaremos en el proyecto.

Tablets

Misma plataforma, pantalla mucho mayor → diseños adaptables.

Wearables

Pantalla mínima, interacción de segundos, dependen de un teléfono cercano.

Plegables

La pantalla cambia de tamaño durante la ejecución.

Embarcados

TV, automoción: sin táctil, control por mando o voz.

Dispositivos muy distintos entre sí → apps responsive. El acceso a funcionalidades depende también de la versión de API.

01 · Dispositivos móviles

Programar bajo restricciones

Programar para móvil no es programar para escritorio con una pantalla más pequeña: es programar bajo restricciones que en un PC no existen.

01 · Hardware y limitaciones

Pantalla

  • →Tamaño reducido y muy variable entre modelos.
  • →Densidad de píxeles distinta: el mismo diseño ocupa distinto espacio físico.
  • →Dedo ≈ 9 mm: puntero mucho más impreciso que un ratón.
  • →Uso al aire libre: reflejos y brillo variable.
1920×1080 960×540 misma densidad física

Consecuencia: nunca se posicionan elementos en píxeles absolutos; objetivos táctiles necesitan mínimo 48 dp.

01 · Hardware y limitaciones

Procesador

  • →Arquitectura ARM, optimizada para consumo, no para potencia bruta.
  • →Throttling térmico: si el dispositivo se calienta, el sistema reduce la frecuencia del procesador.

Un cálculo intensivo sostenido acaba siendo más lento, no más rápido. Consecuencia: el trabajo pesado va fuera del hilo principal y, cuando es posible, se delega al servidor.

01 · Hardware y limitaciones

Memoria

  • →RAM limitada y compartida entre todas las apps abiertas.
  • →El sistema puede matar tu app en segundo plano para liberar memoria, sin avisar.

Esta es la razón de ser del ciclo de vida que veremos en el tema 2: una app móvil debe poder morir y resucitar sin que el usuario pierda datos.

01 · Hardware y limitaciones

Batería

  • →El recurso más escaso: pantalla, CPU, GPS, wifi, bluetooth, todo consume.
  • →Doze y restricciones de background: el sistema penaliza el consumo en segundo plano.

Consecuencia: no se hacen sondeos periódicos al servidor "por si acaso"; se usan notificaciones push y trabajo diferido.

01 · Hardware y limitaciones

Almacenamiento

  • →Espacio limitado y compartido con fotos, vídeos y otras apps.
  • →El usuario puede quedarse sin espacio en cualquier momento.
01 · Hardware y limitaciones

Conectividad

  • →Intermitente por definición: túneles, ascensores, cambio de wifi a datos móviles.
  • →Ancho de banda y latencia variables; los datos móviles pueden tener coste.

La red no es fiable. Toda operación de red necesita gestión de error y, preferiblemente, caché local (unidad 4).

01 · Hardware y limitaciones

Sensores

A diferencia de un PC, un móvil sabe dónde está, cómo está orientado y qué le rodea.

Acelerómetro · Giroscopio · Magnetómetro

GPS · Luz ambiental · Proximidad

Cámara · Micrófono · NFC · Huella

Hablaremos de estos sensores en la unidad 6.

01 · Dispositivos móviles

Resumen: escritorio frente a móvil

AspectoEscritorioMóvil
EnergíaIlimitada (enchufe)Batería, recurso crítico
MemoriaAbundanteLimitada; el SO puede matar la app
ConectividadEstableIntermitente y con coste
PantallaGrande, fijaPequeña, muy variable
EntradaTeclado y ratónDedo (impreciso)
Ciclo de vidaVive hasta que se cierraEl sistema la suspende y destruye
02 · Tecnologías de desarrollo

Cómo construir tu aplicación móvil

No es una elección técnica sin consecuencias: afecta a lenguajes, herramientas, rendimiento y al coste de mantener la app en cinco años.

Cambiar de tecnología a medio camino es un proceso costoso: puede durar meses o años. La IA reduce parte de esa complejidad, pero trae consigo mantenimiento de código ajeno y más tiempo de testing.

02 · Tecnologías de desarrollo

1 · Desarrollo nativo: el control total

  • →Android: Kotlin (oficial desde 2019) o Java, en Android Studio.
  • →iOS: Swift, en Xcode (solo macOS).
✓ máximo rendimiento
✗ dos proyectos completos
Tu código SO sin intermediarios
02 · Tecnologías de desarrollo

2 · Desarrollo multiplataforma

Escribir una sola vez, ejecutar en muchos sitios. Cada framework lo intenta de una forma distinta.

TecnologíaLenguajeEstrategia
FlutterDartDibuja todo desde cero con Skia (motor propio)
React NativeJS / TSTraduce componentes a controles nativos reales
.NET MAUIC#Abstracción: MAUI traduce a cada plataforma
Kotlin MultiplatformKotlinComparte lógica; interfaz nativa por plataforma
02 · Tecnologías de desarrollo

Multiplataforma: el precio del compromiso

✓ 50-70% más barato de mantener

Un equipo web que sabe React puede ser productivo con React Native sin aprender dos SDKs nativos.

  • ✗Capa intermedia: novedades del SO llegan semanas o meses después.
  • ✗Grietas en la abstracción: a veces hay que escribir código nativo igualmente.
  • ✗Tamaño mayor: un "Hello world" en Flutter pesa el doble que en nativo.
  • ✗Rendimiento: nunca es máximo, aunque suele ser bueno.
02 · Tecnologías de desarrollo

3 · Web e híbridas: la puerta fácil

PWA

Web instalable desde el navegador. Sin tienda, sin revisión, se actualiza sola.

Híbridas

Cordova, Ionic, Capacitor: web dentro de un contenedor nativo con acceso a algunas APIs del dispositivo.

Reutilización inmediata del código web, pero rendimiento y acceso al hardware son los más limitados de las tres familias.

02 · Tecnologías de desarrollo

Comparativa: qué elegir

CriterioNativoMultiplataformaWeb / Híbrido
RendimientoMáximoAltoMedio-bajo
HardwareTotalAlto (a veces plugin)Limitado
Coste multiplataformaAltoBajoMuy bajo
Novedades del SOInmediatasCon retrasoMucho retraso
02 · Tecnologías de desarrollo

Preguntas que importan

  • 1¿Cuántas plataformas hay que cubrir?
  • 2¿Qué exigencia de rendimiento tiene la app?
  • 3¿Cuánto hardware específico usa?
  • 4¿Qué sabe hacer el equipo?
  • 5¿Qué ciclo de vida tiene el producto?
  • 6¿Cuál es el presupuesto real?
02 · Tecnologías de desarrollo

Qué usaremos: Android nativo + Kotlin

  • →Sin capas intermedias que oculten sensores, permisos, ciclo de vida y servicios.
  • →Kotlin es la recomendación oficial de Google desde 2019, sintaxis cercana a Java.
  • →Herramientas gratuitas en Windows, macOS y Linux.
  • →Base sólida para aprender después cualquier framework multiplataforma.

No es una recomendación universal: saber argumentar tu elección forma parte del criterio de evaluación 1b.

03 · El entorno

Android Studio: requisitos previos

RecursoMínimoRecomendado
RAM8 GB16 GB o más
Disco12 GB libres30 GB
Procesadorx86_64 con virtualizaciónVirtualización activada en BIOS

El emulador necesita virtualización por hardware (Intel VT-x, AMD-V o SVM Mode). Si está desactivada, el emulador no arranca o va inutilizablemente lento.

03 · El entorno

Las piezas del entorno

terminal
$ adb devices # Lista dispositivos conectados $ adb install app.apk # Instala una aplicación $ adb logcat # Muestra el log del sistema $ adb shell
Android SDK Manager con las pestañas SDK Platforms, SDK Tools y SDK Update Sites
03 · El entorno

Estructura de un proyecto

MiProyecto/
app/ build.gradle.kts # config. del módulo src/main/ AndroidManifest.xml # declaración app java/com/ejemplo/ # código Kotlin res/ drawable/ layout/ values/ mipmap/ build.gradle.kts # config. proyecto settings.gradle.kts
  • →Código y recursos separados: textos, colores e imágenes van en res/.
  • →El Manifest es la tarjeta de identidad: pantallas, permisos, arranque (tema 2).
03 · El entorno

minSdk, targetSdk y compileSdk

PropiedadQué significa
compileSdkAPIs disponibles al escribir código; siempre la más reciente estable
minSdkVersión mínima de Android donde se instala; bajarla amplía el público
targetSdkVersión para la que la app declara estar preparada

Android Studio muestra el porcentaje de dispositivos cubierto por cada nivel de API. minSdk 24 (Android 7.0) cubre casi todo el parque actual.

03 · El entorno

Fragmentación y compatibilidad

Coexistencia de muchas versiones de Android y modelos de dispositivo en el mercado a la vez.

Kotlin
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // Código solo para Android 13+ } else { // Alternativa para versiones anteriores }

Las bibliotecas AndroidX (Jetpack) existen para esto: una API única que resuelve internamente las diferencias entre versiones.

04 · Emuladores y perfiles

Qué es un AVD

1

Perfil de hardware

Tamaño de pantalla, densidad, RAM, sensores, cámara.

2

Imagen del sistema

Versión de Android (API 30, 34, 35…) y arquitectura.

3

Configuración

Orientación, memoria, aceleración gráfica, almacenamiento.

Asistente Create Device del Device Manager de Android Studio, seleccionando el perfil de hardware

Device Manager → Create Device. Las imágenes con Google Play incluyen servicios de Google; x86_64 es mucho más rápido que ARM en PC.

04 · Emuladores y perfiles

Configuración frente a perfil

Configuración

«¿Qué clase de dispositivo es este?» Tamaño, densidad, memoria, sensores presentes. Se materializa en cualificadores de recursos (values-en, layout-land, drawable-xxhdpi).

Perfil

Relación entre dispositivo y app: qué APIs hay, qué requisitos exige. Se define con minSdk/targetSdk y <uses-feature> en el Manifest.

Google Play filtra automáticamente el catálogo: un dispositivo sin cámara no verá una app que la requiere.

04 · Emuladores y perfiles

Densidad de pantalla: dp y sp

UnidadUsoDefinición
dpTamaños y márgenes1 dp = 1 px a 160 ppp
spSolo textoComo dp, respeta el tamaño de fuente del usuario
pxCasi nuncaPíxel físico real
activity_main.xml
<Button android:layout_width="wrap_content" android:layout_height="48dp" android:textSize="16sp" />

Usar sp en el texto no es cosmético: es accesibilidad. Si el texto está en dp, el ajuste de fuente del sistema se ignora.

04 · Emuladores y perfiles

Emulador frente a dispositivo real

EmuladorDispositivo real
Variedad de configuracionesAlta, gratuitaLimitada al hardware disponible
Sensores y redMuy cómoda de simularDifícil de controlar
Fidelidad de rendimientoEngañosaLa única fiable
Cámara, Bluetooth, NFCLimitados o ausentesCompletos

Conclusión práctica: el emulador sirve para desarrollar y cubrir variedad; el dispositivo real es imprescindible para validar rendimiento y hardware. Se usan los dos.

04 · Emuladores y perfiles

Depurar en un dispositivo real

  • 1Ajustes → Información del teléfono, pulsar 7 veces en Número de compilación.
  • 2Ajustes → Opciones de desarrollador → activar Depuración por USB.
  • 3Conectar por cable y aceptar el diálogo de autorización.
  • 4Comprobar con adb devices que aparece en la lista.
05 · Actividades del tema

Cuatro entregas

A1.1

Estudio comparativo

Tres tecnologías de familias distintas, comparadas. Criterios 1a, 1b.

A1.2

Puesta en marcha

Android Studio + 3 AVD con perfiles distintos. Criterios 1c, 1d, 1e, 1h.

A1.3

Análisis de limitaciones

Especificaciones de un dispositivo real + 3 conclusiones de diseño. Criterios 1a, 1d.

A1.4

Proyecto A: propuesta

Primer hito del proyecto continuo del curso. Criterios 1a, 1b.

06 · Proyecto A

La plantilla de propuesta

  • →La idea en una frase: «Una app que permite a [quién] hacer [qué] para [para qué]».
  • →Personas usuarias concretas, no «todo el mundo».
  • →3–4 funcionalidades imprescindibles, no diez.
  • →Pantallas, bocetos y datos que maneja la app.
06 · Proyecto A

El apartado que decide la viabilidad

RequisitoTema
Persistencia de datos4
Servicio web5
Sensor o localización6
Contenido multimedia7

Si alguna casilla queda vacía, la idea todavía no sirve para el proyecto: hay que estirarla o cambiarla. Vale más descubrirlo ahora que en febrero.

Fin del tema 1

El móvil no es un PC pequeño

Es una plataforma con restricciones propias — y esas restricciones son el punto de partida de todo lo que programaremos este curso.

01 / 01
PMDM · Tema 1