Saltar navegación

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

Clase 30-01-24 - 2 - 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 30 de enero de 2024 por Raquel G.

7 visualizaciones

Descargar la transcripción

Bueno, pues, entonces, volvemos a nuestro get up, 00:00:00
este de aquí, este get up. 00:00:03
Entonces, la parte de instalarla es esta de aquí. 00:00:06
Entonces, antes de hacer todo esto, 00:00:09
vamos a mirar que tenga espacio suficiente, ¿verdad? 00:00:11
Entonces, ¿cómo os gustaría hacer esto? 00:00:15
¿Dónde lo meteríamos? 00:00:22
¿Vale? 00:00:25
O sea, esta copia de aquí, la idea es mirar de esta 00:00:26
aplicación, la que me saca la copia, 00:00:30
mirar su tamaño y ver que su tamaño es menor o igual que el 00:00:33
que queda en el móvil. 00:00:35
Ya está, simplemente. 00:00:36
¿Tiene sentido anidar el form de comprobar si está instalada? 00:00:38
A ver, es meter esto en. 00:00:45
¿Anidarlo dentro de otro para comprobar si hay espacio? 00:00:46
A ver, no, no. 00:00:48
No hace falta anidar form. 00:00:48
O sea, es meter esto en un if. 00:00:49
O sea, eso se hace si hay espacio. 00:00:52
Si no lo hay, no se hace, ¿no? 00:00:54
Ya está. 00:00:56
Es meter eso en un if y se acabó. 00:00:56
Esa es la parte, toda esa parte que me instala la aplicación. 00:00:58
Esa parte solo la hago si hay espacio disponible. 00:01:01
Y ya está, ¿vale? 00:01:04
Entonces, esto yo lo puedo meter en un if. 00:01:06
Podemos recoger la condición en un boolean o ver si podemos 00:01:11
aquí directamente expresar la condición. 00:01:16
¿Hay espacio disponible? 00:01:18
Vamos a, entonces, la idea es que esto tiene que ir en un if. 00:01:20
O sea, es una forma de plantearlo, ¿no? 00:01:25
Esto efectivamente, esto se va a hacer solo si hay espacio 00:01:28
disponible, ¿vale? 00:01:37
Entonces, ahora ya la siguiente pregunta es, 00:01:38
aquí no hemos perdido la idea de siempre. 00:01:40
Y es que siempre tenemos que ir pensando en cajas negras. 00:01:42
Lo que decía desde el principio, pues, 00:01:49
es que sigue aplicable. 00:01:50
Aquí tengo ya una caja negra, que ahora ya es blanca porque ya 00:01:53
sé lo que contiene, ya hecha, que es instalarla. 00:01:56
Esta es la caja negra. 00:01:59
A ver, que me gusta más sacar esto a un método porque queda 00:02:01
más bonito, lo saco a un método, pero eso ya es lo de menos. 00:02:03
Y ahora, esta caja negra de instalar la tendré que meter 00:02:06
en una condición, ¿vale? 00:02:12
Bueno, pues, ahora es lo mismo que íbamos trabajando al 00:02:15
principio. 00:02:19
Y ahora, esa condición, ¿cómo la saco? 00:02:19
¿Cómo la expreso? 00:02:22
Pues, inmediata. 00:02:22
Yo puedo directamente poner, ¿cómo averiguo si hay espacio 00:02:24
disponible? 00:02:26
Pues, hay espacio disponible, perdón. 00:02:27
Sí, lo que pasa es que el estatus no te devuelve el 00:02:31
disponible de retorno. 00:02:34
Te lo muestro por consola. 00:02:37
Entonces, podríamos, claro, podríamos modificarlo, 00:02:38
hacer otro. 00:02:41
La idea sería comparar el tamaño de la aplicación esta, 00:02:42
que es la que se va a instalar, comparar el tamaño de esta, 00:02:46
que es la que se va a instalar, compararlo con el que queda. 00:02:49
A ver si es menor que el que queda. 00:02:52
Entonces, el problema es que el método de estatus, 00:02:54
que te mira el que queda, no te lo devuelve el valor de 00:02:56
retorno. 00:02:59
Es una pena. 00:02:59
Entonces, bueno, pues, pero, ¿esto cómo podríamos trabajar? 00:03:01
Pues, mira, podemos hacer, sí, el tamaño de la aplicación que 00:03:09
yo voy a instalar, que es esta. 00:03:12
Esta es la copia que yo voy a instalar. 00:03:16
Pues, si esta aplicación punto getTamaño, 00:03:20
ups, punto getTamaño, si esta resulta que es menor que qué? 00:03:24
Que el espacio disponible. 00:03:32
Aquí nos viene el espacio disponible. 00:03:35
¿Y cómo hago yo el espacio disponible? 00:03:37
Pues, mira, hace una cosa. 00:03:39
Ojalá tuviera yo un método que me devuelva el espacio 00:03:40
disponible. 00:03:42
Pues, venga, voy a soñar y digo que sí, 00:03:43
que hay un método que me devuelve el espacio disponible 00:03:46
en el telefonito. 00:03:50
Ya está. 00:03:51
Porque si hay ese método, estupendo. 00:03:52
Si el tamaño de la aplicación es menor que el espacio disponible, 00:03:55
ya hago esto. 00:04:00
Ahora ya simplemente me hago un método auxiliar que me devuelva 00:04:01
el espacio disponible de mi teléfono, 00:04:06
que es lo mismo que hace status, pero en lugar de mostrarlo en 00:04:09
consola, devolverlo. 00:04:11
Y tan ricamente. 00:04:13
Pues, venga, vamos a hacernos ese método. 00:04:15
Este. 00:04:18
¿Dónde me lo ha puesto? 00:04:22
Aquí. 00:04:23
Vamos a hacérnoslo. 00:04:23
Lo tengo tan fácil como copiar y pegar lo que había en status. 00:04:26
¿Qué era esto? 00:04:34
Así, por ejemplo. 00:04:40
Control-V y retún cantidad. 00:04:44
Ala, ya tengo. 00:04:46
Ya tengo un método que me devuelve el espacio que queda 00:04:47
en mi móvil. 00:04:56
Este método me devuelve el espacio que queda en mi móvil. 00:04:58
Le pongo privado porque es un método auxiliar que yo me lo 00:05:01
he hecho para facilitarme el código y que quede más bonito. 00:05:04
Y le llamo solo desde esa clase. 00:05:07
Entonces, todo lo que hemos hecho para uso nuestro, 00:05:10
uso y disfrute nuestro de nuestra clase, 00:05:14
para organizar el código, todo privado, 00:05:16
solo se hace público lo que realmente queremos ofrecer al 00:05:18
exterior, solo. 00:05:22
Esto no lo queremos ofrecer al exterior. 00:05:23
Esto lo hemos hecho para facilitar nuestro código. 00:05:25
Vale. 00:05:27
Pues, ya está. 00:05:28
Este método nos va a devolver el espacio disponible. 00:05:29
Pues, esto me facilita ya mi condición. 00:05:32
Si el tamaño de la aplicación que yo voy a instalar resulta 00:05:35
que es más pequeñito, bueno, estoy poniendo la condición muy 00:05:39
tonta. 00:05:44
Sí, perdón, no, la estoy poniendo bien, ¿no? 00:05:47
Ya se me va la cabeza. 00:05:49
Es más pequeño que el que me queda, que el que me queda. 00:05:51
Pues, ya está. 00:05:54
Procedo a instalar. 00:05:55
Ala. 00:05:59
Y ya, en principio, lo tengo. 00:06:01
Entonces, lo que nos faltaba era, efectivamente, 00:06:03
esta parte meterla en una condición. 00:06:05
Entonces, cuando el programa está estructurado, 00:06:08
es más fácil ampliarle funcionalidades. 00:06:10
Como sea una cosa, no es por faltar. 00:06:13
Como tu mogollón, cualquier pequeño cambio que le quieras 00:06:17
hacer, te has vuelto loco. 00:06:21
Y ese es el problema de una aplicación, 00:06:22
que no la puedas mantener. 00:06:24
Entonces, si más o menos está bien estructurada, pues, 00:06:26
nosotros, ah, que se nos ha olvidado añadir esto. 00:06:29
¿Un mogollón como ese harías un diorame? 00:06:32
¿Perdón? 00:06:35
¿Harías un diorame? 00:06:36
Bueno, a ver, más que un diorame, lo que harías, 00:06:38
o sea, más que eso, lo que harías, yo creo, 00:06:42
es hacerla desde el principio otra vez. 00:06:45
Pero todo lo que has hecho, desde luego, 00:06:49
está muy bien porque te ha ayudado a aprender. 00:06:52
Claro, que sí, sí, sí, todo ese proceso está fenomenal. 00:06:56
¿Vale? 00:07:00
¿El método de espacio disponible? 00:07:01
Pues, es el mismo que hicimos en status. 00:07:08
Es lo mismo, pero que te lo devuelve con ahorro de retorno, 00:07:11
en lugar de mostrarlo por consola. 00:07:15
¿Vale? 00:07:19
Pues, nada. 00:07:20
Entonces, nosotros aquí, como teníamos clara la estructura de 00:07:21
nuestro método, lo teníamos ahí todo marcado, 00:07:23
¿qué hemos tenido que añadir? ¿Algo? 00:07:26
Ha sido una línea, ya está, ha sido una línea. 00:07:28
¿Vale? 00:07:31
Entonces, cuando hay una estructura en el código, 00:07:31
añadir cosas es sencillo. 00:07:34
¿Vale? 00:07:37
Es sencillo. 00:07:37
Bueno, pues, esto no sabemos si funciona o no, pero, bueno, 00:07:39
vamos a hacer el método que queda y ya hacemos la prueba de 00:07:50
todo ahí a mogollón y ya está. 00:07:53
Y el método que queda es el de eliminar una aplicación. 00:07:56
Eliminarla, que es quitarla del array. 00:08:02
Pues, nada, eso es quitar una cosa del array y se acabó. 00:08:04
No, es más historia. 00:08:06
Pues, venga, vamos a hacer, este ya sí que es público, 00:08:09
public void removeApp. 00:08:15
Y se le daba el nombre, ¿verdad? 00:08:20
RemoveApp, se le daba el nombre de la aplicación a eliminar. 00:08:23
Vale. 00:08:33
Pues, ala, eliminar. 00:08:36
Bueno, pues, eliminar. 00:08:48
Hombre, lo ideal sería primero verificar a ver si está, 00:08:49
porque si no está, no hay nada que eliminar. 00:08:53
Y tenemos la seguridad de que está, pues, entonces, 00:08:55
ahora ya sí que hacemos un array con una posición menos y 00:08:57
copiamos del viejo en el nuevo, saltándonos la que hay que 00:09:01
eliminar. 00:09:04
Pero cuidado antes de hacerlo, de hacer un array con una 00:09:06
posición menos y copiar viejo en el nuevo, 00:09:08
porque si la aplicación no está, algo no va a fallar en los 00:09:11
límites. 00:09:14
Entonces, pues, bueno, podríamos a ver, 00:09:16
vamos a ver primero, vamos a verificar si la aplicación 00:09:18
está. 00:09:20
Vale. 00:09:29
Entonces, vamos a, para cada aplicación en instaladas, 00:09:29
sí, a.getNombre, equals al nombre que me han dado. 00:09:37
Entonces, está, ala. 00:09:46
La aplicación está igual a true. 00:09:49
Está igual a true. 00:09:52
Listo. 00:09:54
Y ahora ya, ¿que la aplicación está? 00:09:55
Pues, entonces, es cuando ya tengo que hacer todo el rollo, 00:09:58
porque si no está, no hago nada. 00:10:02
¿Que la aplicación está? 00:10:05
Pues, entonces, me hago un array con una posición menos y copio 00:10:08
el viejo en el nuevo, saltándome la que se llame así. 00:10:12
Pues, entonces, ahora ya nos hacemos el array auxiliar, 00:10:17
un array auxiliar de aplicaciones que tiene el tamaño de los 00:10:23
instaladas menos 1, porque vamos a quitar 1. 00:10:28
Ahora no vamos a ampliar 1, vamos a quitar 1, luego menos 1. 00:10:37
Y ahora ya copiamos viejo en nuevo, 00:10:41
sea menor que instaladas.length, incrementando i. 00:10:47
Ahora, el viejo y el nuevo, esto ya lo he hecho otras veces, 00:10:58
pero, bueno, es un poco más raro. 00:11:01
El viejo y el nuevo van con índices distintos. 00:11:03
Porque, entonces, i va a ser para el índice de instaladas y 00:11:07
j va a ser para el índice de nuevo. 00:11:14
Empiezan en 0, se van incrementando, 00:11:22
¿pero qué hacemos ahora? 00:11:25
Si instaladas de i.getNombre es distinto del nombre, 00:11:27
en ese caso copio un no aquí delante. 00:11:40
En ese caso, perdón, me pasa de lista, este aquí no. 00:11:45
En ese caso, aux de j igual a instaladas de i, 00:11:52
y j lo incremento, y ya está. 00:12:04
Bueno, y me faltaría, una vez que ya he hecho la copia, 00:12:14
actualizar y que instaladas pase a ser aux, así. 00:12:16
Vale, pues esto, creamos un array con una posición menos. 00:12:25
Vamos recorriendo el array. 00:12:29
Todas las aplicaciones que no estén se van guardando en 00:12:31
posiciones consecutivas de j, donde j ha empezado en 0. 00:12:34
Luego habrá solo una vez en la cual no entremos en este if, 00:12:39
solo una vez no entremos en este if. 00:12:43
O sea, j porque j es el índice de aux, 00:12:47
que es que ese índice va a haber una vez que no tenga que 00:12:51
saltar, que no salte, porque va a haber una vez que el if sea 00:12:55
falso. 00:12:57
Entonces, vamos a ir copiando todas, pero saltándonos una, 00:13:06
solo saltándonos una, y en la que no saltamos el j no avanza. 00:13:12
Claro, se queda ahí parado, el j no avanza. 00:13:15
Por eso aquí no hemos puesto j más más, 00:13:18
porque j no avanza siempre. 00:13:19
J avanza solo cuando escribimos en ella, solo. 00:13:21
El j no avanza en cada iteración. 00:13:25
El j avanza solo cuando escribimos. 00:13:27
Y, hombre, a ver, para que la aplicación no fuera tan coja, 00:13:43
podríamos ponerle un System.out que en el caso de que no 00:13:46
estuviera, me diga la aplicación no está. 00:13:52
Algo, ¿no? 00:13:56
Hombre, que saber si lo ha hecho o no lo ha hecho. 00:13:57
La aplicación, si no está, perdón. 00:14:01
O sea, esto en un lcd. 00:14:07
Si no está, la aplicación no existe en el teléfono. 00:14:08
Bueno, no está instalada, más que no existe. 00:14:16
Y ya que nos ponemos, aquí, cuando ha terminado de borrarla, 00:14:24
un siso que diga, ¿cuándo ha terminado de borrar la aplicación? 00:14:29
Aquí, cuando ha terminado de borrarla, 00:14:35
un siso que diga, uy, la aplicación se eliminó. 00:14:36
La aplicación se desinstaló. 00:14:44
Ala, pues ya está. 00:15:05
Y así, hombre, siempre que una aplicación te dé información de 00:15:08
lo que hace, pero cuando tú das una acción y se queda callado, 00:15:10
pues, hombre, asumes que ha hecho lo que tenía que hacer. 00:15:15
Pero, hombre, si te da una realimentación, mejor, ¿no? 00:15:17
Que no que si se queda ahí callado. 00:15:20
Igual, ya que nos ponemos, igual que en el de instalar 00:15:25
aplicaciones, pues, en este de get up podríamos ponerle 00:15:28
también system out que nos digan, ¿se ha instalado? 00:15:32
¿No se ha actualizado? 00:15:35
Etcétera. 00:15:36
Vamos a ponerlo rápidamente. 00:15:39
Aquí. 00:15:41
No voy a meter más basurilla. 00:15:46
Como luego la vamos a ir comprobando. 00:15:47
Vale, pues ya tenemos todos los métodos. 00:15:49
Todos. 00:15:50
Hemos trabajado directamente, hemos soltado el código allá a 00:15:53
lo bestia, según se nos ha ido ocurriendo. 00:15:55
Hombre, conviene siempre en un procedimiento de trabajo 00:15:58
habitual, que luego nunca se hace así, nunca. 00:16:03
Pero, si se trabaja en condiciones, 00:16:08
en un equipo de trabajo que siga los protocolos, 00:16:10
en una empresa que los siga, los tenga establecidos, 00:16:12
lo normal es que a la vez que se hacen clases, 00:16:15
se hagan clases de prueba en paralelo, 00:16:18
que son las clases de test. 00:16:19
Entonces, tú a la vez que haces una clase, 00:16:22
pasas la clase de prueba, que está hecha exclusivamente para 00:16:24
pasar la prueba. 00:16:27
Entonces, todo eso implica que hay un equipo de pruebas que 00:16:29
verifique que las clases de pruebas pasan todas las pruebas 00:16:31
necesarias. 00:16:35
Entonces, en un sitio en el que haya unos protocolos 00:16:36
establecidos, pues, no se suelta todo el código. 00:16:39
Muchos de nosotros, hemos hecho todas las clases a mogollón y 00:16:42
ahora vamos a empezar a probar la aplicación. 00:16:44
Pues, hombre, no. 00:16:46
¿Vale? 00:16:48
Pero, luego, en la realidad, la mayoría de las veces, 00:16:49
se trabaja así porque está solo uno ante el peligro. 00:16:53
Hace esto y tú lo haces como te da la gana porque estás solo en 00:16:56
todo el mogollón y haces lo que quieres. 00:16:59
Más en las empresas pequeñas que en las grandes, claro. 00:17:01
Bueno, pues, nosotros nos hemos lanzado, 00:17:04
hemos soltado todas las clases y ahora vamos a probar a ver si 00:17:06
esto nos salen errores por todos lados. 00:17:08
En el else de abajo, en este, simplemente esto. 00:17:13
Vale, y ahora ya sí que nos vamos a hacer un main. 00:17:19
Venga, un main. 00:17:22
Vamos a hacernos un móvil, perdón, 00:17:25
un almacén con esas aplicaciones. 00:17:28
Ahora vamos a crearnos un móvil de 30 gigas. 00:17:30
Ala. 00:17:34
El móvil de 30 gigas ya está creado. 00:17:36
Le vamos a fijar a ese móvil este almacén. 00:17:39
Vamos a ver ahora que esto ya comprobamos que sí, 00:17:42
que navegábamos bien por el, veíamos el estatus, 00:17:45
todo esto lo hicimos, pero, bueno, lo vamos a dejar, 00:17:50
lo vamos a seguir manteniendo, que nos muestre el estatus del 00:17:52
móvil y las aplicaciones que tiene. 00:17:56
Ahora, ¿qué vamos a hacer? 00:18:00
Vamos a instalar en nuestro móvil, por ejemplo, esta. 00:18:02
Vamos a instalar esta. 00:18:06
Es lo siguiente que vamos a hacer. 00:18:07
Pues, venga, móvil.getApp, esta de aquí, 00:18:09
que es la que está en el almacén. 00:18:16
Vamos a instalarle esta. 00:18:17
Vídeo. 00:18:22
Pesadilla. 00:18:23
Pesadilla. 00:18:24
Pesadilla. 00:18:25
Pesadilla. 00:18:26
Pesadilla. 00:18:27
Pesadilla. 00:18:28
Pesadilla. 00:18:29
Pesadilla. 00:18:30
Me voy a morir porque tiene más tamaño que él. 00:18:31
Efectivamente, elegido a lo mejor de todas. 00:18:34
Venga, pues, vamos a ponerle 100. 00:18:36
Vamos a ponerle 100. 00:18:39
¿Vale? 00:18:41
Vale, entonces, va a poder hacerlo, se supone. 00:18:43
Y instalamos aplicación. 00:18:48
¿Vale? 00:18:53
¿Qué más cosas podemos hacer después de haber instalado la 00:18:54
aplicación? 00:18:55
A ver si nos funciona. 00:18:56
Móvil. 00:18:58
Sí, sí, sí. 00:19:02
Pero yo soy muy vaga. 00:19:03
Creadlo vosotros y lo hacéis muy bonito. 00:19:04
Yo quiero probar que lo que me he hecho funciona. 00:19:05
Luego ya el menú y todo eso es hacer Shotakoy y Ray de 00:19:07
siempre. 00:19:10
Como me ponga yo a hacer a qué hora un menú, 00:19:12
estamos hasta las 3. 00:19:14
Entonces, vamos a probar que los métodos funcionan. 00:19:15
Y luego ya si uno crea una interfaz bonita y todo eso, 00:19:17
pues, fenomenal. 00:19:19
¿Vale? 00:19:21
A ver qué más métodos podemos probar de móvil. 00:19:21
Vamos a, venga, vamos a ahora hacerle el status. 00:19:23
¿Qué información nos saca? 00:19:33
Interesante. 00:19:34
Que podamos volver a comprobar. 00:19:37
Ah, nos dicen las que tiene. 00:19:39
Vamos a volver a mirar el status. 00:19:40
Una vez que ya lo hemos instalado. 00:19:42
A ver si lo ha hecho bien. 00:19:43
Venga. 00:19:47
Instalamos y miramos en qué estado se ha quedado. 00:19:50
A ver si es verdad que lo ha hecho bien o mal. 00:19:52
Vale. 00:19:56
Ahora vamos a intentar instalar una que no quepa. 00:19:57
Bueno, vamos a probar esto primero. 00:19:59
Porque si esto ya no funciona, ya no vamos a volver locos. 00:20:00
Venga, vamos a probarlo. 00:20:04
Que esta es la parte más divertida. 00:20:07
Vale. 00:20:12
Este es el almacén. 00:20:13
Tiene 0 aplicaciones. 00:20:14
Estupendo. 00:20:16
Y le quedan 100 gigas. 00:20:17
Ahora, me saca 2 veces el mensaje, 00:20:19
porque en status lo hicimos de 2 maneras distintas. 00:20:22
Lo de la capacidad, ¿os acordáis? 00:20:25
Por eso, mire, instalamos aplicación. 00:20:27
Tiene 1 y le quedan 67. 00:20:29
Muy bien, porque tenía 33. 00:20:32
Bueno, oye, parece que lo de instalar aplicaciones está 00:20:34
funcionando. 00:20:37
Le queda 67. 00:20:39
Vale, voy a comentar en el status, 00:20:41
en el método de status, lo de que me, 00:20:44
porque para que no me lo muestre 2 veces todo el rato. 00:20:47
Como lo hicimos 2 veces distinto, de 2 maneras diferentes, 00:20:51
status, pues, aquí lo comento para que no me lo muestre 2 00:20:57
veces. 00:21:02
Vale, pues, hasta aquí lo hace. 00:21:05
Vamos a probar ahora a ponerle una que no quepa. 00:21:07
A ver si de error o, pues, venga, 00:21:15
a WhatsApp la vamos a cambiar para que tenga 90. 00:21:26
Y así WhatsApp no va a caber. 00:21:29
90, vale. 00:21:32
Vamos a intentar meterle WhatsApp, que no le va a caber. 00:21:44
Y vamos a volver a que me muestre su status. 00:22:02
Y vuelvo a poner aquí, instalamos aplicación otra vez. 00:22:08
Vale. 00:22:15
A ver qué hace. 00:22:16
Porque esto sí que ya puede ser más peligroso. 00:22:17
Vale, pues, lo ha hecho bien. 00:22:24
Tiene 0. 00:22:25
Instalamos una. 00:22:26
Ahora le quedan 67. 00:22:27
Hemos instalado, intentado instalar la otra, 00:22:29
pero lo ha hecho porque no le cabe. 00:22:33
Entonces, sigue igual con una. 00:22:34
Claro, por eso en el método getApp es el que yo dije, 00:22:36
mejor si ponemos mensajitos de no se pudo instalar porque no 00:22:39
cabía, no sé qué. 00:22:42
Pero, bueno, hacerlo lo ha hecho bien. 00:22:43
Vamos ahora a instalar una con una, claro, 00:22:46
es una versión actualizada. 00:22:52
Habría que cambiar el App Store otra vez. 00:22:55
Vamos a ver. 00:23:01
Vale, vamos ahora a este móvil. 00:23:06
Móvil.getStore. 00:23:13
Nos quedamos con sus aplicaciones. 00:23:17
Lo digo porque voy a cambiar la versión de una para ponerla 00:23:24
más actualizada. 00:23:26
Entonces, por ejemplo, la de los OX Legends, 00:23:27
que es la que habíamos instalado, ¿no? 00:23:31
Ahí. 00:23:32
Pues, le voy a poner luego una versión de 8. 00:23:33
Le voy a poner una versión de 8. 00:23:38
A ver. 00:23:40
Entonces, a getStore. 00:23:41
Los OX Legends es la 0 y la 1, la que está en la posición 1. 00:23:44
Pues, esta que es los OX Legends, 00:23:48
esta la voy a cambiar a la versión y le voy a poner la 8. 00:23:50
La 8. 00:23:57
Vale, luego he actualizado a lo bestia. 00:23:59
He actualizado yo directamente a Capone, he actualizado. 00:24:02
He simulado que en el almacén la aplicación 1, 00:24:05
que es la de los OX Legends esa, la he puesto la versión 8. 00:24:12
Y ahora voy a intentar instalarla otra vez en el 00:24:16
móvil. 00:24:18
Perdón, dices el enunciado. 00:24:28
Sí, a ver, es que estoy pasando de enunciado. 00:24:30
Estoy probando en un main. 00:24:32
Estoy probando nuestras, como en todos los queis. 00:24:34
A ver, queréis que hagamos el menú aquí tal cual. 00:24:44
Claro, lo que pasa es que yo aquí me he ido directamente. 00:24:53
Claro, yo es que me he ido a la 1. 00:24:57
Tú tendrías que buscarla. 00:24:58
Claro, tendrías que buscar, dijo, a las 4. 00:25:00
Pues, en lugar de poner aquí el 1 a Capone que yo he puesto, 00:25:01
actualiza la versión de la que está en posición 1. 00:25:04
Pues, hombre, tendrías que buscarla para cambiar la versión 00:25:06
de la que sea. 00:25:09
Yo es que aquí he dicho. 00:25:10
Pues, tendrías que hacer un pop en todos los queis. 00:25:11
En el caso de mi de las 4. 00:25:16
A ver, ¿en qué queis en concreto estás pensando? 00:25:17
Es en cualquiera de los 4. 00:25:19
Bueno, es que cada uno hará una cosa diferente. 00:25:21
Ver las apps disponibles. 00:25:24
Pues, recorrer de ese móvil su for de instaladas. 00:25:25
Ya está. 00:25:28
No, pero no te estoy diciendo eso. 00:25:29
Entonces, es que no te entiendo. 00:25:31
Cualquiera de las 4, si tú eliges cualquiera de las 4, 00:25:32
eliges ver las apps disponibles o meter una o borrar una. 00:25:35
Que cuando tú elijas cualquiera de esas 4. 00:25:40
Esas 4 opciones del menú. 00:25:42
Sí. 00:25:44
Sí. 00:25:44
Si yo sí, tiene que coger una rando, una aplicación rando, 00:25:45
e incrementar la versión en el móvil. 00:25:49
Eso es lo que dice. 00:25:51
Entonces, mi pregunta es, ¿tienes que hacer ese for en busca 00:25:54
de todas las aplicaciones para aumentarla en 1 alternamente 00:25:58
en todos los cases? 00:26:03
A ver, es que no te entiendo. 00:26:08
Vamos a ver. 00:26:09
Cada vez que el usuario hace una operación. 00:26:09
Ya. 00:26:11
A ver, lo que pasa es que Estefano nos explica como un 00:26:13
libro abierto. 00:26:15
Vamos a ver. 00:26:15
Cada vez que el usuario hace una operación cualquiera de estas 00:26:16
4, el programa debe elegir una. 00:26:19
Ah, vale. 00:26:20
Te refieres a esto de este párrafo de abajo. 00:26:21
Vale, vale. 00:26:23
El programa debe elegir unas aplicaciones aleatoriamente. 00:26:24
Efectivamente. 00:26:26
Claro. 00:26:27
Sí. 00:26:28
Eso es lo que pide. 00:26:29
Tienes que hacer un for que recorra todas las aplicaciones 00:26:30
de la App Store y elegir alternamente una e 00:26:33
incrementarla. 00:26:35
Bueno, no que las recorra. 00:26:36
Tú eliges aleatoriamente una generándola con el random. 00:26:37
Y te vas a esa tal cual. 00:26:40
Pero no es que tengas que recogerlo antes. 00:26:42
O sea, este 1, yo he puesto 1 tal cual, 00:26:45
pero podía haber puesto un más random delante. 00:26:47
Y ya está. 00:26:49
Nada más. 00:26:50
¿Vale? 00:26:53
A ver, que si queréis, hacemos esto tal cual está. 00:26:54
Si nos da tiempo, eso es las 13 y 11. 00:26:57
A ver, que a mí lo que me parecía interesante es probar 00:27:01
los métodos que hemos hecho para ver qué funcionan esos métodos. 00:27:03
Pero si queréis, hacemos esta interfaz así tal cual. 00:27:06
Venga, vamos a hacerla. 00:27:10
Vamos a hacerla así tal cual la pide. 00:27:11
Vamos a ver. 00:27:13
Si tiempo tenemos. 00:27:16
Si tiempo tenemos. 00:27:18
Vale. 00:27:22
Nuestro main. 00:27:22
Vamos a la clase prueba, crea un app store con varias apps 00:27:24
dentro. 00:27:27
Vale. 00:27:28
Esa parte ya la teníamos hecha, que es esta. 00:27:28
Esa parte ya la tenemos. 00:27:35
Siguiente, crea un móvil con 30 gigas. 00:27:39
Esa parte también la teníamos. 00:27:43
Siguiente, crea un móvil con 30. 00:27:48
Luego, si tenemos que cambiarlo, pues lo cambiamos. 00:27:53
Venga, crea un móvil con 30. 00:27:55
Esa parte ya la tenemos. 00:27:57
Vale. 00:27:58
Y ahora, crea un móvil con 30 gigas. 00:28:00
Vale. 00:28:03
Y ahora, hacemos el menú. 00:28:04
Venga, vamos a hacer el menú y a ver qué interpretamos de este 00:28:05
menú. 00:28:07
Tenemos nuestro móvil de 30 gigas y un almacén. 00:28:08
Pues, venga. 00:28:11
La opción del menú va a tener que estar declarada afuera. 00:28:14
Eso ya lo sabemos. 00:28:17
Entonces, ya aprovechamos y la declaramos fuera. 00:28:20
Y ahora ya, las opciones van a ser, opción 1, 00:28:24
ver apps disponibles del móvil. 00:28:32
Pues, bueno, esa va a ser sencilla. 00:28:35
Ver apps disponibles en el teléfono. 00:28:38
Vale. 00:28:40
Opción 2. 00:28:41
Meter una app en un teléfono. 00:28:47
Que aquí es donde habrá que generar aleatoriamente cuál de 00:28:51
ellas. 00:28:54
Vale. 00:28:55
En lugar de una capón, que yo he dicho la 1, 00:28:56
pues generamos una aleatoria. 00:28:58
Ya está. 00:28:59
Ver apps disponibles. 00:29:02
Pues, instalar app. 00:29:04
Queda más bonito. 00:29:07
Instalar app en teléfono. 00:29:09
Opción 3. 00:29:12
Opción 3. 00:29:24
Borrar una. 00:29:26
Que de nuevo habrá que generar aleatoriamente cuál. 00:29:27
Parece ser que era la intención. 00:29:31
En lugar de pedirla por teclado, para que fuera más cómoda la 00:29:32
prueba. 00:29:34
Eliminar app. 00:29:36
Y ahora, la opción 4. 00:29:39
Eliminar una app del teléfono. 00:29:44
La opción 4 va a ser comprobar el estado del móvil. 00:29:46
Que es comprobar status. 00:29:54
Vale. 00:29:59
Entonces, ver apps disponibles y comprobar status, no hay duda. 00:29:59
Se hace y ya está. 00:30:04
Entonces, instalar app y eliminar app, 00:30:05
viene la pregunta, ¿vale? 00:30:07
Pero, ¿cuál? 00:30:09
¿Cuál instalo de todas las que tengo? 00:30:10
¿O cuál elimino de todas las que tengo? 00:30:12
Ahí es por lo que aporta en el párrafo siguiente. 00:30:13
Dice, en lugar de pedir por teclado, ¿qué app quieres 00:30:16
instalar? 00:30:19
¿Qué app quieres borrar? 00:30:20
En lugar de pedirlo, genera aleatoriamente un número y es. 00:30:21
¿Vale? 00:30:24
Simplemente para hacer la interfaz, la prueba más cómoda, 00:30:26
y no tener que meterla por teclado. 00:30:28
¿Vale? 00:30:30
Por eso es por lo que incorpora el texto que está después. 00:30:31
¿Verdad? 00:30:34
A ver, espera. 00:30:37
El programa debe elegir una de las 4 aleatoriamente. 00:30:38
Vale. 00:30:48
Y luego, además, cada vez que se elija una cualquiera de las 4, 00:30:49
entonces, el programa incrementa. 00:30:53
¿Son de 1? 00:30:58
A ver qué tal está. 00:30:59
¿Vale? 00:31:00
Vale. 00:31:03
Entonces, interpreto de este enunciado que todas las, 00:31:03
incrementar su versión de 1. 00:31:07
Pero, ¿la versión de quién? 00:31:09
¿De cualquiera? 00:31:10
No, es decir, aleatoriamente. 00:31:11
Ah, vale. 00:31:13
De una cualquiera, elegida aleatoriamente, 00:31:13
incrementa su versión en 1, no de 1. 00:31:16
Vale, vale, vale. 00:31:18
Es que eso está en italiano. 00:31:19
Un momento. 00:31:20
Incrementa su versión en 1. 00:31:21
Vale, vale. 00:31:23
Elige aleatoriamente una versión y la incrementa en 1 unidad. 00:31:24
Ahora ya lo entendemos mejor. 00:31:27
Actuando en el objeto visto. 00:31:28
Vale, eso está claro. 00:31:29
Esa no la pide, se ejecuta secretamente patatín. 00:31:31
Vale, ya está. 00:31:34
Ya está entendido. 00:31:34
Vale. 00:31:35
INTERLOCUTOR 1 Sí, sí, sí, sí. 00:31:36
Tiene razón. 00:31:39
Sí, sí. 00:31:40
Vale. 00:31:40
Vale, entonces, meter y borrar, hay que pedírselo al usuario, 00:31:41
hay que pedírselo a cualquiera. 00:31:45
Y el aleatorio es, cada vez que das a una opción, 00:31:46
incrementas una cualquiera aleatoriamente en 1 unidad. 00:31:49
Vale, vale, vale. 00:31:53
He entendido el enunciado. 00:31:55
Vale, bueno. 00:31:56
Pues, entonces, a ver, esto ya se nos queda. 00:31:57
Yo voy a importar la clase teclado para olvidarme de los 00:32:02
next line, etcétera, etcétera. 00:32:05
Entonces, me voy a mi proyecto, ejercicio móviles, buildpad, 00:32:07
configure buildpad, ¿vale? 00:32:19
Y aquí en el classpad le añado un jar externo que lo tengo en 00:32:21
el escritorio y que es este. 00:32:26
Y así, mucho más fácil, todo y más bonito. 00:32:30
Vale, porque para eso hicimos esa clase. 00:32:36
El que quiera usar el escáner, pues, bueno, pero. 00:32:38
Venga, pues, hala, leemos opción. 00:32:42
Opción igual a teclado punto leer entero. 00:32:45
A ver, libraries, teclado, utilidades, teclado. 00:32:56
Vale. 00:33:03
Import. 00:33:05
Voy a importarla. 00:33:07
Import utilidades, teclado punto utilidades. 00:33:09
¿Por qué no me deja importarla? 00:33:31
No, es nota accesible. 00:33:39
Un teclado, public teclado, si está aquí. 00:33:46
Y leer entero. 00:33:51
Sí, lo acabo de hacer. 00:34:05
Si es que, de hecho, está ya ahí en referencias librarias, 00:34:05
ahí. 00:34:08
Si es que, está igual que aquí. 00:34:14
Y aquí la podíamos usar sin problema. 00:34:17
En el main, veis, la estábamos usando exactamente igual. 00:34:21
En el proyecto de arriba, en el de clientes pedidos. 00:34:25
Sí, sí, sí. 00:34:37
Si es que me la ha añadido ya el pad. 00:34:38
Se ve aquí, que ya está con el simbolito de alumno de esto. 00:34:39
Pero vamos a ver, la voy a quitar. 00:34:44
La quito de ahí. 00:34:47
A ver si va a ser porque tengo el módule info. 00:34:54
Y esto no lo he metido en la estructura de, vamos a ver, 00:34:59
configuré. 00:35:06
Vale, entonces, teclado ahí, apply and close. 00:35:19
Y ahora me voy a prueba móvil. 00:35:26
Ah, vale, vale, no, es que no. 00:35:28
Cuidado con lo del módule info, ¿eh? 00:35:32
Que es que no, yo no había acordado de que lo había 00:35:34
creado. 00:35:36
A ver, cuando hacéis aquí el añadir hearts a un buildpad, 00:35:37
¿vale? 00:35:42
Aquí en configure buildpad, ¿vale? 00:35:45
Veis que os aparecen, cuidado, un momentito, aquí. 00:35:48
Vale, ¿veis que aquí os aparecen dos cosas? 00:35:57
ClassPath, que es la variable de entorno que tiene todas las 00:36:04
rutas donde hay heart accesibles por defecto de toda la vida. 00:36:08
Y el módule path, que es otra que se ha incorporado a partir 00:36:12
de la versión Java 10, que incorpora una posibilidad que 00:36:16
es de identificar paquetes a través de módulos, 00:36:19
o tienes una aplicación con muchos paquetes, ¿vale? 00:36:23
Nosotros no estamos usando ese formato, 00:36:26
no lo estamos usando, ¿vale? 00:36:29
Porque es una cosa que para empezar no se usa prácticamente, 00:36:30
que se incorporó en Java 10 como marketing, 00:36:33
como muchas otras cosas, y luego no se está usando mucho. 00:36:34
Entonces, no lo estamos usando. 00:36:37
Entonces, cuidado, porque si no lo estamos usando y lo metemos 00:36:39
todo aquí en ClassPath, aseguraos de que vuestro proyecto 00:36:42
no tiene el fichero módule info. 00:36:47
Porque si lo tiene, él entonces va a esperar que esto esté aquí 00:36:49
arriba. 00:36:52
Y si no está aquí arriba, no lo encuentra, 00:36:53
que es lo que me ha pasado a mí. 00:36:55
Yo he hecho el proyecto rápidamente y lo he hecho con 00:36:57
el módule info. 00:37:01
Y al hacerlo así, al estar esto aquí abajo, no lo encuentra. 00:37:02
Tenía que haberlo metido aquí arriba. 00:37:05
Pero en lugar de meterlo aquí arriba, no. 00:37:06
He quitado el módule info y listo. 00:37:08
Cuidado con eso porque a veces da problemas. 00:37:10
Aseguraos por ahora, y por ahora y casi siempre, 00:37:13
porque no creo que trabajéis mucho con el módule ese en 00:37:16
vuestra vida. 00:37:19
Pues, cuando uno crea un proyecto a, 00:37:21
vale, sí, ya me acuerdo. 00:37:24
Claro, te da la opción de crear módule info. 00:37:25
Nosotros la desmarcamos. 00:37:27
Si no la desmarcas, te lo crea. 00:37:29
Y puede tener problemas entonces para encontrar rutas. 00:37:30
Puede tenerlo porque las va a buscar en el módule de path. 00:37:33
Que verá lo que me pasaba a mí. 00:37:36
Vale, pues, entonces, nos vamos a nuestro menú este de aquí. 00:37:38
Entonces, este ya me encuentra. 00:37:42
Teclado, punto, leer entero, ala. 00:37:45
Y ahora ya sí hacemos el switch case. 00:37:49
Vale, en el caso de que la opción sea patatín en el caso 1, 00:37:53
hacemos lo que sea. 00:38:04
En el caso 2, hacemos lo que sea. 00:38:08
En el caso 3, hacemos lo que sea. 00:38:16
Y en el caso 4, hacemos lo que sea. 00:38:21
Vale, entonces, vamos a hacer un salir, 00:38:27
que siempre es buena idea. 00:38:32
Y un default, que siempre es buena idea también. 00:38:34
Y aquí, este es el fin del switch. 00:38:44
Y este es el fin del do, que va con el while. 00:38:52
Mientras la opción sea distinta de la de salir, que es la 5. 00:38:55
¿Por qué me ha puesto ahí unas llaves? 00:39:05
Yo quiero esto. 00:39:07
Esto. 00:39:09
Mientras la opción sea diferente de la 5, que es la de salir. 00:39:11
Y mi opción 5, pues, lo único que va a hacer, 00:39:14
va a ser un cerrar programa. 00:39:16
Cerrar programa. 00:39:22
Vale. 00:39:23
Pues, ala, ya está. 00:39:25
Entonces, ahora, uno podría ir parte por parte. 00:39:26
El caso 1 y el 4 son los más sencillos. 00:39:30
El caso 1 y el 4 son los más fáciles, 00:39:32
que es ver las que tiene y hacer el status. 00:39:34
Y luego, aquí, habría que pedir el dato al usuario y hacer lo 00:39:38
que fuera. 00:39:41
Entonces, luego, aparte de esa opción en concreto, 00:39:42
que es llamar a los métodos correspondientes, sin más, 00:39:44
llamar a los métodos, dice, además de eso, 00:39:47
vamos a meterle que haga una cosa rara adicional. 00:39:49
Vamos a meterle, sea cual sea la opción que tú le des, 00:39:52
vamos a elegir una de las aplicaciones del almacén y 00:40:01
vamos a incrementar su versión. 00:40:04
Sea cual sea la que elijamos. 00:40:06
Pues, entonces, ¿cómo podríamos programar eso? 00:40:09
¿Cómo podríamos programarlo? 00:40:13
¿Vale? 00:40:20
Podemos hacer, efectivamente, una función aparte a la que 00:40:20
llamamos dentro de cada uno de ellos, ¿verdad? 00:40:25
Y esa función elige número aleatorio, 00:40:28
se va al Stories y le cambia la versión. 00:40:30
No tiene más que hacer, le suma 1 a la que hubiera. 00:40:33
¿Vale? 00:40:36
Es una forma de hacerlo. 00:40:36
Es simplemente eso. 00:40:38
¿Vale? 00:40:40
Entonces, eso podríamos hacer en el caso 1. 00:40:41
¿Vale? 00:41:02
Entonces, lo ideal sería, uno dice, uy, qué bien, a ver si, 00:41:06
ojalá yo tuviera aquí un método que me hiciera esto, ¿vale? 00:41:11
Sea cual sea de las 4 opciones. 00:41:17
En la 5, ya voy a seguir, no voy a hacer nada más. 00:41:19
Y en default, lo que voy a hacer va a ser opción incorrecta. 00:41:23
Vale. 00:41:34
Pero, bueno, también podemos, en lugar de llamar al método en 00:41:35
cada una de las opciones del switch, 00:41:40
llamarlo cuando ha acabado el switch y ya está, ¿no? 00:41:43
¿No sería mejor? 00:41:45
O sea, mi switch es, hago esto, esto, esto, vuelvo aquí y ahora 00:41:46
me voy arriba. 00:41:50
Pues, hombre, vamos a ponerlo abajo directamente, ¿no? 00:41:51
Vamos a ponerlo abajo. 00:41:55
Vamos a poner este método aquí abajo, mejor, casi. 00:41:58
Cuando el switch ha terminado y antes de volver arriba otra 00:42:03
vez, antes de volver arriba otra vez, cambia versión, ¿vale? 00:42:07
Entonces, lo quito de aquí, de aquí, de aquí y de aquí, 00:42:11
por ejemplo. 00:42:18
Así que así me queda más bonito. 00:42:20
Entonces, te lo haría cada vez que haces el menú. 00:42:21
Claro. 00:42:23
No cada vez que elijas una opción. 00:42:24
Sí, eso iba a decir. 00:42:25
Esto, lo que pasa es que te lo va a hacer, 00:42:27
cuando lo haces aquí, te lo va a hacer también, 00:42:31
pero aquí te da igual porque el programa termina. 00:42:33
Entonces, te da lo mismo porque el programa ha terminado. 00:42:35
Así, aquí te da igual que te lo haga. 00:42:38
Porque aquí va a salir del while, va a hacer esto. 00:42:40
Luego ya va a salir del while y ya el programa ha terminado. 00:42:43
Entonces, te da igual. 00:42:46
Y aquí, opción incorrecta y también te la va a actualizar. 00:42:47
¿Vale? ¿Qué queremos? 00:42:50
No lo sé. 00:42:51
Este faraólogo que os he denunciado, pues, da igual. 00:42:52
Él pensaba, sea cual sea la opción que selecciones, 00:42:55
además que te cambie la versión. 00:42:58
Simplemente era una idea de meter un mecanismo que cambie la 00:43:00
versión para poder probar e instalar aplicaciones que ya 00:43:02
están, que se han actualizado, etcétera. 00:43:05
¿Vale? 00:43:08
Da igual, como lo queramos, lo único es entender lo que estamos 00:43:11
haciendo. 00:43:14
Si lo ponemos aquí, sea cual sea la rama del switch por la que 00:43:14
vaya, que en este caso tiene 6 ramas, 1, 2, 3, 4, 5 y defecto, 00:43:19
sea cual sea la rama por la que vaya, antes de volver arriba, 00:43:23
va a hacer un cambio aleatorio de una versión. 00:43:29
Va a hacer un cambio aleatorio antes de volver arriba. 00:43:30
¿Vale? 00:43:33
En el caso 5 va a hacer un cambio aleatorio, 00:43:34
pero es que luego el dual va a salir fuera. 00:43:36
Y en este caso va a hacer otro cambio aleatorio. 00:43:38
Ese cambio aleatorio que más nos molesta, pues, 00:43:40
que más da, ¿no? 00:43:42
La idea es forzar cambios aleatorios de versiones. 00:43:44
Entonces, este de aquí, este de aquí, fijaos lo que ha hecho. 00:43:47
Cuando nos ha generado la cabecera, 00:43:57
él ha puesto un static automáticamente. 00:43:59
Anda, claro. 00:44:02
Es que si no pone un static, sería completamente imposible 00:44:03
llamarlo desde aquí. 00:44:07
¿Por qué? 00:44:08
Porque este método está dentro del main, ¿vale? 00:44:09
Entonces, el main es un método estático por definición. 00:44:15
Tiene que ser obligatoriamente static. 00:44:19
No hay elección. 00:44:21
Eso no lo podemos cambiar. 00:44:22
El método main tiene esa cabecera y no se puede cambiar 00:44:23
por nada del mundo. 00:44:26
Porque si se cambia, se convierte en otro método distinto que 00:44:27
podemos llamar desde una clase, pero la máquina virtual nunca lo 00:44:31
va a llamar ni lo va a encontrar. 00:44:34
Entonces, eso por un lado, ¿verdad? 00:44:35
Eso lo tenemos claro. 00:44:37
El método main, que es el punto de arranque de una aplicación, 00:44:38
el punto de arranque, tiene que tener siempre esta cabecera sí 00:44:40
o sí. 00:44:44
Eso es obligatorio, para que sea punto de arranque de una 00:44:45
aplicación. 00:44:47
Entonces, que tenga esta cabecera significa que es un 00:44:49
método estático. 00:44:51
Eso es obligatorio. 00:44:53
No podemos elegir. 00:44:54
Entonces, que sea un método estático significa que todo lo 00:44:55
que yo invoque aquí tiene que ser estático. 00:44:59
Todo lo que es local lo puede invocar sin problema. 00:45:05
Pero si invoco algo de fuera, si invoco algo de fuera, 00:45:07
tiene que ser estático. 00:45:10
Porque si no, este método no podría serlo. 00:45:11
Esa es la definición de un método estático, ¿no? 00:45:14
Que no puede usar variables de la clase, 00:45:16
que no sean estáticas, ni puede usar nada, que no sea estático. 00:45:18
No puede. 00:45:21
Claro, pues, entonces, si este método mío main, 00:45:23
este método, resulta que está llamando a este otro, 00:45:26
este tiene que ser estático si no lo puede llamarlo. 00:45:30
Si ahí me da la gana cambiarle y decir, no, 00:45:33
que no me gusta que sea estático, quiero que no lo sea. 00:45:35
Dice, vale, pues, entonces, imposible ser llamado desde 00:45:38
ahí, imposible. 00:45:40
Lo siento mucho. 00:45:42
Si quieres llamarlo desde aquí, como esto está dentro del main 00:45:43
y el main obligatoriamente es estático, lo siento. 00:45:47
No puedes llamar a nada que no lo sea. 00:45:50
¿Vale? 00:45:52
Entonces, esto tiene que ser estático sí o sí. 00:45:53
¿Vale? 00:45:57
Entonces, todas estas cosas son repeticiones sobre lo mismo, 00:45:59
pero que luego no es tan fácil irlas teniendo claras y las 00:46:03
teniendo entendidas. 00:46:06
De nuevo, esto de aquí realmente tiene un aspecto que daña 00:46:08
mucho la vista, ¿vale? 00:46:11
Daña la vista porque recordad, en programación de datos 00:46:13
objetos, los métodos no se llaman solos, nunca, jamás. 00:46:17
Se llaman solos los métodos. 00:46:22
A los métodos los llama alguien, un objeto. 00:46:24
O si el método es estático, lo podemos llamar con el nombre de 00:46:29
la clase a la que pertenece. 00:46:32
Pero, claro, recordad que si no ponemos nada es porque es la 00:46:35
opción por defecto. 00:46:40
Pero eso no significa que no le llame nadie. 00:46:42
Siempre le llama alguien. 00:46:45
Si yo no pongo nada, es la opción por defecto. 00:46:46
Entonces, yo aquí directamente me he quitado la opción por 00:46:48
defecto. ¿Cuál sería? 00:46:51
Este es un método estático, ¿de qué clase? 00:46:53
Pues de la clase en la que está programada, 00:46:56
que es PruebaMóvil. 00:46:58
Luego, por defecto, lo que yo he puesto en realidad es lo mismo 00:47:00
que si hubiera puesto esto, ¿vale? 00:47:04
Esta es la verdadera llamada de este método, es esta. 00:47:12
Método estático cambia versión de la clase PruebaMóvil. 00:47:16
Esa es la verdadera llamada. 00:47:19
Pero, repito, repito, como este método está en la misma clase, 00:47:22
en la misma, por defecto, es el nombre de la clase en la que 00:47:28
estoy, por defecto. 00:47:32
Entonces, lo quito, lo puedo quitar, lo puedo quitar. 00:47:34
Pero eso no significa que al método no le llame nadie, no. 00:47:39
El método es un método estático de la clase PruebaMóvil, ¿vale? 00:47:42
Pero como da la casualidad de que la clase PruebaMóvil es en 00:47:46
la que estoy ahora metida, precisamente, 00:47:49
es en la que estoy, como da la casualidad de que es en la que 00:47:51
estoy, tengo la opción de quitarlo porque es la opción por 00:47:53
defecto, porque es como el dis. 00:47:57
Cuando yo hace una variable x en una clase y no le pongo dis, 00:48:00
significa que entonces quien lo llama es el objeto en el que 00:48:04
estás. 00:48:08
Por defecto es el dis. 00:48:09
Pues esto igual. 00:48:11
Si yo no pongo nada a este método estático, 00:48:12
lo llama la clase en la que estoy por defecto. 00:48:14
Entonces, PruebaMóvil es opcional. 00:48:19
Y la puedo quitar, pero tened claro que es que no es que el 00:48:22
método no esté asociado a nada. 00:48:24
Tiene que estar asociado a algo siempre. 00:48:26
Vale, pues ahora ya podríamos hacer este método, 00:48:30
cambia versión, que es que te genera uno aleatorio. 00:48:32
Vamos a ver el, vale. 00:48:36
Bueno, pues entonces, ahora, ¿este método qué tiene que 00:48:41
hacer? 00:48:44
Coger el almacén ese que hemos creado, 00:48:45
seleccionar aleatoriamente una posición e incrementar la 00:48:48
versión. 00:48:51
Eso es lo que tiene que hacer, ¿no? 00:48:53
Coger ese almacén que hemos creado, 00:48:54
generar una posición aleatoria y la aplicación que está en esa 00:48:56
posición aleatoria, sumarle un 1 a la versión. 00:49:00
Vale, nos ponemos manos a la obra. 00:49:04
Venga, voy a coger el almacén que he creado. 00:49:06
Me voy donde está ese almacén, me voy para arriba y digo, 00:49:09
este es el que he creado. 00:49:13
Vale. 00:49:16
¿Qué pasa? 00:49:19
Me viene el primer problema. 00:49:19
¿Y cómo puedo acceder yo aquí a esa variable? 00:49:22
Completamente imposible. 00:49:25
Esta variable es una variable local, esta, 00:49:28
una variable local de este método main. 00:49:31
Es una variable local de este método. 00:49:33
Es una variable local cuyo ámbito de visibilidad es ese 00:49:35
método. 00:49:38
Luego, es imposible que yo desde aquí pueda acceder a esa 00:49:40
variable. 00:49:43
No puedo. 00:49:43
Es imposible. 00:49:45
Entonces, ¿cómo puedo hacer? 00:49:47
¿Qué truco puedo hacer? 00:49:51
¿Qué se os ocurre? 00:49:52
¿Qué sería lo natural para que este método tenga la opción de 00:49:53
modificar ese objeto? 00:49:59
¿Qué es la idea? 00:50:00
Pasárselo por parámetro. 00:50:10
Desde aquí es imposible acceder a las variables locales del 00:50:13
método de arriba. 00:50:16
Es imposible. 00:50:17
Un método tiene sus variables locales, las suyas. 00:50:18
Otro método tiene sus variables locales, las suyas. 00:50:20
Desde un método yo no puedo hacer las variables locales del 00:50:23
otro, no puedo. 00:50:24
Pero resulta que este método tiene que tocar las de este 00:50:25
otro. 00:50:28
Hombre, pues, dámelas. 00:50:28
Pues, dámelas. 00:50:30
Para eso está esto, para hacer los pasos de parámetros que 00:50:31
este necesita. 00:50:35
Entonces, si este necesita trabajar con esta variable, 00:50:36
pues, habrá que pasársela. 00:50:44
No puede acceder sino de otra manera. 00:50:45
Se la tendrá que pasar. 00:50:47
Se la tendrá que pasar. 00:50:49
Ah, vale. 00:50:51
Pues, entonces, ahora decimos, claro, 00:50:51
es que este método necesita que yo le pase el almacén a 00:50:54
modificar. 00:50:57
Se lo tengo que pasar. 00:50:58
Es que si no, no puede trabajar. 00:50:59
¿Cómo va a acceder? 00:51:01
Claro. 00:51:03
Entonces, ahora ya cuando yo lo llame, aquí, 00:51:04
le pasaré el almacén concreto que quiero que modifique, 00:51:07
que es este. 00:51:10
Este. 00:51:11
De hecho, para que se vea claro, le voy a cambiar a este el 00:51:12
nombre. 00:51:15
Le voy a llamar almacén para que se vea que es un parámetro, 00:51:17
claro. 00:51:20
Entonces, a este método le pasamos un almacén y hará ese 00:51:20
cambio de versión. 00:51:25
Y ahora, cuando le llamamos aquí arriba, 00:51:26
le pasamos ya el almacén concreto al que queremos que le 00:51:29
cambie la versión. 00:51:33
Y no hay otra manera. 00:51:34
La información entre métodos, si este tiene que usar información 00:51:36
que tiene este otro dentro, este se la tendrá que pasar por 00:51:40
parámetro. 00:51:43
Es que no hay tutía. 00:51:43
Se la tendrá que pasar por parámetro. 00:51:44
No hay otra. 00:51:46
Ala, pues, ya que tenemos el almacén, 00:51:50
ya generamos una aleatoria. 00:51:52
Vamos a ver primero el numerito aleatorio. 00:51:53
Bueno, vamos a ver. 00:51:56
Posición aleatoria. 00:51:57
Venga, la posición aleatoria la vamos a hacer como que sea, 00:51:58
un aleatorio entre 1 y el tamaño del store. 00:52:04
Y el tamaño del store este es, el tamaño del store es, 00:52:11
store.getStore, que es las aplicaciones, .lens. 00:52:19
Vale. 00:52:28
Ese es el tamaño del store. 00:52:30
Y ahora esto ya lo pasamos a entero. 00:52:32
Ala, pues, ya está. 00:52:43
Ya tenemos una posición aleatoria generada entre 1 y el 00:52:44
tamaño del almacén, el tamaño de aplicaciones que hay. 00:52:48
Y ahora ya, pues, cogemos esa aplicación. 00:52:52
Y store.getStore de POS, pues, a este le vamos a fijar su 00:52:54
versión, a la que tenía más 1. 00:53:13
Y la que tenía cuál va a ser. 00:53:16
Sughet más 1. 00:53:25
Ala, estoy escribiendo ya todo seguido hacia lo bestia, 00:53:32
tratándoos ya como hiper, mega programadores que lo tenéis 00:53:35
todo claro. 00:53:38
Espera, voy a bajar abajo para que se vea esta línea entera. 00:53:43
Espera, espera. 00:53:47
Voy a bajar este paréntesis aquí para que se vea lo que he 00:53:49
puesto en el paréntesis. 00:53:50
Le eché ahí. 00:53:52
Vale, a ver, pues, ¿qué he hecho? 00:53:55
¿Qué he hecho? 00:53:57
A la aplicación del almacén que está en esta posición 00:54:00
aleatoria, a la que está. 00:54:03
Le voy a cambiar la versión, luego llamo al set. 00:54:04
Esta es la aplicación. 00:54:07
Esta es la aplicación del almacén que está en esta 00:54:12
posición. 00:54:14
A esta le voy a cambiar la versión, 00:54:15
por eso le hago el set. 00:54:17
¿Y qué versión le quiero poner? 00:54:18
La que tenía y la que tenía la obtengo, a su vez, 00:54:20
con el get, la que tenía más 1. 00:54:23
Pues, ya está. 00:54:36
A esta aplicación le hago un set de su versión poniéndole la que 00:54:37
tuviera, que la que tuviera la saco con el get, más 1. 00:54:42
Entonces, ya he incrementado en 1 la versión de la aplicación 00:54:47
que está en la posición esta que he generado aleatoriamente. 00:54:50
Y como estoy pasando objetos, trabajando con objetos, 00:54:55
el paso es por referencia. 00:54:57
Por si recordáis, significa que como yo estoy pasando la 00:54:59
dirección de memoria del almacén, 00:55:03
los cambios que haga a partir de esta copia de la dirección, 00:55:05
los hago en el almacén real, porque el parámetro siempre es 00:55:08
una copia, pero es una copia de la dirección, 00:55:11
apunta al mismo sitio. 00:55:13
Si esto no fuera una variable objeto, sino que fuera un int, 00:55:15
cualquier cambio que yo hiciera aquí no se guardaría en el 00:55:19
parámetro que yo paso. 00:55:22
Pero como esto es un objeto, estoy pasando la dirección. 00:55:23
Lo estoy apuntando al mismo sitio. 00:55:26
Bueno, pues, esta parte de cambiar versión que sume 1 a, 00:55:29
pues, a la ya está y la hacemos, sea cual sea la opción del menú, 00:55:33
la hacemos. 00:55:37
Y ahora ya, pues, se trata de programar las acciones. 00:55:40
Y ya está, nada más. 00:55:46
Entonces, ver las app disponibles del móvil. 00:55:48
Bueno, pues, ver las app disponibles del móvil. 00:55:54
Pues, ver las app disponibles. 00:55:57
A ver, ¿móvil tiene algún método para ver las app disponibles o 00:56:01
la recorro? 00:56:04
Bueno, las app disponibles del móvil, 00:56:07
yo creo que se refiere no a las instaladas, sino a las que tú, 00:56:09
creo que se refiere a llamar a este método, ¿no? 00:56:12
A navegar, creo que se refiere a ese. 00:56:15
Pues, venga, vamos a ver las app disponibles. 00:56:17
Vamos a navegar por ese teléfono. 00:56:22
Entonces, mi teléfono, ¿cómo se llama? 00:56:26
Se llama móvil. 00:56:28
Pues, móvil.navegarappstore. 00:56:30
Ala, ya está. 00:56:33
Con este veré las disponibles. 00:56:35
Ver el status, esa a mí es la opción más fácil. 00:56:37
Es móvil, status. 00:56:41
Vale. 00:56:43
Móvil, status. 00:56:46
Lo que pasa es que creo que lo devolvía a un stream, ¿no? 00:56:47
O no, lo mostraba por consola. 00:56:49
Vamos a ver. 00:56:51
Status. 00:56:52
No, lo mostraba por consola. 00:56:56
Vale, a ver. 00:57:00
Vamos a probar, que esto ya es mucho pedir. 00:57:01
Vamos a probar estas 2 opciones. 00:57:05
A ver si nos saltan cosas rojas o que nos salta. 00:57:07
Venga. 00:57:12
Ala, vamos a ver, el móvil ya está creado. 00:57:13
Vamos a ver las disponibles que tiene. 00:57:15
Empezamos bien. 00:57:18
Vale. 00:57:19
Esto es lo más, esto es lo que os tiene que apasionar. 00:57:20
A mí me encanta cuando salen cosas rojas y digo, 00:57:23
aquí hay algo que he solucionado, algo que hemos acabado. 00:57:25
Esto es lo verdaderamente apasionante y bonito de la 00:57:28
programación. 00:57:30
Null point del estético y ya sabemos lo que significa. 00:57:31
Venga, pues, ala, no puedo invocar a la app store porque 00:57:34
store es null. 00:57:37
El almacén es nulo, algo raro hecho. 00:57:38
El almacén es nulo, algo raro hecho. 00:57:40
Vale, ya más o menos me hago una idea de por dónde van los 00:57:43
tiros. 00:57:45
El almacén por el que intento navegar es null. 00:57:45
Y tanto que es null. 00:57:49
Si es que no se lo hemos fijado al móvil. 00:57:50
Si es que somos, ya no nos hace falta ni pinchar aquí. 00:57:52
¿Verdad? 00:57:56
Y tanto que es null. 00:57:57
Yo he creado mi móvil con una capacidad, 00:57:59
pero no le he fijado este almacén. 00:58:02
Es que, es que vamos. 00:58:04
¿Cómo voy a navegar por el app store del móvil si no se lo 00:58:07
he puesto? 00:58:09
Manda narices. 00:58:09
Ahora sí. 00:58:10
¿Vale? 00:58:13
No. 00:58:15
Trataba de navegar por el app store de este teléfono y este 00:58:16
teléfono no tenía la aplicación, no tenía el store puesto. 00:58:22
Con lo cual, muy malamente así. 00:58:25
Venga, siguiente prueba. 00:58:27
Ala, a ver si ahora, bueno. 00:58:34
Ver apps disponibles. 00:58:39
Estas son las que tengo para instalar. 00:58:41
Estupendo. 00:58:43
Vale, tengo esas 5. 00:58:44
Vamos a ver el estatus de mi teléfono. 00:58:45
Tiene 0, le quedan 30 gigas. 00:58:48
Vale, fenomenal. 00:58:50
2 y 3 es que no me va a hacer nada. 00:58:51
Y ya está. 00:58:55
Venga, pues vamos a hacer alguna de las otras opciones. 00:58:57
Y la opción de salir, es que no le he puesto un system 00:59:02
app para salir. 00:59:07
He puesto que era la 5, pero no se lo he puesto. 00:59:09
Salir. 00:59:15
Vale, pues venga, la opción 2. 00:59:18
La opción 2 era meter una app, instalar, se supone. 00:59:20
Instalar una app en el móvil. 00:59:24
Venga, pues vamos a ver. 00:59:27
Habrá que pedir el nombre de la app instalar. 00:59:28
Le decimos nombre de la app. 00:59:31
La leemos. 00:59:40
Yo, como tengo esta clase maravillosa, 00:59:41
pues la leo directamente con la cadena. 00:59:44
Y la guardo, claro, porque si no lo llevamos claro. 00:59:48
Vale, pues ya tengo yo aquí la cadena leída. 00:59:56
Y ahora, hay que hacer algo con el móvil. 01:00:00
Entonces, uno va, mi clase móvil me ofrece lo que yo quiero 01:00:03
hacer. 01:00:07
¿Qué es lo que yo quiero hacer? 01:00:08
Instalar una app en el móvil. 01:00:09
Entonces, pues uno, si hubiera documentado los métodos, 01:00:12
lo hubiera hecho todo bien, etcétera, etcétera, 01:00:15
pues pondría aquí móvil y le saldrían los métodos que tiene. 01:00:17
Y además, le saldría aquí la ayudita de lo que hace. 01:00:24
A nosotros no nos sale la ayudita porque no lo hemos 01:00:27
comentado. 01:00:30
Pero bueno, por el nombre podíamos cotillear. 01:00:31
Vamos a ver, porque repito, el contexto real es que el que 01:00:33
está programando esta aplicación no ha hecho la clase móvil, 01:00:36
no ha hecho la clase app, no las ha hecho. 01:00:39
Las tiene ahí para usarlas, pero no las ha hecho. 01:00:42
Entonces, tiene que, a ver, para hacer esto, 01:00:44
¿de qué me puedo ayudar? 01:00:47
Igual que nosotros hemos hecho la clase y la hemos hecho y la 01:00:49
usamos. 01:00:52
Pues gracias a que hay una documentación, 01:00:53
hemos encontrado el split, el no sé qué. 01:00:55
Pues esto es igual. 01:00:57
Vamos a ver, aquí hay, pues entonces, 01:00:58
aquí tenemos el método getApp que no tiene ninguna ayuda 01:01:01
porque no la hemos documentado. 01:01:04
Y si la tuviera, pues nos diría, el método getApp, 01:01:06
le pasas un nombre de aplicación, te la instala. 01:01:08
Si está, si no te la actualiza, bla, bla, bla. 01:01:11
Diríamos, anda, pues va a ser este, el que hay que usar. 01:01:13
Pues entonces, uno marcaría getApp y le pasaría el nombre. 01:01:18
Y ya está. 01:01:23
Se supone que eso hace lo que hace getApp. 01:01:24
Que lo que hace getApp es, pues, todo el rollo este. 01:01:27
Mirar si está instalada, si lo está, la actualiza. 01:01:32
Y si no lo está, la pone nueva. 01:01:37
Se supone que hace eso. 01:01:39
Y ya está. 01:01:43
No tiene system out de instalar, actualizar. 01:01:44
Entonces, es un poco feo, pero, bueno, el status lo veremos. 01:01:47
Y ahora, el caso 3. 01:01:50
El caso 3 es borrar una app. 01:01:52
Pues lo mismo, para borrar una app, 01:01:55
habrá que pedir la app a borrar. 01:01:56
Como nombre, ya la tengo declarada arriba. 01:02:00
No la tengo que volver a declarar. 01:02:01
Y es la misma situación. 01:02:03
Diríamos, vamos a ver, tengo que hacer algo con el teléfono. 01:02:04
Entonces, me voy a la clase teléfono, al objeto. 01:02:07
Y busco y digo, tengo aquí algo que me permita hacer lo que me 01:02:12
han pedido. 01:02:14
Lo intento buscar. 01:02:16
Si no lo encuentro, pues, me lo tendré que programar yo 01:02:18
directamente con las posibilidades que me dé la 01:02:20
clase. 01:02:22
Entonces, hombre, no se pone a buscar aquí. 01:02:23
Dice, ah, no, no, no, no, no, no, no, no, no, no, no, no, no, 01:02:26
dice, ah, espérate que hay un método que es removeApp. 01:02:29
Va a ser por el nombre porque está bien elegido. 01:02:33
Porque normalmente, si los nombres no están bien elegidos, 01:02:35
pues, muy mal, nuestras clases no van a salir para nada. 01:02:37
Va a ser que este método te borra una aplicación cuando tú 01:02:40
le das el nombre. 01:02:42
Pues, pues, hasta justo lo que queremos. 01:02:43
Qué fácil. 01:02:46
Pues, venga, removeApp y le damos el nombre. 01:02:48
Y ya está. 01:02:53
Entonces, el que está haciendo esto, 01:02:54
confía que estos métodos estén bien porque el que los hizo, 01:02:56
pasó toda la fase de pruebas, le hicieron todo el testing de las 01:02:59
clases y estaba todo estupendo. 01:03:02
Y el que hace esto lo tiene facilísimo. 01:03:04
Llama a esos métodos de esas clases y se acabó. 01:03:06
Y esa es la dinámica a la hora de programar. 01:03:08
Esa más la de luego ir guardando el historial de versiones en el 01:03:12
repositorio al que estés conectado, sea GitHub, 01:03:15
sea el que sea, ¿vale? 01:03:17
Todas esas dinámicas, claro. 01:03:19
Vale. 01:03:22
Pues, yo qué sé. 01:03:25
Vamos a probar a ver si esto hace algo y no hace nada. 01:03:25
A ver. 01:03:32
Venga. 01:03:34
Vamos a ver las que hay. 01:03:40
Lo que pasa es que teniendo en cuenta que tenemos solo 30 01:03:41
gigas, vamos a intentar instalar, a ver, vamos, 01:03:43
lo de ver apps disponibles, deberíamos haber puesto también 01:03:50
el tamaño y la versión porque si no, venga, 01:03:52
vamos a instalar la primera de todas que sabemos seguro que va 01:03:54
a caber. 01:03:57
Claro. 01:04:01
Tal y como está, se nos queda un poco que nos quedamos cojos. 01:04:02
No. 01:04:05
Claro, que se ha hecho, sí, bueno, 01:04:20
y sobre todo para que cuando le dieras a instalar existiera la 01:04:21
opción de actualizar. 01:04:25
Pudieras ver que las 2 funcionan, 01:04:27
tanto actualizar como meter una nueva, ¿vale? 01:04:28
Entonces, venga, tenemos las disponibles. 01:04:31
Vamos a instalar la primera. 01:04:32
Vamos a instalar la primera Minecraft, esta. 01:04:34
Minecraft. 01:04:41
Suponemos que está instalada. 01:04:44
Vamos a darle a comprobar status, a ver cómo está. 01:04:46
Tiene una. 01:04:48
Vale, le quedan 20. 01:04:49
Sí, parece que sí. 01:04:50
Vale. 01:04:52
Entonces, lo que pasa es que ahora saber cuál ha actualizado 01:04:53
aleatoriamente, porque ojalá hubiera acertado actualizarla 01:04:57
una. 01:05:00
Vamos a volver a instalarla, a ver si hemos tenido suerte y la 01:05:01
que ha actualizado la versión es esa. 01:05:03
PÚBLICO 1. Pero no te la has actualizado todavía, ¿no? 01:05:05
No ha salido de la aplicación. 01:05:07
PÚBLICO 2. No, pero es que cada vez que le das al menú. 01:05:08
Vale, voy a volver a instalar esa a ver si hemos tenido suerte 01:05:11
que esa es la que se ha actualizado. 01:05:15
Minecraft se llamaba. 01:05:18
PÚBLICO 3. Croft. 01:05:21
PÚBLICO 2. Ah. 01:05:22
PÚBLICO 3. No sé cómo tiene el portátil. 01:05:23
PÚBLICO 2. Croft. 01:05:25
Bueno, a ver, es que ni siquiera visa, 01:05:27
no tiene un system out, se ha instalado, se ha actualizado, 01:05:29
no sabemos. 01:05:31
A ver, lo estará haciendo bien, pero vamos a instalar una que 01:05:32
no quepa. 01:05:36
Vamos a instalar la de esa que no cabe seguro. 01:05:37
PÚBLICO 3. Legends. 01:05:48
PÚBLICO 2. Legends, esta. 01:05:53
Y vamos a ver el estatus. 01:05:55
Efectivamente, no la he instalado porque no cabía. 01:05:57
¿Vale? 01:06:01
Vamos a eliminar la única que tiene instalada y vamos a ver 01:06:06
el status otra vez. 01:06:14
Tiene cero, la ha quitado. 01:06:17
A ver, lo ideal sería incorporarle más system out, 01:06:19
para que nos dijera lo que va haciendo, 01:06:24
pero, vamos, tiene toda la pinta de que está haciendo lo que 01:06:26
tiene que hacer y que nos funcionan los métodos y que está 01:06:29
todo bien. 01:06:32
Borra, ¿vale? 01:06:32
Vamos simplemente a ponerle unos system out de a ver cuándo ha 01:06:36
actualizado y cuándo ha, para dejarla ya terminada completa, 01:06:41
bonita e irnos más felices a casa y más a gusto. 01:06:46
Vámonos a la clase móvil en navegar por el app store este 01:06:51
de aquí y que nos muestre también la versión y el 01:06:54
tamaño, que nos lo muestre todo. 01:06:58
Porque así tenemos más información. 01:07:01
Que nos muestre la versión, control C, get versión y que 01:07:05
nos muestre también el tamaño. 01:07:24
Y así podemos operar un poquito más control C y el tamaño. 01:07:26
Vale, navegar app store ya nos va a dar un poquito más de 01:07:46
información. 01:07:48
Si realmente se han actualizado en el store y eso. 01:07:49
Y ahora, el método del móvil que instalaba, 01:07:52
vamos a ponerle un system out que diga si ha instalado, 01:07:55
si ha actualizado, para que no quede así el pobre tan. 01:07:57
Entonces, aquí. 01:08:01
Aquí va a llegar a este if, va a llegar, 01:08:03
como tenemos el if metido aquí, lo que tenemos metido aquí, 01:08:11
distinguir si está actualizado o no, se hace más complicado. 01:08:19
Vamos a meterlo en un if aparte, que sería, si. 01:08:24
Sí, pero hago la pregunta aquí aparte y ya está. 01:08:33
Claro, la hago aquí. 01:08:36
Si esto es igual a nul, hago la pregunta aparte en un if aquí. 01:08:39
Entonces, aquí, en este caso, hay que poner la aplicación 01:08:46
existe con la misma versión. 01:08:54
Con lo cual, no hay nada que actualizar. 01:09:00
Y en el else de aquí, y en el else de aquí, 01:09:02
habrá que poner se actualizó la aplicación. 01:09:06
Se actualizó aplicación. 01:09:10
Vale, pues esto va a ser lo que me muestre cuando está y no hay 01:09:17
que actualizar o cuando está y actualiza. 01:09:21
Y ahora, aquí abajo, es cuando la instala de nuevas. 01:09:25
Entonces, aquí. 01:09:29
Vale, se instaló aplicación. 01:09:40
Y nos falta si la aplicación no se instaló porque no cabía. 01:09:54
Entonces, eso es el else de aquí, este else. 01:09:58
Aquí ponemos un else que sea, no hay espacio para la 01:10:03
aplicación. 01:10:07
No hay espacio para la aplicación. 01:10:10
Ahora, entonces, este ya nos informa de lo que hace. 01:10:16
En sus 4 posibilidades. 01:10:19
Que la aplicación esté y no haya que hacer nada porque 01:10:21
tenga la misma versión. 01:10:25
Que esté y se actualice. 01:10:26
Que no esté y se pueda instalar. 01:10:28
Y que no esté pero que no tenga espacio. 01:10:30
Este ya nos informa de más cosas. 01:10:32
El de borrar ya nos lo dice. 01:10:33
Que se instala o no se desinstala. 01:10:36
El de borrar ya está. 01:10:40
Y el de estatus, pues, ya sirve para informar. 01:10:42
Bueno, pues, ahora ya con suerte podemos hacer un uso un 01:10:46
poquito más. 01:10:51
Vamos a ver. 01:10:54
1, ver apps disponibles. 01:10:56
Pues, sí. 01:10:58
Tenemos la versión y el tamaño. 01:10:59
Vale. 01:11:02
Vamos a instalar la primera de ellas. 01:11:03
Vale, se instaló. 01:11:11
Y vamos a volver a ver las disponibles. 01:11:12
A ver cuál se ha actualizado la versión. 01:11:14
Minecraft es la que se ha actualizado. 01:11:18
Porque antes tenía 1 y ahora tiene 2. 01:11:20
En el almacén ha cambiado a 2. 01:11:24
Entonces, el almacén tiene ahora una versión actualizada. 01:11:26
1, 7, 2. 01:11:32
Vale. 01:11:34
Pues, venga, vamos a instalar otra vez la misma. 01:11:36
La 2. 01:11:39
Minecraft. 01:11:45
Vale. 01:11:49
¿Qué he hecho mal? 01:11:52
El nombre de la aplicación. 01:11:53
Que tú pibes un juego de Xbox. 01:11:56
Ah, joder. 01:11:59
Vale, vale, vale, vale. 01:12:00
¿Debería decir que esa aplicación no existe? 01:12:01
No, porque eso no lo he verificado, no lo he incluido. 01:12:04
¿Cuál? 01:12:06
O sea, eh, creo que, bueno, no lo sé yo. 01:12:07
Creo que no. 01:12:11
Espera, vamos a ver. 01:12:11
Espera, espera. 01:12:13
Vámonos a ese método. 01:12:14
Aquí en NetApp. 01:12:16
La que no está en la store. 01:12:18
No tenemos la verificación de las que están en la store. 01:12:21
Tienes la verificación de las que tienes en el juego. 01:12:24
Claro, es que hay cosas. 01:12:27
Claro. 01:12:29
Claro, es que contemplar todas las posibilidades no las hemos 01:12:31
hecho. 01:12:36
Entonces, obviamente, en una fase de pruebas vale para eso. 01:12:36
Y dices, oye, te he detectado un bug. 01:12:39
Y si yo me invento una aplicación que no está, ¿qué? 01:12:41
Ah, vale, me ha detectado ese bug. 01:12:43
Pues, entonces, yo ahora voy y lo incorporo. 01:12:45
Y así hasta que todos los bugs se van arreglando. 01:12:46
¿Vale? 01:12:48
Vale. 01:12:50
La fase de pruebas es para eso. 01:12:55
Vale, pues, entonces, vamos a volver a poniéndolo ahora una 01:12:58
buena. 01:13:00
Pues, venga, a ver, apps disponibles, efectivamente. 01:13:01
Vamos a ponerle la 2. 01:13:04
Minecraft. 01:13:11
Se instaló la aplicación. 01:13:13
Vale. 01:13:15
Vamos a ver las apps disponibles. 01:13:17
Minecraft ahora está a 2. 01:13:22
Con lo cual, tiene pinta de que es más actual que la que acabo 01:13:24
de instalar. 01:13:27
Voy a volver a instalarla. 01:13:28
Esta vez lo he escrito bien. 01:13:34
Vale. 01:13:35
La aplicación existe con la misma versión. 01:13:36
¿Vale? 01:13:38
Porque cuando se cambió a 2, fue antes de actualizarla. 01:13:38
O sea, ha sido la segunda vez que lo ha dado el menú. 01:13:43
Vale. 01:13:46
Vamos a instalar otra que no quepa. 01:13:46
La de los of legends, esa. 01:13:50
A ver si me informa. 01:13:52
No hay espacio. 01:13:53
No hay espacio. 01:14:00
Vale. 01:14:02
Vamos a eliminar otra que, vamos a volver a ver las que tiene. 01:14:03
El Minecraft esta ya está por 3. 01:14:09
Entonces, como está por 3, ahora ya sí que la actualizará. 01:14:11
Vamos a volver a darle a 2. 01:14:15
Nombre de la app. 01:14:17
Minecraft. 01:14:19
Minecraft. 01:14:21
Vale. 01:14:22
La aplicación existe con la misma versión. 01:14:23
Eh, me extraña que exista con la misma versión. 01:14:29
Porque esta la hemos, cuando la instalamos, 01:14:37
no estaba en la 3. 01:14:42
Existe con la misma versión. 01:14:45
Vale. 01:14:48
Tiene una que es esta. 01:14:50
Vale. 01:14:51
Ver apps disponibles. 01:14:56
Esta ya va por la 4. 01:14:58
Vamos a volver a, vale. 01:15:00
Porque existe con la misma. 01:15:10
A ver si he puesto mal el mensajito. 01:15:11
A ver si he puesto mal el mensaje. 01:15:15
Ah, claro. 01:15:25
Es que he llamado al método después del lib, 01:15:26
donde yo lo había ejecutado. 01:15:27
Claro, cuando yo le había dado la instalación. 01:15:29
Es que, claro, claro. 01:15:30
O sea, es que esto lo tendremos que hacer antes, 01:15:31
no después de actualizarla. 01:15:34
Claro, si lo hago después de actualizarla, 01:15:37
siempre va a tener la misma versión. 01:15:39
La pregunta me la tendré que hacer antes. 01:15:41
Vale, vale, vale. 01:15:46
Ya está. 01:15:47
Me hago la pregunta antes. 01:15:49
Esto fuera. 01:15:50
Vale. 01:15:51
Vale, entendido. 01:15:56
Vale, me la tendré que hacer antes la pregunta. 01:15:58
Y luego ya la actualizo. 01:16:00
Hasta luego. 01:16:01
Vale. 01:16:02
Vale, vale, con razón. 01:16:04
Vale. 01:16:07
Pues ya está. 01:16:08
Vamos a volver a hacer esa prueba. 01:16:18
Vamos a instalar esta. 01:16:20
Está instalada. 01:16:22
Vale, vamos a ver. 01:16:26
Vamos a darle a status hasta que cambie la versión del 01:16:29
Minecraft. 01:16:34
Comprobar status. 01:16:35
Vamos a ver si ahora ya ha cambiado. 01:16:36
Ojo, mala suerte, ahora no cambia nunca. 01:16:38
Vamos ahora a darle a status. 01:16:40
La 1. 01:16:43
A 2. 01:16:45
Vale, ya la ha cambiado. 01:16:45
Entonces, ahora vamos a instalarla otra vez. 01:16:46
2, Minecraft. 01:16:49
Se actualizó. 01:16:57
Vale. 01:16:58
Es que tenía el mensaje puesto actualizada y luego verificaba 01:16:59
si estaba actualizada. 01:17:02
Entonces, por eso me decía siempre, es la misma versión. 01:17:03
Voy a cambiar un poco la versión. 01:17:05
Vale, pues ya está. 01:17:07
Las funcionalidades que nos hemos planteado están todas, 01:17:10
todas funcionan dentro de una aplicación ya grande en la que 01:17:12
hemos tenido que hacer muchas pequeñitas cosas y revisar 01:17:15
muchos conceptos de muchas cosas. 01:17:19
Luego, efectivamente, pues uno ya se pone y dice, a ver, 01:17:22
hay cosas que no has tenido en cuenta. 01:17:25
Si yo le meto un texto que está mal, si yo le meto no sé qué, 01:17:27
si yo le meto, claro, todas esas cosas, 01:17:29
todas esas cosas tienen que surgir en una fase de análisis 01:17:32
cuando se ha hecho bien. 01:17:36
Si uno en la fase de análisis se ha sentado todas las horas que 01:17:37
hagan falta, ha contemplado todo lo que tiene que pasar. 01:17:40
Si el texto lo meto mal, que pase esto. 01:17:43
Si de repente el ordenador explota, que pase esto. 01:17:46
Si de repente no sé qué. 01:17:49
Entonces, tú ya cuando haces el software, 01:17:50
lo haces con todo lo que tienes que contemplar. 01:17:52
Pero, claro, para eso tienes que haber hecho una fase análisis 01:17:56
en la que contemples todo, ¿vale? 01:17:59
Nosotros hemos hecho unas funcionalidades, 01:18:01
no nos hemos sentado antes a ver todas las opciones que 01:18:03
queríamos comprobar. 01:18:07
Entonces, pues, efectivamente, hay cosas que no hemos 01:18:08
comprobado. 01:18:12
Pero lo que nos habíamos planteado de partida, 01:18:13
lo que nos habíamos planteado, eso todo está funcionando y 01:18:15
bien. 01:18:19
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
7
Fecha:
30 de enero de 2024 - 17:15
Visibilidad:
Público
Centro:
IES ROSA CHACEL
Duración:
1h′ 18′ 22″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
374.16 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid