Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Presentacion proyecto Borealis - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 18 de mayo de 2026 por Adrián B.

13 visualizaciones

Descargar la transcripción

Hola, buenas tardes. Soy Adrián Blasco Martín y voy a mostrar mi propuesta para el proyecto Intermodular. 00:00:00
Esto es una aplicación que consta con una aplicación Android de Frontend y una de Java para el backend. 00:00:08
Se conectan las dos con un docker y todo el proyecto está hecho en inglés, también para ayudar con los RAs. 00:00:17
aplicados. La aplicación sirve para hacer una creación y edición de personajes de 00:00:23
dragones y mazmorras de 5e. Tiene todo lo necesario para guardar un personaje de forma 00:00:32
local, un personaje que sea funcional y jugable. La aplicación Android utiliza últimas tecnologías 00:00:40
desarrolladoras como Jetpack Compose, Material 3, Expressive y Navigation 3, entre otras. 00:00:49
Voy a explicar un poco cómo funciona por encima. Voy a empezar con el Docker que está aquí. 00:01:00
Simplemente es un contenedor que nos permite conectarnos con el resto de la aplicación. 00:01:07
Y aquí voy a mostrar lo que viene siendo el backend, que es la aplicación Java. 00:01:12
Voy a empezar por los DTOs, que es la clase que nos permite distinguir un poco, coger los datos de los JSON que estoy utilizando, de la API, y convertirlos en unos datos un poco más usables para la aplicación. 00:01:19
Aquí tengo otro, por ejemplo, uno es de las clases y otro es de hechizos, en este caso. 00:01:42
Y vamos a ver aquí el Data Loader. Es una clase que he utilizado para coger los datos del JSON y pasearlos a un formato más legible para poderlos utilizar en la aplicación. 00:01:49
Aquí tenemos también el service, es una estructura de datos funcional como hemos practicado en clase, con su service, su modelo, su todo. 00:02:07
Y aquí en el service podemos ver que tiene unos campos como cargar los datos del fichero, que llama, como hemos dicho antes, al data loader. 00:02:21
Tiene también para coger excepciones, manejarlas y tirar errores que no aparezcan. 00:02:31
Manejar los errores, controlarlos. 00:02:45
Y aquí por último tenemos el JSON. 00:02:47
Este he cogido un ejemplo así un poco complejo que vamos a ver después más a fondo en la aplicación Android. 00:02:51
si se ve un poco 00:02:59
voy a acercar la cámara un poquillo 00:03:02
ahí está 00:03:04
que se vea 00:03:05
tiene todos estos 00:03:07
campos que vamos a utilizar 00:03:10
y también tiene pues 00:03:12
el resto 00:03:14
de cositas 00:03:15
todo esto lo vamos a parsear 00:03:16
tenemos aquí los diferentes 00:03:20
hechizos que llegaré a ello 00:03:21
cuando lleguemos a la aplicación 00:03:23
Android 00:03:26
ahí está 00:03:26
Vamos a continuar ahora con la aplicación Android. La tengo aquí ya corriendo, se puede 00:03:28
ver aquí el emulador. Lo tengo también en mi móvil, pero no puedo porque estoy grabando 00:03:37
con mi móvil, no puedo mostrarlo. Pero funciona correctamente en el móvil, igual que en el 00:03:42
emulador. Entonces, vamos a ver ahora, vamos a empezar con esto, la base de datos. Estoy 00:03:48
utilizando una base de datos RUM generada, o sea, no la he creado yo a mano, sino que 00:04:00
estoy utilizando la que se genera con RUM, pero podemos ver aquí en el DAO, por ejemplo, 00:04:09
que estoy utilizando, pues las queries de SQL. 00:04:15
Voy a mostrarlo también ahí. 00:04:19
Aquí yo que se vea bien. 00:04:21
Ahí están las consultas SQL para la aplicación. 00:04:24
Vamos a continuar ahora con los entities. 00:04:32
Como hemos visto también en clase, 00:04:35
pasamos del modelo a los entities, 00:04:36
o sea, del DAO a los entities, 00:04:39
para tener esos datos, ¿no?, 00:04:41
que se pueden manejar correctamente más en la aplicación que como los recibimos. 00:04:43
Todo esto, lo de Room, se utiliza para almacenar ahora personajes que voy a mostrar en local. 00:04:52
Tenía una idea de ponerlos en la nube, de ponerlos en un servidor, como hemos visto también, 00:05:03
pero he pensado que no era necesario porque no es el objetivo que tengo para esta aplicación. 00:05:11
Entonces con Room me parecía que era más que suficiente y de hecho he comprobado que lo es en esta aplicación. 00:05:18
Vamos a continuar por aquí. 00:05:26
El Network Module, este, utilizamos aquí, como se puede ver, un Retrofit y un OKHttpClient 00:05:29
para poder 00:05:40
realizar la conexión con la app 00:05:44
la API es justo lo que hemos visto antes, el backend que tengo en Java 00:05:46
y vamos a continuar con el siguiente 00:05:51
que tengo aquí puesta una clase, una clase que es justo la del tipo 00:05:55
de clase que va a tener el personaje que vayamos a elegir 00:06:00
es la clase más compleja que diría yo que tenemos 00:06:03
podemos ver primero todos los valores que tiene 00:06:07
todos estos valores que son a tener en cuenta 00:06:11
que después se ven reflejados en la pantalla de detalles, muy curioso 00:06:16
vamos a continuar por aquí con el siguiente 00:06:21
esta es la parte yo diría más compleja de toda la aplicación 00:06:25
esto lo he puesto en la memoria del proyecto 00:06:29
y es la parte de los hechizos 00:06:32
Es muy curioso, porque cada clase puede tirar o no hechizos, entonces hay que hacer un filtro para saber qué clases pueden tirar hechizos, qué clases no. 00:06:36
Y esto es lo que hace. Además, los hechizos hay de dos tipos, hay cantrips y hechizos normales, hechizos por niveles, digamos. 00:06:50
Y estos se pueden conjurar dependiendo del nivel que tenga el personaje y de la clase. 00:06:58
entonces esta clase que es 00:07:04
diría de las más importantes 00:07:06
que tenemos por aquí 00:07:09
hace todo esto 00:07:10
va a coger aquí 00:07:12
el nivel 00:07:14
el nivel del personaje 00:07:17
y dependiendo de la progresión 00:07:19
que tengan los hechizos pues va a decir 00:07:21
tiene tantos hechizos 00:07:23
o tantos pocos 00:07:25
así que 00:07:27
es muy curioso, después vamos a verlo 00:07:29
en un ejemplo práctico 00:07:31
El siguiente, vamos a ver aquí el NavHost. Esto es súper simple. Esto es un fichero que nos ayuda a hacer la navegación de la aplicación. 00:07:33
Como he comentado antes, estamos utilizando Navigation 3. Entonces es lo más actual. Creo que todavía no ha salido nada nuevo. 00:07:45
y es lo que hemos visto en clase 00:07:54
así que esto es lo más actual 00:07:56
que existe por ahora 00:07:58
de navegación y funciona 00:08:00
muy muy bien 00:08:02
vamos a continuar aquí por 00:08:03
la API, como podéis ver es súper chiquitito 00:08:06
es simplemente coger 00:08:08
con el arroba get 00:08:10
el path 00:08:11
arroba path 00:08:14
vamos a coger 00:08:15
los datos justos que necesitamos 00:08:18
dependiendo de la situación 00:08:20
en este caso 00:08:21
en la que estoy mostrando es para las clases. Aquí tenemos un DTO, un DTO que es súper 00:08:24
similar al que hemos visto antes en el backend, como de todo, así enlazándolo. No es exactamente 00:08:30
igual porque me convenía más cambiar unas cositas para Android que como las tenía en 00:08:38
Así que, bueno, pues ha cambiado un poco, pero es muy similar para tener la consistencia de datos. 00:08:48
Aquí tenemos el AppChrome, que es un fichero de conveniencia, porque estaba repitiendo muchas partes de código y he dicho, vale, voy a sacar todo a un fichero aparte, y lo he puesto a todo lo que estaba repitiendo. 00:08:56
Cosas comunes como el Drawer que tenemos aquí arriba del móvil, el Button Bar que tenemos aquí también y esas cositas. 00:09:13
Las tengo aquí y así por cada pantalla que las va a tener solo llamo a este fichero y ya está. 00:09:24
Y se añade si lo importa. 00:09:31
Y aquí tenemos la pantalla de menú. Es justo esta pantalla que estamos viendo aquí. 00:09:35
esta es la pantalla más completa 00:09:40
que tiene toda la aplicación 00:09:44
porque tiene todos estos botoncitos 00:09:45
los podéis ver aquí 00:09:49
también tiene el button bar 00:09:50
un pequeño texto aquí 00:09:52
para decir de qué va la aplicación 00:09:54
y aquí es un dato curioso 00:09:57
que esta aplicación la probé con mi hermano 00:10:00
se la enseñé 00:10:02
y no se dio cuenta de que esto eran botones 00:10:03
estaba viendo 00:10:06
Se pensaba que era como solo texto, ¿no? Solo era información especial, ¿no? Y después se lo dije. Dije, pero es que son botones. Y pensé en poner este pequeño texto de ayuda que hay aquí. 00:10:08
de hecho lo voy a mostrar este pequeño texto que dice que puedes 00:10:27
tocar los botones y te va a llevar a la pantalla correspondiente 00:10:32
así que ahora voy una pequeña demostración de cómo funcionaría 00:10:37
la aplicación vamos a venir por aquí se ve el ratón 00:10:43
bien correctamente y bueno de primeras pues tenemos el menú 00:10:48
principal como he dicho antes el menú principal que tiene personajes hechizos 00:10:53
clases y gracias por todo esto que tiene también tenemos la pantalla de 00:11:00
personajes he dejado ya aquí uno uno preparado y llamado paco y vamos a 00:11:05
probar ahora también a crear uno para empezar vamos a ver los vamos a ver aquí 00:11:10
los hechizos los hechizos son todos estos hay muchos muchos muchos muchos 00:11:17
hechizos vale y que más aquí en el driver podemos pasar también a las otras dos cositas que tenemos 00:11:22
tenemos aquí los distintos tipos de clases y este que es más importante que son las razas como 00:11:29
podéis ver estamos cogiendo también imágenes aquí las imágenes las estoy sacando también de la app y 00:11:37
sólo los que tienen aquí podemos ver que estos por ejemplo no tienen no tienen pero porque no 00:11:46
existe imagen para ellos, entonces he dejado ahí una por defecto de los contactos, pero 00:11:51
el resto, los que sí que tienen imágenes, se pueden ver sus imágenes. Y a cada uno 00:11:57
tenemos su pantalla de detalle, ¿vale? Tenemos aquí su pantalla de detalle que nos dice 00:12:03
las distintas cosas que tienen. Y te puedes dar cuenta que aquí hay un más. Se lo podemos 00:12:08
asignar directamente a los personajes que tenemos vamos a ir de vuelta ahora a la de clases que voy 00:12:15
a mostrar también que estos pues más de lo mismo tienen todo en todo toda la información que 00:12:24
necesita y de los hechizos pues también lo mismo vamos a ver aquí alguno chulo este mismo y pues 00:12:29
nos pone lo mismo la descripción todo el rango la acción bueno todo lo que necesitas saber 00:12:40
Y vamos a probar ahora a ir a los personajes. 00:12:46
Vamos a ver este, que le tengo de ejemplo ya con todo, para que se vea todo bien. 00:12:50
Tiene aquí el nombre, que se puede cambiar. 00:12:55
Si me pongo aquí, sale para cambiar el texto. 00:12:57
Y ahí está. 00:13:02
Aquí, para subir o bajar de nivel, lo tengo a nivel 3 para mostrar ahora los hechizos. 00:13:04
Y, bueno, esta es la raza, que se llama Asimar. 00:13:10
La clase, que es Sorcerer. 00:13:13
que es un brujo hechicero 00:13:15
y aquí pues tenemos los distintos tipos de hechizos 00:13:18
tenemos cantrips 00:13:22
que los puedo coger y añadir en esta pantalla 00:13:23
me salen todos los cantrips y voy a probar a añadir este 00:13:26
y como se puede ver, este se ha añadido 00:13:30
voy a probar a quitarlo 00:13:33
se quita correctamente 00:13:36
sale el texto de que no hay ninguno seleccionado 00:13:38
y aquí tenemos un ejemplo de que 00:13:41
hay varios seleccionados pero no todos y deja añadir y aquí otro de salen todos 00:13:44
los que pueden estar seleccionados y no deja añadir ninguno se puede ver que 00:13:51
estoy clicando y no deja añadir 00:13:56
vamos a probar rapidito ahora hacer un personaje nuevo le vamos a llamar 00:14:01
paula 00:14:07
Ahí está. Y va a ser de nivel 4. Le vamos a poner de raza un goblin. 00:14:10
Mira, se puede añadir con esto. Ahora nos sale Paula aquí. Y también se puede añadir simplemente tocando. 00:14:20
Y de clase le vamos a poner uno que no pueda tirar hechizos. Por ejemplo, un bárbaro. 00:14:28
Y como se puede ver aquí, ya no aparecen los hechizos. 00:14:33
si salgo de aquí 00:14:36
vamos a ver que se ha puesto correctamente 00:14:39
la imagen y que es de nivel 4 00:14:41
y bueno, toda la 00:14:43
información que tiene 00:14:45
si volvemos al menú pues 00:14:46
podemos volver de nuevo 00:14:49
y sigue estando 00:14:51
y esta es mi aplicación 00:14:52
entera, espero que haya quedado claro 00:14:55
y bueno, cualquier duda diría 00:14:57
que espero preguntas 00:14:59
pero no hay nadie 00:15:01
a quien preguntar, así que 00:15:03
Un saludo y muchas gracias. 00:15:05
Idioma/s:
es
Materias:
Programación
Etiquetas:
Móvil (teléfono)
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
Autor/es:
Adrián Blasco Martín
Subido por:
Adrián B.
Moderado por el profesor:
Lucia San Miguel López (lucia.sanmiguel)
Licencia:
Todos los derechos reservados
Visualizaciones:
13
Fecha:
18 de mayo de 2026 - 20:56
Visibilidad:
Público
Centro:
IES FRANCISCO DE QUEVEDO
Duración:
15′ 10″
Relación de aspecto:
16:9 Es el estándar usado por la televisión de alta definición y en varias pantallas, es ancho y normalmente se le suele llamar panorámico o widescreen, aunque todas las relaciones (a excepción de la 1:1) son widescreen. El ángulo de la diagonal es de 29,36°.
Resolución:
848x478 píxeles
Tamaño:
108.98 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid