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.