RA2 · verificado

RA2 de Programación Multimedia y Dispositivos Móviles · DAM

Desarrolla aplicaciones para dispositivos móviles analizando y empleando las tecnologías y librerías específicas.

Comprobar mi dominio con José →

Contenido verificado asociado a este RA

Fundamentos de la Arquitectura y Componentes de Interfaz de Usuario en Aplicaciones Móviles

Esta unidad introduce los patrones arquitectónicos comunes en el desarrollo móvil, la estructuración de clases fundamental y el uso de componentes básicos de interfaz de usuario como ventanas, menús, alertas y controles para construir aplicaciones gráficas sencillas.

Conectividad Inalámbrica y Comunicación de Red en Aplicaciones Móviles

Esta unidad aborda la implementación de funcionalidades de comunicación inalámbrica (Bluetooth, Wi-Fi Direct) y la gestión de intercambio de mensajes (SMS/MMS). También cubre el establecimiento de conexiones HTTP/HTTPS para interactuar con servicios web, asegurando la seguridad y eficiencia en la transferencia de datos.

Persistencia de Datos y Gestión del Almacenamiento Local

Esta unidad explora las diferentes estrategias para almacenar datos localmente en dispositivos móviles, garantizando la persistencia de la información. Se cubren desde el almacenamiento de preferencias simples hasta el uso de bases de datos relacionales para datos estructurados.

Optimización, Empaquetado, Despliegue y Documentación de Aplicaciones Móviles

Esta unidad se centra en las fases finales del ciclo de vida del desarrollo de aplicaciones móviles: la optimización mediante pruebas de interacción, el empaquetado y despliegue en dispositivos reales, y la documentación esencial para el mantenimiento y la colaboración.

Conceptos clave

Activity LifecycleFragmentViewViewGroupLayout XMLEvent HandlingAlertDialogMenú de opcionesBluetooth LEWi-Fi DirectSmsManagerIntents para comunicaciónHTTP/HTTPSREST APIOkHttpRetrofitPermisos de red y comunicaciónPersistencia de datos

Errores que conviene evitar

  • No entender el ciclo de vida de una Activity/Fragment: Causa que los datos no se persistan correctamente o que la UI se comporte de forma inesperada al rotar el dispositivo o al navegar. Corrección: Sobrescribir los métodos del ciclo de vida (ej. `onSaveInstanceState`, `onPause`, `onResume`) para guardar y restaurar el estado de la UI y los datos.
  • Bloquear el hilo principal (UI Thread): Realizar operaciones pesadas (ej. acceso a red o base de datos) directamente en el hilo principal provoca que la aplicación se congele y muestre un 'Application Not Responding' (ANR). Corrección: Utilizar hilos secundarios, Coroutines, AsyncTasks o bibliotecas como Retrofit/OkHttp para operaciones asíncronas.
  • NetworkOnMainThreadException: Intentar realizar operaciones de red en el hilo principal de la UI. Causa que la aplicación se bloquee. Corrección: Siempre ejecutar operaciones de red en un hilo secundario o usar mecanismos asíncronos (Coroutines, Callbacks).
  • No usar HTTPS para datos sensibles: Enviar credenciales o información personal a través de HTTP. Causa vulnerabilidades de seguridad. Corrección: Asegurarse de que todas las comunicaciones con datos sensibles utilicen HTTPS y verificar los certificados SSL.
  • Olvidar permisos de comunicación: No declarar los permisos necesarios (ej. `INTERNET`, `BLUETOOTH`, `SEND_SMS`) en el `AndroidManifest.xml`. Causa que las funcionalidades de comunicación fallen silenciosamente o con errores de seguridad. Corrección: Revisar la documentación de la API para los permisos requeridos y añadirlos al manifiesto.
  • Almacenar datos sensibles en Shared Preferences o almacenamiento externo público: Causa riesgos de seguridad, ya que estos datos pueden ser accesibles por otras aplicaciones o usuarios con acceso al dispositivo. Corrección: Utilizar almacenamiento interno privado o bases de datos cifradas para datos sensibles.
  • Realizar operaciones de base de datos en el hilo principal: Causa bloqueos de la UI y ANRs, especialmente con grandes volúmenes de datos o consultas complejas. Corrección: Siempre ejecutar operaciones de base de datos de forma asíncrona, utilizando Coroutines, LiveData o RxJava con Room.
  • No gestionar las migraciones de la base de datos: Al cambiar el esquema de la base de datos (añadir/eliminar columnas, cambiar tipos), si no se implementa una migración, la aplicación puede fallar al actualizarse o perder los datos del usuario. Corrección: Implementar `Migration`s en Room para manejar los cambios de esquema de forma controlada y segura.

Qué se evalúa en este RA

CE a

Se ha generado la estructura de clases necesaria para la aplicación.

CE b

Se han analizado y utilizado las clases que modelan ventanas, menús, alertas y controles para el desarrollo de aplicaciones gráficas sencillas.

CE c

Se han utilizado las clases necesarias para la conexión y comunicación con dispositivos inalámbricos.

CE d

Se han utilizado las clases necesarias para el intercambio de mensajes de texto y multimedia.

CE e

Se han utilizado las clases necesarias para establecer conexiones y comunicaciones HTTP y HTTPS.

CE f

Se han utilizado las clases necesarias para establecer conexiones con almacenes de datos garantizando la persistencia.

CE g

Se han realizado pruebas de interacción usuario-aplicación para optimizar las aplicaciones desarrolladas a partir de emuladores.

CE h

Se han empaquetado y desplegado las aplicaciones desarrolladas en dispositivos móviles reales.

CE i

Se han documentado los procesos necesarios para el desarrollo de las aplicaciones.

Canal Estudios es un servicio de Skillback S.L. · NIF B2481724 · Barcelona, España
Aviso legal · Privacidad · Cookies · Términos · Atles de Catalunya