|

Ricardo / Móviles 2

Trabajos de Móviles 2

Parcial 1

Tarea 1 (1.1) Kotlin vs Java

Mapa mental comparando Kotlin y Java para desarrollo móvil.

Ver mapa mental

1.2.- Conceptos básicos de Aplicaciones con Android Studio

Presentación con los conceptos fundamentales de desarrollo en Android Studio.

Diapositivas 18 y 19

Ver presentación

1.3.- Conceptos básicos de Programación en Java

Diagrama con los conceptos esenciales de programación en Java.

color rojo, pagina 75

Ver diagrama

1.4.- Desarrollo con Android Studio

Documentación y recursos sobre desarrollo con Android Studio.

Ver recursos

Parcial 3

3.3.- Análisis de Código: Aplicación Android con Conexión a Servidor MySQL

Documento técnico detallado sobre análisis de una aplicación Android.

Análisis de Código: Aplicación Android con Conexión a Servidor MySQL

Resumen General

Esta es una aplicación Android que permite:

  1. Insertar datos (nombre y correo) en una base de datos MySQL a través de un servidor PHP
  2. Sincronizar y mostrar los datos almacenados en la base de datos

Arquitectura y Componentes

1. Configuración de Red (network_security_config.xml)
  • Permite tráfico HTTP claro (no HTTPS) solo para el dominio/IP 192.168.16.207 y sus subdominios
  • Recomendación de seguridad: En producción, deberías usar HTTPS y certificados válidos
2. Manifest (AndroidManifest.xml)
  • Declara el permiso INTERNET necesario para las conexiones de red
  • Configura la actividad principal MainActivity
  • Falta: No referencia el archivo de configuración de seguridad de red (debería añadir android:networkSecurityConfig="@xml/network_security_config" en la etiqueta <application>)
3. Actividad Principal (MainActivity.kt)
  • Usa Volley para las peticiones HTTP
  • Implementa dos funciones principales:
    1. subirDatos(): Envía datos al servidor via POST
    2. sincronizarDatos(): Obtiene datos del servidor via GET y los muestra en un GridLayout
4. Dependencias (libs.versions.toml)
  • Incluye las bibliotecas estándar de Android (Core KT, AppCompat, Material Design)
  • Nota: Falta declarar explícitamente la dependencia de Volley (aunque parece estar funcionando)

Problemas Potenciales

1. Seguridad
  • Uso de HTTP en lugar de HTTPS
  • IP hardcodeada (debería ser configurable)
  • No hay manejo de autenticación con el servidor
2. Experiencia de Usuario
  • No hay indicadores de carga durante las operaciones de red
  • El GridLayout podría no ser la mejor opción para mostrar datos tabulares
3. Mantenimiento
  • La URL del API está hardcodeada
  • No hay manejo avanzado de errores

Recomendaciones de Mejora

1. Seguridad
  • Implementar HTTPS con certificados válidos
  • Mover la URL del API a recursos/configuración
  • Considerar añadir autenticación
2. Código
  • Refactorizar la lógica de red a un repositorio separado
  • Implementar ViewModel para separar la lógica de la UI
  • Usar RecyclerView en lugar de GridLayout para mostrar datos
3. UX
  • Añadir ProgressBar durante las operaciones de red
  • Mejorar el formato de visualización de datos
  • Implementar pull-to-refresh
4. Manejo de Errores
  • Proporcionar mensajes de error más descriptivos
  • Manejar casos de falta de conexión

Conclusión

La aplicación cumple con su función básica de CRUD contra un servidor MySQL, pero necesita mejoras significativas en seguridad, arquitectura y experiencia de usuario para ser considerada lista para producción. El código actual sirve como buen punto de partida para un proyecto de aprendizaje.