Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Video TFG Habitos saludables - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Video TFG Hábitos saludables. Óscar Jiménez Martínez y Franklin Javier Oliveros
Muy buenas, mi nombre es Franklin Oliveros y junto a mi compañero Oscar Jiménez Martínez
00:00:01
vamos a presentar nuestro TFG, que en nuestro caso consiste en una aplicación Android
00:00:07
enfocada a la gestión de hábitos saludables.
00:00:14
La idea principal en esta aplicación es ayudar al usuario a registrar una rutina diaria,
00:00:18
registrar hábitos y medir su progreso
00:00:26
y además relacionar este progreso con su estado de ánimo
00:00:29
para así intentar darle una motivación extra al usuario
00:00:33
en este caso la app nace porque hoy en día
00:00:37
muchas personas quieren mejorar sus hábitos
00:00:41
pero les cuesta mucho mantenerle esa constancia, esa rutina
00:00:44
por lo cual nosotros estamos intentando buscar una solución
00:00:49
más sencilla, más visual y motivadora
00:00:52
para que no solo le permita registrar estos hábitos que quiere llevar a cabo, sino que también pueda generar un seguimiento con estadísticas y una cierta gamificación
00:00:56
para mantener a este usuario motivado y sobre todo usando nuestra aplicación.
00:01:07
El objetivo es una aplicación moderna en Android que integre la autenticación, la gestión de hábitos y registro emocional,
00:01:14
así como también un ranking de progreso y un mapa interactivo.
00:01:23
Además se buscó ampliar tecnologías que ya conocíamos como JPEG Compose,
00:01:30
también se usó Hilt Retrofit para la navegación y para el almacenamiento de datos en remoto usamos Supabase.
00:01:36
Lo decidimos así para tenerla bien estructurada y para prepararla para su crecimiento en caso de que se continúe.
00:01:45
Un poco en resumen, pues el propósito básico fue convertir el seguimiento de estos hábitos saludables en algo más fácil y visual y sobre todo más constante para el usuario, para que así de esta forma se sienta gusto al usar la aplicación y le sea más fácil a él mantener esta rutina.
00:01:53
Muy bien, ahora les voy a hablar un poco sobre las tecnologías y las herramientas que utilizamos en nuestro proyecto
00:02:17
Este proyecto está hecho básicamente en Kotlin para Android
00:02:26
Y para el desarrollo de las interfaces utilizamos JEPA Compose
00:02:32
Esto nos permitió construir las pantallas de una forma más limpia y sencilla en comparación con los XML tradicionales
00:02:36
Y para la navegación entre estas pantallas utilizamos Navigation Compose, lo que hace una navegación más segura y más ordenada.
00:02:45
En la parte de la arquitectura utilizamos un modelo ModelViewViewModel apoyado en StateFlow para separar la lógica de la presentación de la interfaz.
00:02:56
También usamos Heal para la inyección de dependencias y que de esta forma sea un poco más fácil construir los repositorios, las apples y los view models de forma separada para no acumular demasiado código en el mismo sitio.
00:03:10
Para la comunicación con el backend utilizamos Retrofit y como nuestro backend remoto también utilizamos Supabase para la base de datos que se conecta mediante su API REST.
00:03:27
En la parte del mapa se integró OSM Droid y para la localización necesaria para que este mapa te marque dónde estás exactamente utilizamos la ubicación de Google Play Services.
00:03:42
Además, para el tema visual de las interfaces, el proyecto usa material 3 y también usa corrutinas de Java, ya que trabajamos con fechas locales.
00:03:56
Perfecto, ahora vamos a pasar con las actividades realizadas en este proyecto.
00:04:12
Durante el desarrollo de nuestra aplicación, pasamos por varias actividades principales.
00:04:20
Primero, empezamos definiendo una estructura general de nuestro proyecto, como nuestra pantalla de login, que fue con la primera con la que empezamos trabajando.
00:04:26
Que el usuario se pueda no solo loggear si ya dispone de un usuario, sino también registrarse como un usuario nuevo.
00:04:39
nuevo. También empezamos definiendo las funcionalidades básicas como el inicio de sesión
00:04:47
que ya comenté, también la creación de hábitos que es lo básico de la aplicación, el sistema de
00:04:56
ánimo hacia el usuario, el sistema de progreso importante con tema de gamificación para mantener
00:05:04
al usuario enganchado un poco también que pueda ver el progreso de los demás usuarios y también
00:05:13
el mapa que fue una tecnología que no conocíamos y que nos tocó pues implementar por nuestra propia
00:05:20
cuenta después implementamos un sistema de autenticación tenemos una pantalla como ya
00:05:27
le comenté de login y de registro con una validación de correo y contraseña y una confirmación
00:05:37
de la misma contraseña. Y una vez el usuario ya se haya logueado o identificado, pues se
00:05:45
guarda su identificador en un sesión manual. Luego también implementamos la gestión de
00:05:52
los hábitos, que realmente esta es la parte importante, la más core de nuestra aplicación,
00:06:01
ya que de esto se trata. Integramos la creación de hábitos básicos, poder cargarlos por fecha para que el usuario los tenga ordenados,
00:06:07
también marcarlos como completados, eliminar los hábitos creados y consultar hábitos que quedan pendientes de días anteriores.
00:06:19
También se añadió el tema del registro del estado de ánimo
00:06:29
Donde el usuario puede seleccionar entre varias opciones y así ver su resumen acumulado
00:06:36
Y otra parte bastante importante del progreso fue el tema de la lista de los usuarios
00:06:42
Donde se obtienen los puntos y se genera un ranking visual
00:06:51
digo que esto es importante porque este es el sistema de gamificación
00:06:56
y como ya había comentado anteriormente
00:07:00
uno de nuestros objetivos principales era hacer que el usuario se sienta enganchado a la aplicación
00:07:03
de esta forma creo que logramos conseguir que el usuario se sienta un poco más motivado
00:07:11
al ver una lista de personas, compararse un poco con ellos
00:07:16
y así generar ese sistema de competitividad entre los usuarios
00:07:20
Esto nos puede llevar a que el uso de la aplicación sea más intenso y esto siempre es conveniente.
00:07:25
Y otra parte importante fue el tema del mapa, ya que es una tecnología que no habíamos usado anteriormente.
00:07:33
Es una de las partes más técnicas del proyecto, ya que combinamos el tema de los permisos de ubicación,
00:07:43
ubicación, que los utilizamos con Google Play Services y geolocalización en tiempo real con
00:07:49
OpenStreetMap y así asociamos estos puntos con el tema de los hábitos. Mientras trabajamos en
00:07:56
la aplicación los mayores problemas que encontramos fue al principio en la parte del mapa ya que no
00:08:06
ponía un punto que eran las oficinas de google y no nos ponía el lugar donde estábamos
00:08:21
y eso lo pudimos arreglar añadiendo la librería de google play service que es una ventanita que
00:08:29
te sale aquí al principio al usar el mapa pidiendo de los permisos de localización de la aplicación
00:08:39
Una vez dado esto, ya en la parte de la pantalla del mapa, en esta parte de aquí, nos pedirá los permisos de ubicación.
00:08:44
Si se lo hemos dado procederá a esta parte del método en la que cogerá tanto la latitud como la longitud para grabarla en el WeState en estos dos de aquí.
00:09:05
Y una vez con esto ya se pudo poder hacer esto de aquí.
00:09:20
El otro problema que se encontró, que fue muy común, era en el momento de hacer distintas, por ejemplo, crear un hábito, borrarlo, cambiarle el estado para todo,
00:09:24
tanto por aquí se puede ver, tanto como en crear, esto es la parte de crear un usuario, al registrarse nos daba problemas
00:09:45
y al principio no sabíamos muy bien por qué era, porque teníamos un mensaje que era este de aquí, que era solo al registrarse
00:09:59
Y no sabíamos muy bien cuál era el porqué
00:10:07
Si nos vamos aquí a hábitos
00:10:10
También nos pasa
00:10:13
Esto es al cargar los hábitos
00:10:15
Los completados y los pendientes
00:10:17
También nos pasaba
00:10:20
Luego nos dimos cuenta
00:10:22
Esto es la parte de marcar como completado
00:10:25
Que es esto de aquí
00:10:29
Deslizar a la derecha
00:10:32
Y nos dimos cuenta al final
00:10:33
que en home no hay
00:10:37
pero en los demás si
00:10:39
tanto en hábitos, mapa, ánimo
00:10:41
y creo que ya
00:10:43
pero
00:10:47
era un problema de las
00:10:49
policies de RLS
00:10:51
de Supabase
00:10:53
al final lo pudimos arreglar
00:10:54
de forma muy fácil ya que encontramos
00:10:57
este
00:10:59
pequeño trozo de código por internet
00:11:01
en foros
00:11:03
y nos dice
00:11:04
el código http del error y un poquito el mensaje que nos daba de problema muchas veces eran 401 y
00:11:06
403 al buscar en internet esos códigos descubrimos que era este esto de aquí por lo menos con las
00:11:15
rls de policías que al final se lograron arreglar fácilmente y dando permisos a los usuarios al
00:11:26
usuario que usamos en el usuario anon que es este de aquí
00:11:34
lo pudimos arreglar fácilmente y haciendo una llamada una query sql que
00:11:40
nos daba los permisos para poder editar las tablas y ese fue el mayor problema
00:11:48
que tuvimos ya que estuvimos un tiempo sin saber muy bien por qué
00:11:54
a continuación se va a mostrar un poco la funcionalidad de la aplicación y las
00:12:00
partes más importantes de la misma las primeras de todas es el login el cual cuando tú te registras
00:12:04
como un nuevo usuario y la base de datos se guardará en la tabla de usuarios a su vez cuando
00:12:14
se crea un nuevo usuario se creará un nuevo user stats para el mismo para almacenar los puntos que
00:12:23
son los que obtiene al finalizar hábitos bien vamos a hacer login con los usuarios
00:12:31
por ejemplo con este de aquí que tiene un par de hábitos y añadidos
00:12:39
y al entrar en la página de inicio vemos los puntos que tienen la persona y el último estado
00:12:52
de ánimo, el cual para el estado de ánimo hay una tabla en la que se va guardando el
00:12:59
estado de ánimo de la persona. El estado de ánimo se selecciona en esta ventanita
00:13:05
de aquí, en la cual el usuario puede seleccionar si hoy se encuentra mal, regular bien o muy
00:13:11
bien, y hay un pequeño resumen emocional de todas las veces que le da la persona. En
00:13:18
este caso pues soy por ejemplo muy bien y los guarda y se actualiza y en la base
00:13:25
de datos vemos que ya se ha actualizado con fecha
00:13:31
de hoy pero en el inicio sigue saliendo bien porque es
00:13:36
el estado de ánimo de ayer
00:13:41
la ventana de hábitos está hecha para que sólo muestre los
00:13:49
del día de hoy. En este caso, por ejemplo, yo añadí que hoy tengo como hábito beber
00:13:54
agua 5 vasos y aún está pendiente porque no está terminado. Cuando un usuario termina
00:14:01
un hábito, lo único que tiene que hacer es deslizar hacia la derecha, el hábito se
00:14:09
marca como completado y en este caso, si volvemos al inicio, nos habrá sumado 5 puntos al ser
00:14:15
un hábito de hoy. También podemos ver que en la parte de abajo tenemos los hábitos
00:14:22
pendientes. Voy a mostrar un momento la ventana de hábitos. Este es el método para marcar
00:14:28
cuando un usuario quiere completar un hábito, deslizarlo hacia la derecha y aquí está
00:14:37
apartado para los puntos y otra cosa que comentar es que si el hábito lo ha
00:14:44
completado por error se puede volver a marcar como que no lo ha completado y
00:14:51
restará los puntos que había añadido
00:14:56
bien en los propios hábitos tú puedes crear
00:15:00
ponerle un nombre, por ejemplo, correr, le dices dos kilómetros, y es para el día 20, por ejemplo, y si ahora nos vamos a la base de datos,
00:15:06
Veremos que si actualizamos la base de datos
00:15:23
Si actualizamos la base de datos
00:15:30
Bueno, perdón, no le he dado a crear hábito
00:15:35
Ahora que ya está creado
00:15:42
Vemos que si nos vamos al día 20
00:15:44
El hábito está aquí
00:15:47
Y dentro de la base de datos
00:15:49
Cuando recarguemos, ahora sí
00:15:52
Tendremos el hábito aquí guardado
00:15:54
Para los hábitos pasados
00:15:56
Está hecho de forma que
00:16:02
Si por ejemplo nos vamos al día de ayer
00:16:04
Si tenía hábitos
00:16:06
Pero al estar completados no se muestran
00:16:09
Solo se muestran los del día 13
00:16:11
Para hacer un ejemplo vamos a descompletar este
00:16:13
Y vamos a recargar otra vez la página
00:16:15
Y vemos que sale como que no está completado
00:16:18
Tanto hoy como ayer
00:16:21
Bien
00:16:23
En la ventana de mapa
00:16:24
Está hecho de tal forma que
00:16:26
Si le damos los permisos a la aplicación
00:16:30
Tarda un poquito
00:16:33
Nos marcará la zona en la que estamos ahora mismo
00:16:35
Porque usa los servicios de Google Play de ubicación
00:16:40
Entonces, ahora aquí podemos movernos por la aplicación y demás
00:16:43
Este punto, por ejemplo, es uno de los hábitos que ya había creado
00:16:48
Pero por ejemplo, como tenemos que correr, nos acercamos aquí al parque, mantenemos pulsado en la pantalla y le ponemos que para crear un punto y le ponemos que va a ser correr.
00:16:54
Y vemos que ya tiene el punto creado con el hábito que quieres hacer y la fecha para realizar ese hábito.
00:17:12
Bueno, otra pequeña cosa a comentar es que cuando estás en el mapa y, por ejemplo, el hábito del día 13 ya lo has completado, vamos a irnos al día 13, lo vamos a completar, al volver al mapa ya no se ve ese punto del hábito, ya que al estar completado se borró automáticamente del mapa.
00:17:21
Vale, ya para terminar como conclusión queremos decir que este proyecto nos ha permitido desarrollar una aplicación en Android relativamente completa
00:17:51
y sobre todo moderna y centrada en el usuario
00:18:06
nosotros hemos trabajado sobre todo la parte de la lógica interna ya que creíamos que era lo más importante
00:18:09
que la aplicación funcionara lo mejor posible, pero también hemos trabajado en la parte visual,
00:18:18
ya que para nosotros es importante que el usuario se sienta cómodo, ya que uno de los principales objetivos
00:18:25
era que el usuario se manteniese usando la app, así no solo creaba los hábitos, sino que se acostumbraba a seguirlos.
00:18:31
Para nosotros, la parte más valiosa, lo que nos queda, es que no solo desarrollamos una app de diferentes pantallas,
00:18:40
que consigue moverse, sino que realmente llegamos a conectar estos hábitos creando un sistema
00:18:47
de ánimo y de progreso y una experiencia relativamente coherente que era lo que realmente
00:18:55
buscábamos, un poco más enfocado al usuario. Además nos ha servido para practicar diferentes
00:19:02
tecnologías como Jetpack Compose, Hilt, Navigation Compose y el mapa que integramos con Google.
00:19:08
Y en definitiva, este proyecto creemos que cumple más o menos bien con el objetivo de ayudar al usuario a un seguimiento de estos hábitos de forma más visual, más sencilla y más motivadora,
00:19:17
que creemos que era lo que faltaba un poco en las aplicaciones de estos nichos
00:19:37
que ayuda al usuario a motivarse y a seguir conectado con sus hábitos
00:19:43
no solo de forma que los cree y se olvide de ellos
00:19:49
pues esta aplicación realmente no está del todo completa
00:19:53
todavía nos falta por desarrollar parte
00:19:58
y sobre todo si queremos que sea una aplicación totalmente completa
00:20:00
tendríamos que añadir ciertas funcionalidades todavía, como ampliar las notificaciones o permitirle al usuario exportar sus datos o sincronizarlo de una forma más avanzada
00:20:05
y crear un sistema de logros un poco más complejo y completo para así ayudar al usuario a sentirse aún más conectado con la aplicación.
00:20:18
Muchas gracias por atendernos en este video
00:20:29
Espero que les haya gustado este trabajo que llevamos a cabo
00:20:34
Tanto mi persona, Franklin Javier Oliveros Afonso
00:20:39
Como mi compañero Oscar Jiménez Martínez
00:20:42
Muchas gracias
00:20:45
- Materias:
- Programación
- Etiquetas:
- Aprendizaje Basado en Proyectos
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Autor/es:
- Oscar jimenez y Franklin Javier
- Subido por:
- Óscar J.
- Moderado por el profesor:
- Lucia San Miguel López (lucia.sanmiguel)
- Licencia:
- Reconocimiento - No comercial - Compartir igual
- Visualizaciones:
- 18
- Fecha:
- 17 de mayo de 2026 - 17:53
- Visibilidad:
- Público
- Centro:
- IES FRANCISCO DE QUEVEDO
- Duración:
- 20′ 47″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 163.20 MBytes