Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 30-01-24 - 2 - 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:
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
4.
00:58:47
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
5.
00:59:14
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
2.
01:13:29
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
1.
01:14:56
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