Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Clase 29-01-24 - 3 - 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, ah, la última clase de la aplicación,
00:00:00
el teléfono, ¿vale?
00:00:06
El teléfono.
00:00:09
Pues, venga, esta clase es más rara y los métodos son más
00:00:11
raros, pero, bueno, pues, ala, nos vamos otra vez al paquete,
00:00:14
esta no es, el paquete modelo en el que están las entidades.
00:00:22
Nos vamos al paquete modelo otra vez y hacemos una nueva
00:00:28
clase.
00:00:31
Terminal, móvil, lo que uno quiera.
00:00:36
Y ahora, el que hizo el diseño de la aplicación, pues,
00:00:40
decidió ya qué propiedades le interesaban.
00:00:44
Ya lo decidió.
00:00:48
¿Vale?
00:00:53
Entonces, el que hizo el diseño del, silencio,
00:00:56
el que hizo el diseño de la aplicación ya decidió que las
00:01:00
propiedades por las que se caracteriza un móvil a efectos
00:01:02
de esta aplicación, claro, a efectos de esta en concreto,
00:01:07
que no es una aplicación, es a efectos de esta,
00:01:09
las únicas propiedades que le interesan son,
00:01:11
el array con las aplicaciones que tiene instaladas en un
00:01:15
momento dado, las que tiene, la capacidad máxima que tiene el
00:01:18
teléfono y su almacén de aplicaciones,
00:01:22
las que se supone que puede instalar,
00:01:26
pero en cada momento tiene instaladas solo las que haya en
00:01:29
este array.
00:01:31
Conclusión, va a tener como propiedades una capacidad
00:01:32
máxima, un array y un objeto de estos.
00:01:36
¿Vale?
00:01:40
Pues, venga, vamos a, por defecto,
00:01:40
al menos que queramos hacer otro diseño por las razones que
00:01:46
sean, por defecto ya sabéis que propiedades privadas,
00:01:49
constructores y getter y setter, por defecto,
00:01:52
a menos que queramos hacer un diseño especial por otras
00:01:55
cosas.
00:01:58
La capacidad máxima, como estábamos midiendo las
00:01:59
capacidades de las aplicaciones en dabble,
00:02:01
pues la capacidad en dabble también.
00:02:04
El almacén de aplicaciones, el almacén de aplicaciones del
00:02:08
móvil será un objeto de este, así, de este.
00:02:13
Ese será su almacén de aplicaciones,
00:02:17
las instalables que tiene su almacén.
00:02:19
Y, luego, las que tiene instaladas en concreto,
00:02:21
las que tiene instaladas en concreto, que ese será,
00:02:24
nos han dicho, un array de estos, instaladas, ala.
00:02:27
Esas son las 3 propiedades que lo caracterizan efectos de
00:02:40
esta aplicación, la capacidad, el almacén y las que tiene
00:02:43
instaladas en un momento dado.
00:02:47
Entonces, como siempre, hacemos un constructor con parámetros y
00:02:50
un constructor sin parámetros, porque es muy buena costumbre.
00:03:01
Y get y set, claro.
00:03:10
Vale, pues, ala.
00:03:17
Ahora, el teléfono, además, puede hacer cosas.
00:03:26
Esto, digamos, ¿qué es lo que le representa?
00:03:30
Le representan esas 3 propiedades.
00:03:33
Eso es lo que le representa.
00:03:38
Y, luego, esa es su foto, ¿vale?
00:03:40
Esa es su foto.
00:03:43
La foto del móvil es su capacidad, su almacén y las
00:03:45
instaladas.
00:03:49
Esa es su foto.
00:03:50
Y, luego, ya tiene su comportamiento,
00:03:51
que es lo que puede hacer.
00:03:53
Lo que puede hacer o su comportamiento se recogen
00:03:56
métodos.
00:03:58
No hay otra, se recogen métodos, ¿vale?
00:03:59
Pues, su comportamiento o lo que hay que hacer,
00:04:01
se recogen unos métodos que ya nos están diciendo cuáles,
00:04:04
nos están diciendo cuáles, que son estos 3,
00:04:09
navegar por el almacén, instalar una aplicación en el
00:04:13
teléfono de las que hay en el almacén,
00:04:18
borrar una aplicación de las que tiene instaladas en un momento
00:04:24
dado y indicar, pues, cuánto espacio libre tiene y cuáles
00:04:27
aplicaciones tiene.
00:04:32
O sea, la de navegar e iStatus parecen las más sencillas.
00:04:33
Vamos a hacerlas las primeras.
00:04:37
Venga, navegar por el almacén.
00:04:40
Vamos a navegar por el almacén.
00:04:42
Pues, navegar por el almacén.
00:04:47
Muestra las aplicaciones instalables.
00:04:57
Tiene que mostrarlas, a ver qué me dice.
00:05:01
Navegar a Pestor.
00:05:04
Imprime por pantalla.
00:05:05
Aquí no dice que devuelva un string con la información, no.
00:05:07
Directamente imprime por pantalla.
00:05:10
Imprime por pantalla las que tiene en el almacén.
00:05:12
Es lo único que tiene que hacer.
00:05:16
Es como un botoncito para decir, a ver lo que tengo, pa.
00:05:17
Y te sale lo que tienes, ¿vale?
00:05:20
El botón que te permite ver lo que tienes tú para elegir
00:05:22
instalar, lo que tienes para elegir instalar.
00:05:24
Es solamente eso.
00:05:27
Entonces, bueno, pues, ya está.
00:05:28
Primera pregunta de siempre.
00:05:32
¿Este método necesita que le pasemos aquí un almacén?
00:05:34
Perdón, ¿necesita que le pasemos ahí algún parámetro?
00:05:38
Para mostrar las aplicaciones que tiene el móvil en su
00:05:42
almacén, ¿necesita que le pasemos algún parámetro?
00:05:45
No, ¿por qué no?
00:05:50
Porque la tiene arriba.
00:05:54
Es una de las propiedades del teléfono.
00:05:55
Una de las propiedades del teléfono es precisamente su
00:05:57
almacén.
00:06:00
Entonces, no tenemos que pasárselo.
00:06:01
Es una de las propiedades del teléfono.
00:06:02
Tiene que devolver algo.
00:06:04
Nos han dicho que lo muestra por pantalla.
00:06:05
Entonces, no tiene que devolver nada.
00:06:07
Pues, entonces, ala, pues, venga, este método.
00:06:12
Pues, el método este, navegar por el almacén.
00:06:25
Pues, primero hay que localizar el almacén.
00:06:28
El almacén es esta.
00:06:30
Es este.
00:06:31
Esta es la variable que tiene la información del almacén.
00:06:32
¿Y cómo la tiene?
00:06:36
Habrá que meterse en el app store a ver cómo la tiene.
00:06:37
Habrá que meterse.
00:06:40
Nos metemos, ah, pues, se nos había olvidado.
00:06:42
La tiene en forma de array.
00:06:44
Pues, ya está.
00:06:45
Pues, cogemos ese array y lo listamos.
00:06:46
¿Vale?
00:06:51
Bueno, pues, entonces, el almacén, entonces,
00:06:52
tiene la información de las aplicaciones que tiene.
00:06:57
Las tiene un array.
00:07:00
Un array que obtenemos con este método.
00:07:01
Pero esto es un array de aplicaciones.
00:07:04
Entonces, vamos a mostrar todas y cada una de las aplicaciones
00:07:07
que están en este array.
00:07:11
Y punto.
00:07:12
Hemos dicho que el nombre es solo.
00:07:42
Pues, ala, ya está.
00:07:44
¿Vale?
00:07:46
Entonces, ¿dónde está la información a listar?
00:07:46
Repito, la información a listar está en esta variable.
00:07:49
En esta.
00:07:51
Pero esa variable es de tipo app store.
00:07:53
Entonces, tendremos que ver, vale, sí,
00:07:55
pero ese objeto, ¿cómo tiene guardado la información dentro
00:07:56
para acceder a ella?
00:07:59
Tenemos que meternos dentro de ella.
00:08:00
Tenemos que meternos dentro.
00:08:02
Dentro de él para sacarla.
00:08:04
Bueno, pues, dentro de él, la estructura la conocemos.
00:08:05
Sabemos que la tiene guardada en un array.
00:08:09
Ahora, ya sí, en un array.
00:08:12
Un array que es una propiedad que se llama store,
00:08:14
que podemos obtener con el método este.
00:08:16
Y solo con ese, porque es privada, solo con ese.
00:08:19
¿Vale?
00:08:22
Pues, entonces, este es el array que yo tengo que listar.
00:08:22
Pues, nada, lo listo como todos los arrays del mundo.
00:08:28
Posiciones hasta que llegue al final.
00:08:32
Y voy mostrando posición por posición.
00:08:35
Entonces, esto, claro, uno lo ve y le puede quedar raro,
00:08:37
pero es que no es nada raro.
00:08:39
Es que todo esto, todo eso, es un array.
00:08:40
Todo eso es un array.
00:08:44
Porque es lo que me devuelve el método get.
00:08:45
Y lo que me devuelve el método get es un array.
00:08:47
Entonces, como todo eso es un array,
00:08:49
pues, puedo acceder a posiciones,
00:08:50
puedo acceder a punto lenza, lo que haga falta.
00:08:52
Porque todo eso es un array.
00:08:54
Porque el get de store me devuelve un array.
00:08:56
¿No?
00:09:01
De hecho, hemos hecho nosotros ese método y así lo hemos
00:09:01
hecho.
00:09:04
El get store me devuelve un array enterito, un array entero.
00:09:04
Me devuelve un array.
00:09:10
¿Vale?
00:09:13
Pues, ya está.
00:09:15
Venga, siguiente.
00:09:21
Vámonos a la de navegar, get up, status.
00:09:26
Status, que es la siguiente más sencilla.
00:09:31
Status indica cuánto espacio libre tiene el móvil y cuántas,
00:09:35
solo cuántas.
00:09:40
¿Cuántas aplicaciones instaladas tiene?
00:09:42
Pues, venga.
00:09:45
Este método status indica, significa que lo muestra por
00:09:47
consola, luego no devuelve nada.
00:09:52
Y, de nuevo, ¿necesita algún parámetro?
00:09:55
No.
00:10:01
Porque toda la información que tiene que mostrar la tienen las
00:10:02
variables.
00:10:05
Es el espacio libre, lo puede sacar a través de las
00:10:06
instaladas, lo que ocupan, restándole la capacidad.
00:10:10
No le hace falta.
00:10:12
¿Vale?
00:10:17
Pues, venga.
00:10:18
Este, status.
00:10:19
Recordad que hay que hacer las 2 cosas.
00:10:21
Mostrar el espacio libre en gigas en el móvil.
00:10:25
Y, luego, decir cuántas tiene instaladas.
00:10:32
En ese orden inverso me da igual.
00:10:36
Instaladas.
00:10:42
¿Vale?
00:10:47
A ver, ¿cuántas apps tiene instaladas?
00:10:48
Esto está claro, ¿no?
00:10:54
Pues, tantas como tamaño tenga la RAI.
00:10:56
¿Sí o no?
00:10:58
Sí.
00:10:59
Tiene instaladas punto lens.
00:11:12
¿Vale?
00:11:29
O sea, las que tiene instaladas, silencio.
00:11:34
Eso es lo más fácil del mundo.
00:11:37
Tantas como tamaño tenga la RAI, no hay más que pensar, ¿no?
00:11:39
Tantas como tamaño tenga.
00:11:42
Tiene esas 7, las que tenga instaladas.
00:11:43
Y, ahora, ¿cuánto espacio libre le queda?
00:11:46
Pues, podemos hacerlo de varias maneras, pero una,
00:11:49
quizá la más estructurada en la que más podemos entenderlo
00:11:52
desde el principio.
00:11:55
Una de las formas que podemos hacer ya está otra parte,
00:11:57
porque esta es inmediata.
00:11:59
Pues, la más estructurada, pues, podría ser.
00:12:01
Primero, hacemos la suma de lo que ocupan las que tiene y,
00:12:03
luego, hacemos la resta.
00:12:07
Bueno, pues, entonces, eso podríamos hacerlo así, ¿no?
00:12:10
Hacemos una suma, pues, lo de siempre,
00:12:14
una suma acumulativa.
00:12:19
Es la misma historia de siempre.
00:12:20
Y, ahora, nos dedicamos a sumar.
00:12:22
Voy a cambiar al forEach para no escribir tanto,
00:12:24
que ya estoy aburrida.
00:12:31
Y, ahora, suma más igual a punto getTamaño.
00:12:35
Ala, con esto haríamos la suma de lo que ocupan todas las que
00:12:42
tiene instaladas, las instaladas.
00:12:45
¿Y cuánta capacidad, entonces, le queda?
00:12:48
Pues, le quedará capacidad menos lo que ocupan las que
00:12:52
tiene.
00:13:03
Esto es lo que le quedará.
00:13:05
¿Vale?
00:13:10
Bueno, esta es la forma más sencilla, a lo mejor,
00:13:11
de hacerlo, más estructurada.
00:13:13
Primero hago la suma y le queda esto menos la suma y ya está.
00:13:15
A ver, también lo podríais haber planteado.
00:13:19
Me hago un bucle for en el que le voy restando a capacidad lo
00:13:21
que ocupa cada aplicación.
00:13:27
Sería otra forma de hacerlo también.
00:13:28
Es decir, podemos hacer esto.
00:13:31
A lo mejor, también, lo digo porque a lo mejor a alguien se
00:13:33
le ha ocurrido hacerlo así.
00:13:37
Voy a llamarlo, pues, yo que sé, cantidad y la inicializo con la
00:13:41
capacidad, la inicializo con la capacidad.
00:13:49
Y ahora recorro de nuevo las instaladas,
00:13:53
las recorro otra vez, instaladas.
00:13:56
Y ahora hago cantidad menos igual a punto de tamaño.
00:14:00
A lo mejor, alguno lo ha visto de esta manera, ¿no?
00:14:09
Yo a una variable la inicializo con la capacidad máxima y le voy
00:14:12
restando lo que ocupa cada aplicación, le voy restando.
00:14:17
Cuando he terminado de restar, cantidad tendrá lo que queda,
00:14:21
¿verdad?
00:14:23
Cantidad tendrá lo que queda.
00:14:24
Entonces, a lo mejor, pues, alguno lo ha visto así en lugar
00:14:26
de esa forma que es como más estructurada,
00:14:29
más adaptada a nuestros patrones de funcionamiento.
00:14:31
Que es, hago la suma primero y luego hago la resta de lo que
00:14:35
tengo menos lo quitado.
00:14:39
Esperamos, debería ser lo mismo.
00:14:41
Debería mostrar lo mismo en las 2 veces.
00:14:43
Le queda cantidad.
00:14:48
Aquí ya los parámetros.
00:14:53
Debería mostrar lo mismo, si lo hemos hecho bien.
00:15:01
Vale, vamos a probar estos 2 métodos primero.
00:15:05
Antes de hacer el otro de get up, que es más extraño,
00:15:08
vamos a, dime, sí, sí, sí.
00:15:12
Bueno, ¿te refieres aquí?
00:15:23
Bueno, es que aquí yo parto, tengo 50.
00:15:26
Y a 50 le voy quitando todo lo que tengo instalado.
00:15:29
Lo que me quede al final será lo que tengo libre, ¿no?
00:15:32
Pues, eso.
00:15:36
Lo que me queda al final, que es cantidad,
00:15:38
es lo que tengo libre.
00:15:40
O sea, me refiero que esto y lo de arriba te conducen al mismo
00:15:41
resultado.
00:15:44
Son 2 formas de hacer lo mismo, ¿no?
00:15:45
¿O lo he pensado mal?
00:15:48
Yo creo que son 2 formas de hacer lo mismo, ¿no?
00:15:49
Lo que queda.
00:15:56
No, devuelve lo que queda.
00:15:57
O sea, igual que arriba, devuelve lo que queda.
00:16:00
O sea, yo tengo, imagínate que mi capacidad son 100.
00:16:02
Y tengo instalado una aplicación de 30 y otra de 20.
00:16:05
Pues, lo que estoy haciendo aquí es hacer 100 menos 30.
00:16:08
Esto de arriba, por ejemplo, está sumando el tamaño de lo
00:16:10
que tengo.
00:16:13
Sí, y aquí le estoy restando el tamaño de lo que tengo
00:16:14
instalado, pero a la capacidad máxima.
00:16:16
Imagínate que mi capacidad es 100.
00:16:20
Y tengo una que tiene 30 y otra 20.
00:16:22
Pues, lo que estoy haciendo es 100 menos 30.
00:16:23
A lo que me queda, ahora le resto 20.
00:16:26
Y ya, lo que me quede será lo libre.
00:16:28
Lo que me quede será lo libre.
00:16:31
Son 2 formas de hacer lo mismo.
00:16:34
La de arriba quizás es más clara, es más intuitiva.
00:16:37
Yo sumo lo que tengo y luego se lo resto a la máxima.
00:16:40
La de arriba es más intuitiva.
00:16:43
Y esta es otra, por si a alguien se le ocurriera hacerlo de esa
00:16:45
manera, ¿vale?
00:16:47
Para ir pensando de formas distintas.
00:16:48
Vamos a hacer ya una clase main en otro paquete aparte para
00:16:54
hacer unas pruebas con esto.
00:16:57
Entonces, nos hacemos otro paquete.
00:17:02
Pues, este paquete ya le llamamos main.
00:17:04
Y este paquete ya es la que va a tener la prueba móvil.
00:17:06
Esta de aquí.
00:17:13
La prueba móvil.
00:17:15
Pues, venga, vamos a ir haciendo ya prueba móvil para ir
00:17:16
probando estas cosas.
00:17:21
Prueba móvil con un main.
00:17:28
Vale.
00:17:30
Entonces, primero, vamos a crear un almacén de
00:17:33
aplicaciones.
00:17:37
Un app store con varias apps dentro.
00:17:38
Vale, pues, lo vamos a hacer con este.
00:17:41
Aquí teníamos ya un main que hicimos de prueba, ¿verdad?
00:17:45
Este main ya que hicimos de prueba que estaba aquí abajo.
00:17:51
Este main que hicimos de prueba.
00:17:54
Lo voy a dejar aquí comentado porque ya este main no lo
00:17:57
quiero, pero no lo borro.
00:18:01
Vale, pues, venga, vamos a, en nuestra clase prueba móvil con
00:18:04
mi main, primero me voy a hacer un almacén de aplicaciones.
00:18:09
Hago el import o pongo model.appstore o hago el import.
00:18:13
Recordad, no olvidéis nunca nada de lo que vamos haciendo.
00:18:17
Vale, podría hacer esto y me quedo tan ancha y no hago ni
00:18:21
import ni hago nada.
00:18:24
Vale.
00:18:26
Pero, bueno, si a alguien no le gusta, le parece feo,
00:18:27
pues, puede quitar esta parte del nombre de la clase,
00:18:31
puede quitar esta parte y poner el import.
00:18:34
Vale, pues, primero nos hacemos el almacén de aplicaciones.
00:18:39
Vale, que luego vamos a hacernos un teléfono, ¿no?
00:18:44
Vamos a crear un móvil con 30 gigas, ¿vale?
00:18:47
Y que tenga este app store, por ahora sin aplicaciones
00:18:52
instaladas.
00:18:56
Venga, pues, entonces, vamos a crearnos un teléfono móvil.
00:18:59
De nuevo hago el import para no importar el model.
00:19:12
Le vamos a poner, ala, venga, 30 gigas.
00:19:16
Aunque igual las quemo 30 gigas, venga.
00:19:20
Pues, le vamos a poner primero 30 gigas.
00:19:25
Ala, capacidad 30.
00:19:27
El móvil ya tiene 30 gigas.
00:19:29
Y ahora vamos a fijar que su almacén de aplicaciones sea el
00:19:32
de aquí arriba.
00:19:35
Solamente va a tener estas 5 aplicaciones instalables,
00:19:36
solo estas 5 por ahora.
00:19:40
Pues, le vamos a fijar a este móvil,
00:19:43
este almacén de aplicaciones.
00:19:50
Ahora mismo no tiene ninguna todavía instalada,
00:19:53
no tiene ninguna.
00:19:55
Porque, de hecho, el método de instalar, que es el get app,
00:19:57
este todavía no lo hemos hecho.
00:20:00
La clase móvil, ¿verdad?
00:20:02
Tiene un método get app que no hemos hecho todavía,
00:20:03
que es precisamente para instalar en el teléfono una
00:20:05
aplicación del almacén y no la hemos hecho.
00:20:09
Luego, este móvil ahora mismo tiene un almacén,
00:20:11
una capacidad, pero sus aplicaciones instaladas ahora
00:20:14
mismo es nul, ahora mismo es nul.
00:20:19
No tiene ninguna, ahora mismo es nul.
00:20:21
Vale, pero, bueno, algo con el teléfono sí podemos hacer.
00:20:23
No podemos instalar, pero tenemos el método hecho.
00:20:26
Pero sí podemos navegar por el app store.
00:20:28
A ver, vamos a navegar por él, a ver qué tiene.
00:20:30
Vamos a navegar, ¿vale?
00:20:34
Y vamos también a mostrar su estatus, ¿vale?
00:20:38
Entonces, espera, primero voy a navegar y luego ya muestro el
00:20:46
otro porque antes os quiero hacer una pregunta,
00:20:49
que supongo que ya sabéis cuál es.
00:20:51
Vamos a navegar a ver qué aplicaciones me dice que tiene.
00:20:52
Venga, venga, vamos a navegar por este móvil.
00:20:55
Le doy al botón de navegar.
00:20:59
Espera, algún error de compilación no he arreglado
00:21:01
porque me, ah, cuando he compilado el main,
00:21:03
cuando he comentado el main, lo he comentado mal.
00:21:07
Ahora, vale.
00:21:10
Venga, vamos a navegar por este teléfono que acabamos de hacer.
00:21:12
Vamos a ver este teléfono que me permite instalar.
00:21:16
Esto es lo que tiene, ¿vale?
00:21:20
Le hemos dado, venga, navega por el app store.
00:21:21
Pues, esto tienes.
00:21:23
Ahora podríamos elegir una aplicación a instalar.
00:21:25
Pero, claro, habría que llamar al método get app es el que
00:21:28
instala, que no lo tenemos hecho.
00:21:30
Luego no vamos a elegir a ninguna aplicación para
00:21:31
instalar todavía.
00:21:33
Pero, venga, vamos a incorporar que mire el estatus, ¿vale?
00:21:35
Vale, entonces, antes de ejecutarlo,
00:21:39
que ya lo habréis ejecutado seguro, pero, pregunto yo,
00:21:43
antes de ejecutarlo, ¿qué va a salir?
00:21:47
Líneas rojas, ¿verdad?
00:21:55
Que sí van a salir líneas rojas antes de ejecutarlo.
00:21:57
No valía que ejecutarais, valía que ya previerais que iban a
00:22:00
salir líneas rojas y me dijerais por qué.
00:22:03
¿Por qué van a salir líneas rojas?
00:22:08
Claro, porque este método, su array de instaladas no es que
00:22:13
esté vacío, peor que eso.
00:22:16
Es null.
00:22:18
Y yo, cuando hice mi método status, claro,
00:22:19
uno hace las cosas y hasta que no hace las pruebas,
00:22:21
hasta que no hace las pruebas, hay detalles de los que no se
00:22:24
das cuenta.
00:22:26
Para eso la fase de pruebas es tan importante y, por eso,
00:22:27
los equipos de desarrollo, pues, la parte de testing es tan
00:22:29
grande y ocupa tanta gente y tiene tanta gente trabajando.
00:22:32
Porque se escapan muchísimas cosas.
00:22:35
Se escapa una cosa tan pequeñita,
00:22:38
¿cómo no se va a escapar una aplicación grande?
00:22:40
Pues, ¿qué se nos ha escapado?
00:22:42
Que cuando yo he dicho así alegremente,
00:22:43
y lo he dicho así alegremente a propósito,
00:22:46
cuando yo he dicho alegremente, hombre,
00:22:49
la parte de las que tenga instaladas es facilísimo.
00:22:51
Le digo punto lente y ya está.
00:22:54
Lo he dicho ahí con toda la alegría del mundo.
00:22:56
Pero, claro, me he pasado de alegría.
00:22:58
¿Qué pasa si el teléfono no tiene ninguna y el array es null?
00:23:00
Pues, que esto es un pedazo null pointer exception.
00:23:04
Porque instaladas es null.
00:23:07
Pero si es un objeto null, tú haces punto algo,
00:23:09
null pointer exception.
00:23:12
¿Vale?
00:23:14
Entonces, eso.
00:23:15
O prevés que va a salir por el incumplimiento ya que te ha dado
00:23:16
la vida, o lo ves en la fase de pruebas y dices, anda, claro,
00:23:20
si es que cómo se me ocurre a mí.
00:23:23
¿Vale?
00:23:25
Pues, entonces, aquí, obviamente,
00:23:27
esto podríamos arreglarlo de esta manera.
00:23:33
Si instaladas es diferente de null y solo si es diferente de
00:23:39
null, entonces, ya sí, muéstrame este mensaje.
00:23:49
Pero si no es diferente de null, dime,
00:23:53
no tiene aplicaciones instaladas.
00:23:55
¿No?
00:24:05
Y además es que ahora ya va a pasar en la parte de arriba,
00:24:07
que hemos hecho al principio.
00:24:09
Claro, si todo esto de aquí, recorrer el array,
00:24:12
todo esto de recorrer el array, solo se puede hacer si
00:24:16
instaladas es diferente de null.
00:24:19
Porque si no es diferente de null,
00:24:21
el for each va a sacar un null pointer exception.
00:24:22
Porque el for each, lo primero que hace es, me cojo instaladas.
00:24:25
Venga, voy a contar cuántos tiene haciendo un len.
00:24:29
En cuanto haga el len, el for each internamente,
00:24:31
que lo hace él, va.
00:24:33
Luego, todo eso, todo este código,
00:24:35
solo tiene sentido que lo hagamos en el caso de que tenga
00:24:39
aplicaciones instaladas.
00:24:43
Luego, cuidadín, aquí vamos a mejor cambiarlo para que quede
00:24:45
más bonito el código.
00:24:49
Si es null, le decimos, no tiene irretun, para que se acabe.
00:24:50
Y nos va a quedar todo mucho más guay, ¿verdad?
00:24:55
¿Vale?
00:24:58
Si es null, le digo, no tiene.
00:25:02
Y entonces ya, mira, retun, fuera, ya está.
00:25:06
La capacidad libre, pues, es la del móvil.
00:25:11
No tiene ninguna.
00:25:13
El señor sabe que, entonces, tiene todo el espacio libre.
00:25:13
Hombre, puede decir, tiene usted todo su espacio libre.
00:25:16
Tiene toda su capacidad que es tanta.
00:25:18
Lo que sea.
00:25:21
Y ahora, aquí ya el else no nos hace falta.
00:25:22
Porque si hemos llegado a este punto,
00:25:25
es porque instaladas es diferente de null.
00:25:27
Si hemos llegado a este punto, es porque instaladas es
00:25:29
diferente de null.
00:25:30
Entonces, ahora ya es cuando tiene sentido mostrar el espacio
00:25:32
libre y hacer todo esto.
00:25:35
Aquí abajo.
00:25:38
¿Vale?
00:25:42
Y de paso, vamos a decir ya de paso las que tiene instaladas.
00:25:43
¿Vale?
00:25:46
Tiene instaladas.leds, aplicaciones.
00:25:52
Aplicaciones, ala.
00:26:09
¿Vale?
00:26:12
Vale, este status ya parece que está un poquito a prueba ya de
00:26:14
null pointer exception.
00:26:18
Ya está a prueba de null pointer exception.
00:26:20
Porque si es null, me dice, no tiene aplicaciones y fuera.
00:26:22
Y si ha llegado a este punto, es porque no ha terminado.
00:26:26
Luego tiene aplicaciones.
00:26:29
Me dice las que tiene y ahora ya me muestra el espacio libre en
00:26:31
el móvil.
00:26:35
Y esto lo voy a, a ver, esto nunca me acuerdo cómo, ah, sí.
00:26:36
Vale, para devolverle el formato.
00:26:50
Ala, ya está.
00:26:54
¿Vale?
00:26:56
Venga, pues vamos ahora sí a hacer el status que me va a
00:26:57
salir, no tiene aplicaciones instaladas.
00:27:00
Si es que está bien, claro.
00:27:02
Efectivamente, no tiene aplicaciones instaladas porque no
00:27:07
tengo la opción de instalarlas todavía, no he hecho el método.
00:27:10
Ese es el método que nos falta por hacer.
00:27:14
Bueno, nos falta también el de borrar una aplicación,
00:27:16
que es este, que es el largo y el más largo y el más raro.
00:27:19
¿Vale?
00:27:23
Este de aquí, que es, te doy el nombre de una aplicación y la
00:27:23
tienes que instalar.
00:27:29
Venga, vamos a escribirlo.
00:27:31
A ver, este método, public void, get app,
00:27:33
te doy el nombre de una app.
00:27:42
Esto es lo que te doy.
00:27:45
Te doy el nombre de una app.
00:27:49
Entonces, vamos a entender qué tiene que hacer este método.
00:27:50
Yo te doy el nombre.
00:27:52
Entonces, habrá que buscar la aplicación con ese nombre en el
00:27:53
almacén de aplicaciones, en el store del móvil,
00:28:00
en el store.
00:28:02
Y esa aplicación, una copia de ella,
00:28:04
llevarla a este array, llevarla a este array.
00:28:10
Si es que no está, porque podría estar.
00:28:16
Si es que no hay ninguna que se llame así.
00:28:20
En el caso de que esté, en el caso de que esté,
00:28:22
entonces, lo que dice es, oye, pues,
00:28:25
entonces, guarda en la de instaladas una actualizada.
00:28:27
Entonces, para hacer este método es,
00:28:33
para lo que tendríamos que usar,
00:28:35
install, que es ya de paso el que nos da una copia,
00:28:37
que vamos a necesitar, y comprobar actualización,
00:28:41
que nos da una copia de la actualizada.
00:28:44
Entonces, este método hay que hacerlo usando,
00:28:46
porque si no, usando, que para eso lo tenemos,
00:28:53
install de AppStore y CheckUpdate son los que hay que
00:28:57
usar, porque si no, ¿para qué las hemos hecho?
00:29:05
Hay que usar estos métodos de la clase AppStore para hacer
00:29:11
esto.
00:29:13
Entonces, la idea es que entendáis lo que tiene que
00:29:15
hacer y luego ya ver cómo lo construís,
00:29:17
cómo lo hacéis usando esos métodos.
00:29:19
Lo que tiene que hacer es, se le da el nombre de una
00:29:21
aplicación, un nombre, WhatsApp, por ejemplo.
00:29:24
Pues, se va al almacén para ver si hay alguna aplicación,
00:29:27
para coger la aplicación que tenga ese nombre y conseguir
00:29:32
que una copia de esa aplicación se vaya a este array,
00:29:38
expandiéndolo, como siempre, una copia se vaya a este array.
00:29:43
Recordad que para hacer una copia de una aplicación que hay
00:29:46
en el AppStore, teníamos el método install,
00:29:48
que install desacaba una copia de la que hay en el AppStore
00:29:50
con un nombre.
00:29:52
Pues, ya tenemos el método install para eso.
00:29:53
Hay que usar el método install para sacar esa copia y
00:29:55
llevarla aquí.
00:30:00
¿Qué puede ocurrir?
00:30:02
Que la aplicación ya exista con ese nombre en ese array.
00:30:04
Si ya existe, entonces hay que verificar que la versión de la
00:30:10
que existe es inferior de la del AppStore.
00:30:15
Porque si es inferior, guardo una copia de la actualizada.
00:30:22
Y para eso estaba el método checkUpdate,
00:30:26
que te devolvía una copia de la actualizada.
00:30:28
Bueno, pues, esa es la idea, que uséis esos 2 métodos para hacer
00:30:31
eso, ¿vale?
00:30:33
Pues, venga, tenéis trabajo de aquí a mañana, entonces.
00:30:36
Completar ese método y el otro que queda.
00:30:39
Este, el de remove.
00:30:43
Y ya está.
00:30:46
Y luego ya, ya se pueden hacer las pruebas con un teléfono en
00:30:47
concreto y instalar aplicaciones,
00:30:49
ver las que tiene, ver capacidad, etcétera, etcétera.
00:30:50
¿Vale?
00:30:53
Un segundo.
00:30:54
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 7
- Fecha:
- 29 de enero de 2024 - 17:56
- Visibilidad:
- Público
- Centro:
- IES ROSA CHACEL
- Duración:
- 30′ 55″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 147.33 MBytes