Aplicación móvil de comercio y gestión de pedidos desarrollada como Trabajo Final de Grado.
Español · English · Caso de estudio · API
Visualización editorial de la arquitectura; no es una captura de la aplicación.
TFG Commerce reúne catálogo, carrito, pedidos, perfil y administración en una aplicación Android nativa. El cliente consume una API propia mediante Retrofit y adapta la navegación y las acciones disponibles al estado de autenticación y al rol del usuario.
| Tipo | Aplicación Android nativa |
| Rol | Desarrollo del cliente y conexión con la API |
| Año | 2025 |
| Estado | Código académico disponible; sin servicio público |
| Backend | TFG Commerce API |
- Registro, inicio de sesión, cierre global de sesión y cambio de contraseña.
- Catálogo, búsqueda, detalle de producto y carrito.
- Perfil, consulta de pedidos y cancelación según estado.
- Administración de productos, pedidos y usuarios.
- Personalización visual controlada desde el área administrativa.
- Preferencias locales de tema e interfaz.
flowchart LR
UI["Jetpack Compose UI"] --> VM["ViewModels"]
VM --> DATA["Repositories"]
DATA --> HTTP["Retrofit + Gson"]
HTTP --> API["TFG Commerce API"]
VM --> LOCAL["DataStore / preferencias privadas"]
La interfaz se organiza por pantallas y componentes Compose. Los ViewModels mantienen el estado de presentación y delegan la comunicación HTTP en la capa de datos. La URL de la API se inyecta durante la compilación.
- Compose sobre vistas XML: permite mantener la interfaz y su estado en Kotlin.
- Retrofit como frontera HTTP: centraliza el contrato con el backend y el tratamiento de respuestas.
- Sesión cerrada ante
401: evita conservar una sesión local inválida. - Backend configurable: la aplicación no queda ligada a una URL de producción inexistente.
- Estado académico explícito: no se publican cuentas, datos ni una demo que no se mantenga.
Kotlin · Jetpack Compose · Material 3 · Navigation Compose · Retrofit · Gson · Coroutines · DataStore · Coil
Requisitos:
- Android Studio con JDK 17 o superior.
- Android SDK 35.
- Una instancia local de la API.
El emulador usa por defecto:
http://10.0.2.2:8080/
Para indicar otra URL, que debe terminar en /:
.\gradlew.bat assembleDebug -PAPI_BASE_URL=https://api.example.com/.\gradlew.bat testDebugUnitTest assembleDebug lintDebugEste flujo ejecuta las pruebas unitarias, construye el APK de depuración y comprueba el proyecto con Android Lint. Los APK y directorios build/ no se versionan.
- Los valores de los tokens no se escriben en logs.
- Las preferencias de autenticación se excluyen de copias de seguridad y transferencias.
- La API y sus secretos se gestionan fuera de este repositorio.
- El token se conserva actualmente en almacenamiento privado de la aplicación.
Antes de un uso real, el almacenamiento del token debería migrarse a una estrategia respaldada por Android Keystore. Consulta SECURITY.md para ver los controles presentes y el trabajo pendiente.
app/src/main/java/com/example/tfg/
├── data/ # modelos, Retrofit y repositorios
├── ui/ # componentes, navegación, pantallas y ViewModels
└── utils/ # sesión, preferencias, carrito y textos
Este repositorio se publica como evidencia técnica de un proyecto académico. No representa una tienda operativa ni contiene datos reales.
