1 00:00:00,000 --> 00:00:06,840 Bueno, pues, ah, la última clase de la aplicación, 2 00:00:06,840 --> 00:00:09,920 el teléfono, ¿vale? 3 00:00:09,920 --> 00:00:11,520 El teléfono. 4 00:00:11,520 --> 00:00:14,360 Pues, venga, esta clase es más rara y los métodos son más 5 00:00:14,360 --> 00:00:22,680 raros, pero, bueno, pues, ala, nos vamos otra vez al paquete, 6 00:00:22,680 --> 00:00:28,920 esta no es, el paquete modelo en el que están las entidades. 7 00:00:28,920 --> 00:00:31,460 Nos vamos al paquete modelo otra vez y hacemos una nueva 8 00:00:31,460 --> 00:00:31,960 clase. 9 00:00:36,480 --> 00:00:40,640 Terminal, móvil, lo que uno quiera. 10 00:00:40,640 --> 00:00:44,560 Y ahora, el que hizo el diseño de la aplicación, pues, 11 00:00:44,560 --> 00:00:48,680 decidió ya qué propiedades le interesaban. 12 00:00:48,680 --> 00:00:49,400 Ya lo decidió. 13 00:00:53,040 --> 00:00:56,000 ¿Vale? 14 00:00:56,000 --> 00:01:00,400 Entonces, el que hizo el diseño del, silencio, 15 00:01:00,400 --> 00:01:02,920 el que hizo el diseño de la aplicación ya decidió que las 16 00:01:02,920 --> 00:01:07,000 propiedades por las que se caracteriza un móvil a efectos 17 00:01:07,000 --> 00:01:09,440 de esta aplicación, claro, a efectos de esta en concreto, 18 00:01:09,440 --> 00:01:11,840 que no es una aplicación, es a efectos de esta, 19 00:01:11,840 --> 00:01:15,720 las únicas propiedades que le interesan son, 20 00:01:15,720 --> 00:01:18,200 el array con las aplicaciones que tiene instaladas en un 21 00:01:18,200 --> 00:01:22,240 momento dado, las que tiene, la capacidad máxima que tiene el 22 00:01:22,240 --> 00:01:26,520 teléfono y su almacén de aplicaciones, 23 00:01:26,520 --> 00:01:29,080 las que se supone que puede instalar, 24 00:01:29,080 --> 00:01:31,600 pero en cada momento tiene instaladas solo las que haya en 25 00:01:31,600 --> 00:01:32,840 este array. 26 00:01:32,840 --> 00:01:36,220 Conclusión, va a tener como propiedades una capacidad 27 00:01:36,220 --> 00:01:40,040 máxima, un array y un objeto de estos. 28 00:01:40,040 --> 00:01:40,560 ¿Vale? 29 00:01:40,560 --> 00:01:46,520 Pues, venga, vamos a, por defecto, 30 00:01:46,520 --> 00:01:49,520 al menos que queramos hacer otro diseño por las razones que 31 00:01:49,520 --> 00:01:52,880 sean, por defecto ya sabéis que propiedades privadas, 32 00:01:52,880 --> 00:01:55,040 constructores y getter y setter, por defecto, 33 00:01:55,040 --> 00:01:58,120 a menos que queramos hacer un diseño especial por otras 34 00:01:58,120 --> 00:01:59,000 cosas. 35 00:01:59,000 --> 00:02:01,680 La capacidad máxima, como estábamos midiendo las 36 00:02:01,680 --> 00:02:04,080 capacidades de las aplicaciones en dabble, 37 00:02:04,080 --> 00:02:08,960 pues la capacidad en dabble también. 38 00:02:08,960 --> 00:02:13,360 El almacén de aplicaciones, el almacén de aplicaciones del 39 00:02:13,360 --> 00:02:17,360 móvil será un objeto de este, así, de este. 40 00:02:17,360 --> 00:02:19,160 Ese será su almacén de aplicaciones, 41 00:02:19,160 --> 00:02:21,840 las instalables que tiene su almacén. 42 00:02:21,840 --> 00:02:24,280 Y, luego, las que tiene instaladas en concreto, 43 00:02:24,280 --> 00:02:27,960 las que tiene instaladas en concreto, que ese será, 44 00:02:27,960 --> 00:02:36,840 nos han dicho, un array de estos, instaladas, ala. 45 00:02:40,440 --> 00:02:43,000 Esas son las 3 propiedades que lo caracterizan efectos de 46 00:02:43,000 --> 00:02:47,320 esta aplicación, la capacidad, el almacén y las que tiene 47 00:02:47,320 --> 00:02:50,800 instaladas en un momento dado. 48 00:02:50,800 --> 00:03:01,440 Entonces, como siempre, hacemos un constructor con parámetros y 49 00:03:01,440 --> 00:03:06,640 un constructor sin parámetros, porque es muy buena costumbre. 50 00:03:10,200 --> 00:03:11,240 Y get y set, claro. 51 00:03:17,320 --> 00:03:26,960 Vale, pues, ala. 52 00:03:26,960 --> 00:03:30,720 Ahora, el teléfono, además, puede hacer cosas. 53 00:03:30,720 --> 00:03:33,040 Esto, digamos, ¿qué es lo que le representa? 54 00:03:33,040 --> 00:03:38,600 Le representan esas 3 propiedades. 55 00:03:38,600 --> 00:03:40,840 Eso es lo que le representa. 56 00:03:40,840 --> 00:03:43,600 Y, luego, esa es su foto, ¿vale? 57 00:03:43,600 --> 00:03:45,000 Esa es su foto. 58 00:03:45,000 --> 00:03:49,560 La foto del móvil es su capacidad, su almacén y las 59 00:03:49,560 --> 00:03:50,440 instaladas. 60 00:03:50,440 --> 00:03:51,960 Esa es su foto. 61 00:03:51,960 --> 00:03:53,720 Y, luego, ya tiene su comportamiento, 62 00:03:53,720 --> 00:03:56,120 que es lo que puede hacer. 63 00:03:56,120 --> 00:03:58,320 Lo que puede hacer o su comportamiento se recogen 64 00:03:58,320 --> 00:03:59,080 métodos. 65 00:03:59,080 --> 00:04:01,920 No hay otra, se recogen métodos, ¿vale? 66 00:04:01,920 --> 00:04:04,440 Pues, su comportamiento o lo que hay que hacer, 67 00:04:04,440 --> 00:04:09,160 se recogen unos métodos que ya nos están diciendo cuáles, 68 00:04:09,160 --> 00:04:13,400 nos están diciendo cuáles, que son estos 3, 69 00:04:13,400 --> 00:04:18,600 navegar por el almacén, instalar una aplicación en el 70 00:04:18,600 --> 00:04:24,000 teléfono de las que hay en el almacén, 71 00:04:24,000 --> 00:04:27,120 borrar una aplicación de las que tiene instaladas en un momento 72 00:04:27,120 --> 00:04:32,560 dado y indicar, pues, cuánto espacio libre tiene y cuáles 73 00:04:32,560 --> 00:04:33,800 aplicaciones tiene. 74 00:04:33,800 --> 00:04:37,400 O sea, la de navegar e iStatus parecen las más sencillas. 75 00:04:37,400 --> 00:04:40,160 Vamos a hacerlas las primeras. 76 00:04:40,160 --> 00:04:42,360 Venga, navegar por el almacén. 77 00:04:42,360 --> 00:04:43,840 Vamos a navegar por el almacén. 78 00:04:47,400 --> 00:04:48,680 Pues, navegar por el almacén. 79 00:04:57,560 --> 00:05:01,560 Muestra las aplicaciones instalables. 80 00:05:01,560 --> 00:05:04,600 Tiene que mostrarlas, a ver qué me dice. 81 00:05:04,600 --> 00:05:05,560 Navegar a Pestor. 82 00:05:05,560 --> 00:05:07,560 Imprime por pantalla. 83 00:05:07,560 --> 00:05:10,640 Aquí no dice que devuelva un string con la información, no. 84 00:05:10,680 --> 00:05:12,880 Directamente imprime por pantalla. 85 00:05:12,880 --> 00:05:16,360 Imprime por pantalla las que tiene en el almacén. 86 00:05:16,360 --> 00:05:17,640 Es lo único que tiene que hacer. 87 00:05:17,640 --> 00:05:20,560 Es como un botoncito para decir, a ver lo que tengo, pa. 88 00:05:20,560 --> 00:05:22,080 Y te sale lo que tienes, ¿vale? 89 00:05:22,080 --> 00:05:24,680 El botón que te permite ver lo que tienes tú para elegir 90 00:05:24,680 --> 00:05:27,080 instalar, lo que tienes para elegir instalar. 91 00:05:27,080 --> 00:05:28,800 Es solamente eso. 92 00:05:28,800 --> 00:05:32,000 Entonces, bueno, pues, ya está. 93 00:05:32,000 --> 00:05:34,800 Primera pregunta de siempre. 94 00:05:34,800 --> 00:05:38,320 ¿Este método necesita que le pasemos aquí un almacén? 95 00:05:38,320 --> 00:05:42,840 Perdón, ¿necesita que le pasemos ahí algún parámetro? 96 00:05:42,840 --> 00:05:45,520 Para mostrar las aplicaciones que tiene el móvil en su 97 00:05:45,520 --> 00:05:50,040 almacén, ¿necesita que le pasemos algún parámetro? 98 00:05:50,040 --> 00:05:50,840 No, ¿por qué no? 99 00:05:54,240 --> 00:05:55,240 Porque la tiene arriba. 100 00:05:55,240 --> 00:05:57,520 Es una de las propiedades del teléfono. 101 00:05:57,520 --> 00:06:00,680 Una de las propiedades del teléfono es precisamente su 102 00:06:00,680 --> 00:06:01,240 almacén. 103 00:06:01,240 --> 00:06:02,740 Entonces, no tenemos que pasárselo. 104 00:06:02,740 --> 00:06:04,880 Es una de las propiedades del teléfono. 105 00:06:04,880 --> 00:06:05,840 Tiene que devolver algo. 106 00:06:05,840 --> 00:06:07,720 Nos han dicho que lo muestra por pantalla. 107 00:06:07,720 --> 00:06:09,280 Entonces, no tiene que devolver nada. 108 00:06:12,400 --> 00:06:20,120 Pues, entonces, ala, pues, venga, este método. 109 00:06:25,080 --> 00:06:28,120 Pues, el método este, navegar por el almacén. 110 00:06:28,120 --> 00:06:30,200 Pues, primero hay que localizar el almacén. 111 00:06:30,200 --> 00:06:31,600 El almacén es esta. 112 00:06:31,600 --> 00:06:32,760 Es este. 113 00:06:32,760 --> 00:06:36,800 Esta es la variable que tiene la información del almacén. 114 00:06:36,800 --> 00:06:37,800 ¿Y cómo la tiene? 115 00:06:37,800 --> 00:06:40,040 Habrá que meterse en el app store a ver cómo la tiene. 116 00:06:40,040 --> 00:06:42,200 Habrá que meterse. 117 00:06:42,200 --> 00:06:44,160 Nos metemos, ah, pues, se nos había olvidado. 118 00:06:44,160 --> 00:06:45,880 La tiene en forma de array. 119 00:06:45,880 --> 00:06:46,800 Pues, ya está. 120 00:06:46,800 --> 00:06:51,320 Pues, cogemos ese array y lo listamos. 121 00:06:51,320 --> 00:06:52,280 ¿Vale? 122 00:06:52,280 --> 00:06:57,520 Bueno, pues, entonces, el almacén, entonces, 123 00:06:57,520 --> 00:07:00,240 tiene la información de las aplicaciones que tiene. 124 00:07:00,240 --> 00:07:01,680 Las tiene un array. 125 00:07:01,680 --> 00:07:04,800 Un array que obtenemos con este método. 126 00:07:04,800 --> 00:07:07,240 Pero esto es un array de aplicaciones. 127 00:07:07,240 --> 00:07:11,640 Entonces, vamos a mostrar todas y cada una de las aplicaciones 128 00:07:11,640 --> 00:07:12,920 que están en este array. 129 00:07:12,920 --> 00:07:42,400 Y punto. 130 00:07:42,400 --> 00:07:44,440 Hemos dicho que el nombre es solo. 131 00:07:44,440 --> 00:07:46,120 Pues, ala, ya está. 132 00:07:46,120 --> 00:07:46,920 ¿Vale? 133 00:07:46,920 --> 00:07:49,080 Entonces, ¿dónde está la información a listar? 134 00:07:49,080 --> 00:07:51,960 Repito, la información a listar está en esta variable. 135 00:07:51,960 --> 00:07:53,280 En esta. 136 00:07:53,280 --> 00:07:55,040 Pero esa variable es de tipo app store. 137 00:07:55,040 --> 00:07:56,680 Entonces, tendremos que ver, vale, sí, 138 00:07:56,680 --> 00:07:59,720 pero ese objeto, ¿cómo tiene guardado la información dentro 139 00:07:59,720 --> 00:08:00,680 para acceder a ella? 140 00:08:00,680 --> 00:08:02,240 Tenemos que meternos dentro de ella. 141 00:08:02,240 --> 00:08:04,640 Tenemos que meternos dentro. 142 00:08:04,640 --> 00:08:05,920 Dentro de él para sacarla. 143 00:08:05,920 --> 00:08:09,120 Bueno, pues, dentro de él, la estructura la conocemos. 144 00:08:09,120 --> 00:08:12,840 Sabemos que la tiene guardada en un array. 145 00:08:12,840 --> 00:08:14,480 Ahora, ya sí, en un array. 146 00:08:14,480 --> 00:08:16,640 Un array que es una propiedad que se llama store, 147 00:08:16,640 --> 00:08:19,120 que podemos obtener con el método este. 148 00:08:19,120 --> 00:08:22,440 Y solo con ese, porque es privada, solo con ese. 149 00:08:22,440 --> 00:08:22,920 ¿Vale? 150 00:08:22,920 --> 00:08:28,840 Pues, entonces, este es el array que yo tengo que listar. 151 00:08:28,840 --> 00:08:32,280 Pues, nada, lo listo como todos los arrays del mundo. 152 00:08:32,280 --> 00:08:35,080 Posiciones hasta que llegue al final. 153 00:08:35,080 --> 00:08:37,120 Y voy mostrando posición por posición. 154 00:08:37,120 --> 00:08:39,520 Entonces, esto, claro, uno lo ve y le puede quedar raro, 155 00:08:39,520 --> 00:08:40,720 pero es que no es nada raro. 156 00:08:40,720 --> 00:08:44,040 Es que todo esto, todo eso, es un array. 157 00:08:44,040 --> 00:08:45,200 Todo eso es un array. 158 00:08:45,200 --> 00:08:47,200 Porque es lo que me devuelve el método get. 159 00:08:47,200 --> 00:08:49,200 Y lo que me devuelve el método get es un array. 160 00:08:49,200 --> 00:08:50,960 Entonces, como todo eso es un array, 161 00:08:50,960 --> 00:08:52,520 pues, puedo acceder a posiciones, 162 00:08:52,520 --> 00:08:54,560 puedo acceder a punto lenza, lo que haga falta. 163 00:08:54,560 --> 00:08:56,840 Porque todo eso es un array. 164 00:08:56,840 --> 00:09:01,320 Porque el get de store me devuelve un array. 165 00:09:01,320 --> 00:09:01,800 ¿No? 166 00:09:01,800 --> 00:09:04,120 De hecho, hemos hecho nosotros ese método y así lo hemos 167 00:09:04,120 --> 00:09:04,600 hecho. 168 00:09:04,600 --> 00:09:10,040 El get store me devuelve un array enterito, un array entero. 169 00:09:10,040 --> 00:09:11,160 Me devuelve un array. 170 00:09:13,840 --> 00:09:15,080 ¿Vale? 171 00:09:15,080 --> 00:09:15,680 Pues, ya está. 172 00:09:21,920 --> 00:09:23,080 Venga, siguiente. 173 00:09:26,040 --> 00:09:31,480 Vámonos a la de navegar, get up, status. 174 00:09:31,480 --> 00:09:35,600 Status, que es la siguiente más sencilla. 175 00:09:35,600 --> 00:09:40,760 Status indica cuánto espacio libre tiene el móvil y cuántas, 176 00:09:40,760 --> 00:09:42,160 solo cuántas. 177 00:09:42,160 --> 00:09:45,280 ¿Cuántas aplicaciones instaladas tiene? 178 00:09:45,280 --> 00:09:47,520 Pues, venga. 179 00:09:47,520 --> 00:09:52,720 Este método status indica, significa que lo muestra por 180 00:09:52,720 --> 00:09:55,360 consola, luego no devuelve nada. 181 00:09:55,360 --> 00:10:01,440 Y, de nuevo, ¿necesita algún parámetro? 182 00:10:01,440 --> 00:10:02,400 No. 183 00:10:02,400 --> 00:10:05,200 Porque toda la información que tiene que mostrar la tienen las 184 00:10:05,200 --> 00:10:06,200 variables. 185 00:10:06,200 --> 00:10:10,280 Es el espacio libre, lo puede sacar a través de las 186 00:10:10,280 --> 00:10:12,960 instaladas, lo que ocupan, restándole la capacidad. 187 00:10:12,960 --> 00:10:13,720 No le hace falta. 188 00:10:17,640 --> 00:10:18,120 ¿Vale? 189 00:10:18,120 --> 00:10:19,800 Pues, venga. 190 00:10:19,800 --> 00:10:21,760 Este, status. 191 00:10:21,760 --> 00:10:25,440 Recordad que hay que hacer las 2 cosas. 192 00:10:25,440 --> 00:10:29,920 Mostrar el espacio libre en gigas en el móvil. 193 00:10:32,560 --> 00:10:36,160 Y, luego, decir cuántas tiene instaladas. 194 00:10:36,160 --> 00:10:37,640 En ese orden inverso me da igual. 195 00:10:42,360 --> 00:10:42,860 Instaladas. 196 00:10:47,280 --> 00:10:47,780 ¿Vale? 197 00:10:48,260 --> 00:10:54,260 A ver, ¿cuántas apps tiene instaladas? 198 00:10:54,260 --> 00:10:56,100 Esto está claro, ¿no? 199 00:10:56,100 --> 00:10:58,900 Pues, tantas como tamaño tenga la RAI. 200 00:10:58,900 --> 00:10:59,400 ¿Sí o no? 201 00:10:59,400 --> 00:10:59,900 Sí. 202 00:11:12,480 --> 00:11:18,360 Tiene instaladas punto lens. 203 00:11:29,400 --> 00:11:34,400 ¿Vale? 204 00:11:34,400 --> 00:11:37,960 O sea, las que tiene instaladas, silencio. 205 00:11:37,960 --> 00:11:39,720 Eso es lo más fácil del mundo. 206 00:11:39,720 --> 00:11:42,560 Tantas como tamaño tenga la RAI, no hay más que pensar, ¿no? 207 00:11:42,560 --> 00:11:43,560 Tantas como tamaño tenga. 208 00:11:43,560 --> 00:11:46,640 Tiene esas 7, las que tenga instaladas. 209 00:11:46,640 --> 00:11:49,840 Y, ahora, ¿cuánto espacio libre le queda? 210 00:11:49,840 --> 00:11:52,320 Pues, podemos hacerlo de varias maneras, pero una, 211 00:11:52,320 --> 00:11:55,800 quizá la más estructurada en la que más podemos entenderlo 212 00:11:55,800 --> 00:11:57,320 desde el principio. 213 00:11:57,360 --> 00:11:59,720 Una de las formas que podemos hacer ya está otra parte, 214 00:11:59,720 --> 00:12:01,280 porque esta es inmediata. 215 00:12:01,280 --> 00:12:03,760 Pues, la más estructurada, pues, podría ser. 216 00:12:03,760 --> 00:12:07,560 Primero, hacemos la suma de lo que ocupan las que tiene y, 217 00:12:07,560 --> 00:12:10,080 luego, hacemos la resta. 218 00:12:10,080 --> 00:12:14,680 Bueno, pues, entonces, eso podríamos hacerlo así, ¿no? 219 00:12:14,680 --> 00:12:19,400 Hacemos una suma, pues, lo de siempre, 220 00:12:19,400 --> 00:12:20,360 una suma acumulativa. 221 00:12:20,360 --> 00:12:22,200 Es la misma historia de siempre. 222 00:12:22,200 --> 00:12:24,360 Y, ahora, nos dedicamos a sumar. 223 00:12:24,400 --> 00:12:31,640 Voy a cambiar al forEach para no escribir tanto, 224 00:12:31,640 --> 00:12:33,120 que ya estoy aburrida. 225 00:12:35,960 --> 00:12:42,480 Y, ahora, suma más igual a punto getTamaño. 226 00:12:42,480 --> 00:12:45,560 Ala, con esto haríamos la suma de lo que ocupan todas las que 227 00:12:45,560 --> 00:12:48,480 tiene instaladas, las instaladas. 228 00:12:48,480 --> 00:12:52,040 ¿Y cuánta capacidad, entonces, le queda? 229 00:12:52,040 --> 00:13:03,400 Pues, le quedará capacidad menos lo que ocupan las que 230 00:13:03,400 --> 00:13:05,760 tiene. 231 00:13:05,760 --> 00:13:06,840 Esto es lo que le quedará. 232 00:13:10,680 --> 00:13:11,720 ¿Vale? 233 00:13:11,720 --> 00:13:13,720 Bueno, esta es la forma más sencilla, a lo mejor, 234 00:13:13,720 --> 00:13:15,560 de hacerlo, más estructurada. 235 00:13:15,560 --> 00:13:19,400 Primero hago la suma y le queda esto menos la suma y ya está. 236 00:13:19,400 --> 00:13:21,240 A ver, también lo podríais haber planteado. 237 00:13:21,240 --> 00:13:27,160 Me hago un bucle for en el que le voy restando a capacidad lo 238 00:13:27,160 --> 00:13:28,920 que ocupa cada aplicación. 239 00:13:28,920 --> 00:13:31,960 Sería otra forma de hacerlo también. 240 00:13:31,960 --> 00:13:33,800 Es decir, podemos hacer esto. 241 00:13:33,800 --> 00:13:37,520 A lo mejor, también, lo digo porque a lo mejor a alguien se 242 00:13:37,520 --> 00:13:38,680 le ha ocurrido hacerlo así. 243 00:13:41,920 --> 00:13:49,440 Voy a llamarlo, pues, yo que sé, cantidad y la inicializo con la 244 00:13:49,440 --> 00:13:53,080 capacidad, la inicializo con la capacidad. 245 00:13:53,080 --> 00:13:56,760 Y ahora recorro de nuevo las instaladas, 246 00:13:56,760 --> 00:14:00,960 las recorro otra vez, instaladas. 247 00:14:00,960 --> 00:14:09,040 Y ahora hago cantidad menos igual a punto de tamaño. 248 00:14:09,040 --> 00:14:12,760 A lo mejor, alguno lo ha visto de esta manera, ¿no? 249 00:14:12,760 --> 00:14:16,760 Yo a una variable la inicializo con la capacidad máxima y le voy 250 00:14:17,720 --> 00:14:21,160 restando lo que ocupa cada aplicación, le voy restando. 251 00:14:21,160 --> 00:14:23,800 Cuando he terminado de restar, cantidad tendrá lo que queda, 252 00:14:23,800 --> 00:14:24,280 ¿verdad? 253 00:14:24,280 --> 00:14:26,360 Cantidad tendrá lo que queda. 254 00:14:26,360 --> 00:14:29,120 Entonces, a lo mejor, pues, alguno lo ha visto así en lugar 255 00:14:29,120 --> 00:14:31,760 de esa forma que es como más estructurada, 256 00:14:31,760 --> 00:14:35,520 más adaptada a nuestros patrones de funcionamiento. 257 00:14:35,520 --> 00:14:39,200 Que es, hago la suma primero y luego hago la resta de lo que 258 00:14:39,200 --> 00:14:41,280 tengo menos lo quitado. 259 00:14:41,280 --> 00:14:43,720 Esperamos, debería ser lo mismo. 260 00:14:43,720 --> 00:14:48,560 Debería mostrar lo mismo en las 2 veces. 261 00:14:48,560 --> 00:14:53,040 Le queda cantidad. 262 00:14:53,040 --> 00:14:54,320 Aquí ya los parámetros. 263 00:15:01,320 --> 00:15:05,880 Debería mostrar lo mismo, si lo hemos hecho bien. 264 00:15:05,880 --> 00:15:08,120 Vale, vamos a probar estos 2 métodos primero. 265 00:15:08,120 --> 00:15:12,240 Antes de hacer el otro de get up, que es más extraño, 266 00:15:12,240 --> 00:15:20,200 vamos a, dime, sí, sí, sí. 267 00:15:23,680 --> 00:15:26,200 Bueno, ¿te refieres aquí? 268 00:15:26,200 --> 00:15:29,360 Bueno, es que aquí yo parto, tengo 50. 269 00:15:29,360 --> 00:15:32,480 Y a 50 le voy quitando todo lo que tengo instalado. 270 00:15:32,480 --> 00:15:36,880 Lo que me quede al final será lo que tengo libre, ¿no? 271 00:15:36,880 --> 00:15:38,120 Pues, eso. 272 00:15:38,120 --> 00:15:40,320 Lo que me queda al final, que es cantidad, 273 00:15:40,320 --> 00:15:41,240 es lo que tengo libre. 274 00:15:41,240 --> 00:15:44,920 O sea, me refiero que esto y lo de arriba te conducen al mismo 275 00:15:44,920 --> 00:15:45,760 resultado. 276 00:15:45,760 --> 00:15:48,240 Son 2 formas de hacer lo mismo, ¿no? 277 00:15:48,240 --> 00:15:49,680 ¿O lo he pensado mal? 278 00:15:49,680 --> 00:15:51,680 Yo creo que son 2 formas de hacer lo mismo, ¿no? 279 00:15:56,120 --> 00:15:57,720 Lo que queda. 280 00:15:57,720 --> 00:16:00,640 No, devuelve lo que queda. 281 00:16:00,640 --> 00:16:02,680 O sea, igual que arriba, devuelve lo que queda. 282 00:16:02,680 --> 00:16:05,360 O sea, yo tengo, imagínate que mi capacidad son 100. 283 00:16:05,360 --> 00:16:08,320 Y tengo instalado una aplicación de 30 y otra de 20. 284 00:16:08,320 --> 00:16:10,800 Pues, lo que estoy haciendo aquí es hacer 100 menos 30. 285 00:16:10,800 --> 00:16:13,640 Esto de arriba, por ejemplo, está sumando el tamaño de lo 286 00:16:13,640 --> 00:16:14,480 que tengo. 287 00:16:14,480 --> 00:16:16,800 Sí, y aquí le estoy restando el tamaño de lo que tengo 288 00:16:16,800 --> 00:16:20,240 instalado, pero a la capacidad máxima. 289 00:16:20,240 --> 00:16:22,160 Imagínate que mi capacidad es 100. 290 00:16:22,160 --> 00:16:23,920 Y tengo una que tiene 30 y otra 20. 291 00:16:23,920 --> 00:16:26,320 Pues, lo que estoy haciendo es 100 menos 30. 292 00:16:26,320 --> 00:16:28,920 A lo que me queda, ahora le resto 20. 293 00:16:28,920 --> 00:16:31,480 Y ya, lo que me quede será lo libre. 294 00:16:31,480 --> 00:16:34,680 Lo que me quede será lo libre. 295 00:16:34,680 --> 00:16:37,120 Son 2 formas de hacer lo mismo. 296 00:16:37,120 --> 00:16:40,160 La de arriba quizás es más clara, es más intuitiva. 297 00:16:40,160 --> 00:16:43,120 Yo sumo lo que tengo y luego se lo resto a la máxima. 298 00:16:43,120 --> 00:16:45,320 La de arriba es más intuitiva. 299 00:16:45,320 --> 00:16:47,680 Y esta es otra, por si a alguien se le ocurriera hacerlo de esa 300 00:16:47,680 --> 00:16:48,680 manera, ¿vale? 301 00:16:48,680 --> 00:16:51,200 Para ir pensando de formas distintas. 302 00:16:54,360 --> 00:16:57,640 Vamos a hacer ya una clase main en otro paquete aparte para 303 00:16:57,640 --> 00:16:59,120 hacer unas pruebas con esto. 304 00:17:02,000 --> 00:17:04,160 Entonces, nos hacemos otro paquete. 305 00:17:04,160 --> 00:17:06,920 Pues, este paquete ya le llamamos main. 306 00:17:06,920 --> 00:17:13,960 Y este paquete ya es la que va a tener la prueba móvil. 307 00:17:13,960 --> 00:17:15,560 Esta de aquí. 308 00:17:15,560 --> 00:17:16,960 La prueba móvil. 309 00:17:16,960 --> 00:17:21,000 Pues, venga, vamos a ir haciendo ya prueba móvil para ir 310 00:17:21,000 --> 00:17:21,960 probando estas cosas. 311 00:17:28,320 --> 00:17:30,400 Prueba móvil con un main. 312 00:17:30,400 --> 00:17:33,080 Vale. 313 00:17:33,080 --> 00:17:37,320 Entonces, primero, vamos a crear un almacén de 314 00:17:37,320 --> 00:17:38,360 aplicaciones. 315 00:17:38,360 --> 00:17:41,040 Un app store con varias apps dentro. 316 00:17:41,040 --> 00:17:45,720 Vale, pues, lo vamos a hacer con este. 317 00:17:45,720 --> 00:17:51,520 Aquí teníamos ya un main que hicimos de prueba, ¿verdad? 318 00:17:51,520 --> 00:17:54,840 Este main ya que hicimos de prueba que estaba aquí abajo. 319 00:17:54,840 --> 00:17:57,360 Este main que hicimos de prueba. 320 00:17:57,360 --> 00:18:01,080 Lo voy a dejar aquí comentado porque ya este main no lo 321 00:18:01,080 --> 00:18:04,400 quiero, pero no lo borro. 322 00:18:04,400 --> 00:18:09,480 Vale, pues, venga, vamos a, en nuestra clase prueba móvil con 323 00:18:09,480 --> 00:18:13,160 mi main, primero me voy a hacer un almacén de aplicaciones. 324 00:18:13,160 --> 00:18:17,480 Hago el import o pongo model.appstore o hago el import. 325 00:18:17,480 --> 00:18:21,920 Recordad, no olvidéis nunca nada de lo que vamos haciendo. 326 00:18:21,920 --> 00:18:24,680 Vale, podría hacer esto y me quedo tan ancha y no hago ni 327 00:18:24,680 --> 00:18:26,280 import ni hago nada. 328 00:18:26,280 --> 00:18:27,240 Vale. 329 00:18:27,240 --> 00:18:30,960 Pero, bueno, si a alguien no le gusta, le parece feo, 330 00:18:31,000 --> 00:18:34,760 pues, puede quitar esta parte del nombre de la clase, 331 00:18:34,760 --> 00:18:39,920 puede quitar esta parte y poner el import. 332 00:18:39,920 --> 00:18:44,080 Vale, pues, primero nos hacemos el almacén de aplicaciones. 333 00:18:44,080 --> 00:18:47,840 Vale, que luego vamos a hacernos un teléfono, ¿no? 334 00:18:47,840 --> 00:18:52,640 Vamos a crear un móvil con 30 gigas, ¿vale? 335 00:18:52,640 --> 00:18:56,520 Y que tenga este app store, por ahora sin aplicaciones 336 00:18:56,520 --> 00:18:59,200 instaladas. 337 00:18:59,240 --> 00:19:04,200 Venga, pues, entonces, vamos a crearnos un teléfono móvil. 338 00:19:12,840 --> 00:19:16,000 De nuevo hago el import para no importar el model. 339 00:19:16,000 --> 00:19:20,920 Le vamos a poner, ala, venga, 30 gigas. 340 00:19:20,920 --> 00:19:25,160 Aunque igual las quemo 30 gigas, venga. 341 00:19:25,160 --> 00:19:27,240 Pues, le vamos a poner primero 30 gigas. 342 00:19:27,240 --> 00:19:29,040 Ala, capacidad 30. 343 00:19:29,040 --> 00:19:32,240 El móvil ya tiene 30 gigas. 344 00:19:32,240 --> 00:19:35,400 Y ahora vamos a fijar que su almacén de aplicaciones sea el 345 00:19:35,400 --> 00:19:36,800 de aquí arriba. 346 00:19:36,800 --> 00:19:40,800 Solamente va a tener estas 5 aplicaciones instalables, 347 00:19:40,800 --> 00:19:43,480 solo estas 5 por ahora. 348 00:19:43,480 --> 00:19:50,120 Pues, le vamos a fijar a este móvil, 349 00:19:50,120 --> 00:19:53,000 este almacén de aplicaciones. 350 00:19:53,000 --> 00:19:55,960 Ahora mismo no tiene ninguna todavía instalada, 351 00:19:55,960 --> 00:19:57,040 no tiene ninguna. 352 00:19:57,040 --> 00:20:00,040 Porque, de hecho, el método de instalar, que es el get app, 353 00:20:00,040 --> 00:20:02,280 este todavía no lo hemos hecho. 354 00:20:02,280 --> 00:20:03,520 La clase móvil, ¿verdad? 355 00:20:03,520 --> 00:20:05,760 Tiene un método get app que no hemos hecho todavía, 356 00:20:05,760 --> 00:20:09,040 que es precisamente para instalar en el teléfono una 357 00:20:09,040 --> 00:20:11,920 aplicación del almacén y no la hemos hecho. 358 00:20:11,920 --> 00:20:14,760 Luego, este móvil ahora mismo tiene un almacén, 359 00:20:14,760 --> 00:20:19,360 una capacidad, pero sus aplicaciones instaladas ahora 360 00:20:19,360 --> 00:20:21,400 mismo es nul, ahora mismo es nul. 361 00:20:21,400 --> 00:20:23,680 No tiene ninguna, ahora mismo es nul. 362 00:20:23,680 --> 00:20:26,080 Vale, pero, bueno, algo con el teléfono sí podemos hacer. 363 00:20:26,120 --> 00:20:28,640 No podemos instalar, pero tenemos el método hecho. 364 00:20:28,640 --> 00:20:30,440 Pero sí podemos navegar por el app store. 365 00:20:30,440 --> 00:20:34,480 A ver, vamos a navegar por él, a ver qué tiene. 366 00:20:34,480 --> 00:20:38,120 Vamos a navegar, ¿vale? 367 00:20:38,120 --> 00:20:43,200 Y vamos también a mostrar su estatus, ¿vale? 368 00:20:46,200 --> 00:20:49,200 Entonces, espera, primero voy a navegar y luego ya muestro el 369 00:20:49,200 --> 00:20:51,160 otro porque antes os quiero hacer una pregunta, 370 00:20:51,160 --> 00:20:52,880 que supongo que ya sabéis cuál es. 371 00:20:52,880 --> 00:20:55,520 Vamos a navegar a ver qué aplicaciones me dice que tiene. 372 00:20:55,520 --> 00:20:59,160 Venga, venga, vamos a navegar por este móvil. 373 00:20:59,160 --> 00:21:01,440 Le doy al botón de navegar. 374 00:21:01,440 --> 00:21:03,960 Espera, algún error de compilación no he arreglado 375 00:21:03,960 --> 00:21:07,800 porque me, ah, cuando he compilado el main, 376 00:21:07,800 --> 00:21:10,520 cuando he comentado el main, lo he comentado mal. 377 00:21:10,520 --> 00:21:12,400 Ahora, vale. 378 00:21:12,400 --> 00:21:16,840 Venga, vamos a navegar por este teléfono que acabamos de hacer. 379 00:21:16,840 --> 00:21:20,160 Vamos a ver este teléfono que me permite instalar. 380 00:21:20,160 --> 00:21:21,440 Esto es lo que tiene, ¿vale? 381 00:21:21,440 --> 00:21:23,400 Le hemos dado, venga, navega por el app store. 382 00:21:23,400 --> 00:21:25,200 Pues, esto tienes. 383 00:21:25,200 --> 00:21:28,040 Ahora podríamos elegir una aplicación a instalar. 384 00:21:28,040 --> 00:21:30,840 Pero, claro, habría que llamar al método get app es el que 385 00:21:30,840 --> 00:21:31,880 instala, que no lo tenemos hecho. 386 00:21:31,880 --> 00:21:33,960 Luego no vamos a elegir a ninguna aplicación para 387 00:21:33,960 --> 00:21:35,200 instalar todavía. 388 00:21:35,200 --> 00:21:39,920 Pero, venga, vamos a incorporar que mire el estatus, ¿vale? 389 00:21:39,920 --> 00:21:43,200 Vale, entonces, antes de ejecutarlo, 390 00:21:43,200 --> 00:21:47,800 que ya lo habréis ejecutado seguro, pero, pregunto yo, 391 00:21:47,800 --> 00:21:52,320 antes de ejecutarlo, ¿qué va a salir? 392 00:21:55,880 --> 00:21:57,400 Líneas rojas, ¿verdad? 393 00:21:57,400 --> 00:22:00,520 Que sí van a salir líneas rojas antes de ejecutarlo. 394 00:22:00,520 --> 00:22:03,160 No valía que ejecutarais, valía que ya previerais que iban a 395 00:22:03,160 --> 00:22:08,360 salir líneas rojas y me dijerais por qué. 396 00:22:08,360 --> 00:22:09,760 ¿Por qué van a salir líneas rojas? 397 00:22:13,920 --> 00:22:16,480 Claro, porque este método, su array de instaladas no es que 398 00:22:16,480 --> 00:22:18,000 esté vacío, peor que eso. 399 00:22:18,000 --> 00:22:19,400 Es null. 400 00:22:19,400 --> 00:22:21,600 Y yo, cuando hice mi método status, claro, 401 00:22:21,600 --> 00:22:24,240 uno hace las cosas y hasta que no hace las pruebas, 402 00:22:24,240 --> 00:22:26,120 hasta que no hace las pruebas, hay detalles de los que no se 403 00:22:26,120 --> 00:22:27,080 das cuenta. 404 00:22:27,080 --> 00:22:29,520 Para eso la fase de pruebas es tan importante y, por eso, 405 00:22:29,520 --> 00:22:32,160 los equipos de desarrollo, pues, la parte de testing es tan 406 00:22:32,160 --> 00:22:35,640 grande y ocupa tanta gente y tiene tanta gente trabajando. 407 00:22:35,640 --> 00:22:38,640 Porque se escapan muchísimas cosas. 408 00:22:38,640 --> 00:22:40,440 Se escapa una cosa tan pequeñita, 409 00:22:40,440 --> 00:22:42,440 ¿cómo no se va a escapar una aplicación grande? 410 00:22:42,440 --> 00:22:43,680 Pues, ¿qué se nos ha escapado? 411 00:22:43,680 --> 00:22:46,400 Que cuando yo he dicho así alegremente, 412 00:22:46,400 --> 00:22:49,520 y lo he dicho así alegremente a propósito, 413 00:22:49,520 --> 00:22:51,160 cuando yo he dicho alegremente, hombre, 414 00:22:51,160 --> 00:22:54,440 la parte de las que tenga instaladas es facilísimo. 415 00:22:54,440 --> 00:22:56,280 Le digo punto lente y ya está. 416 00:22:56,280 --> 00:22:58,520 Lo he dicho ahí con toda la alegría del mundo. 417 00:22:58,520 --> 00:23:00,600 Pero, claro, me he pasado de alegría. 418 00:23:00,600 --> 00:23:04,840 ¿Qué pasa si el teléfono no tiene ninguna y el array es null? 419 00:23:04,840 --> 00:23:07,480 Pues, que esto es un pedazo null pointer exception. 420 00:23:07,480 --> 00:23:09,240 Porque instaladas es null. 421 00:23:09,240 --> 00:23:12,120 Pero si es un objeto null, tú haces punto algo, 422 00:23:12,120 --> 00:23:14,080 null pointer exception. 423 00:23:14,080 --> 00:23:15,560 ¿Vale? 424 00:23:15,560 --> 00:23:16,920 Entonces, eso. 425 00:23:16,920 --> 00:23:20,520 O prevés que va a salir por el incumplimiento ya que te ha dado 426 00:23:20,520 --> 00:23:23,360 la vida, o lo ves en la fase de pruebas y dices, anda, claro, 427 00:23:23,360 --> 00:23:25,160 si es que cómo se me ocurre a mí. 428 00:23:25,160 --> 00:23:27,120 ¿Vale? 429 00:23:27,120 --> 00:23:33,160 Pues, entonces, aquí, obviamente, 430 00:23:33,160 --> 00:23:39,880 esto podríamos arreglarlo de esta manera. 431 00:23:39,880 --> 00:23:49,600 Si instaladas es diferente de null y solo si es diferente de 432 00:23:49,600 --> 00:23:53,080 null, entonces, ya sí, muéstrame este mensaje. 433 00:23:53,080 --> 00:23:55,360 Pero si no es diferente de null, dime, 434 00:23:55,360 --> 00:23:57,200 no tiene aplicaciones instaladas. 435 00:24:05,360 --> 00:24:07,120 ¿No? 436 00:24:07,120 --> 00:24:09,840 Y además es que ahora ya va a pasar en la parte de arriba, 437 00:24:09,880 --> 00:24:12,080 que hemos hecho al principio. 438 00:24:12,080 --> 00:24:16,200 Claro, si todo esto de aquí, recorrer el array, 439 00:24:16,200 --> 00:24:19,560 todo esto de recorrer el array, solo se puede hacer si 440 00:24:19,560 --> 00:24:21,400 instaladas es diferente de null. 441 00:24:21,400 --> 00:24:22,840 Porque si no es diferente de null, 442 00:24:22,840 --> 00:24:25,600 el for each va a sacar un null pointer exception. 443 00:24:25,600 --> 00:24:29,200 Porque el for each, lo primero que hace es, me cojo instaladas. 444 00:24:29,200 --> 00:24:31,560 Venga, voy a contar cuántos tiene haciendo un len. 445 00:24:31,560 --> 00:24:33,760 En cuanto haga el len, el for each internamente, 446 00:24:33,760 --> 00:24:35,920 que lo hace él, va. 447 00:24:35,960 --> 00:24:39,080 Luego, todo eso, todo este código, 448 00:24:39,080 --> 00:24:43,520 solo tiene sentido que lo hagamos en el caso de que tenga 449 00:24:43,520 --> 00:24:45,320 aplicaciones instaladas. 450 00:24:45,320 --> 00:24:49,000 Luego, cuidadín, aquí vamos a mejor cambiarlo para que quede 451 00:24:49,000 --> 00:24:50,480 más bonito el código. 452 00:24:50,480 --> 00:24:55,080 Si es null, le decimos, no tiene irretun, para que se acabe. 453 00:24:55,080 --> 00:24:57,960 Y nos va a quedar todo mucho más guay, ¿verdad? 454 00:24:58,580 --> 00:25:02,080 ¿Vale? 455 00:25:02,080 --> 00:25:06,480 Si es null, le digo, no tiene. 456 00:25:06,480 --> 00:25:11,000 Y entonces ya, mira, retun, fuera, ya está. 457 00:25:11,000 --> 00:25:13,120 La capacidad libre, pues, es la del móvil. 458 00:25:13,120 --> 00:25:13,840 No tiene ninguna. 459 00:25:13,840 --> 00:25:16,480 El señor sabe que, entonces, tiene todo el espacio libre. 460 00:25:16,480 --> 00:25:18,720 Hombre, puede decir, tiene usted todo su espacio libre. 461 00:25:18,720 --> 00:25:21,400 Tiene toda su capacidad que es tanta. 462 00:25:21,400 --> 00:25:22,840 Lo que sea. 463 00:25:22,840 --> 00:25:25,560 Y ahora, aquí ya el else no nos hace falta. 464 00:25:25,560 --> 00:25:27,320 Porque si hemos llegado a este punto, 465 00:25:27,320 --> 00:25:29,160 es porque instaladas es diferente de null. 466 00:25:29,160 --> 00:25:30,760 Si hemos llegado a este punto, es porque instaladas es 467 00:25:30,760 --> 00:25:32,080 diferente de null. 468 00:25:32,080 --> 00:25:35,840 Entonces, ahora ya es cuando tiene sentido mostrar el espacio 469 00:25:35,840 --> 00:25:38,360 libre y hacer todo esto. 470 00:25:38,360 --> 00:25:39,000 Aquí abajo. 471 00:25:42,640 --> 00:25:43,840 ¿Vale? 472 00:25:43,840 --> 00:25:46,600 Y de paso, vamos a decir ya de paso las que tiene instaladas. 473 00:25:46,600 --> 00:25:47,100 ¿Vale? 474 00:25:52,960 --> 00:26:02,600 Tiene instaladas.leds, aplicaciones. 475 00:26:09,120 --> 00:26:11,000 Aplicaciones, ala. 476 00:26:12,000 --> 00:26:14,000 ¿Vale? 477 00:26:14,000 --> 00:26:18,320 Vale, este status ya parece que está un poquito a prueba ya de 478 00:26:18,320 --> 00:26:20,360 null pointer exception. 479 00:26:20,360 --> 00:26:22,640 Ya está a prueba de null pointer exception. 480 00:26:22,640 --> 00:26:26,880 Porque si es null, me dice, no tiene aplicaciones y fuera. 481 00:26:26,880 --> 00:26:29,760 Y si ha llegado a este punto, es porque no ha terminado. 482 00:26:29,760 --> 00:26:31,720 Luego tiene aplicaciones. 483 00:26:31,720 --> 00:26:35,520 Me dice las que tiene y ahora ya me muestra el espacio libre en 484 00:26:35,520 --> 00:26:36,880 el móvil. 485 00:26:36,880 --> 00:26:50,520 Y esto lo voy a, a ver, esto nunca me acuerdo cómo, ah, sí. 486 00:26:50,520 --> 00:26:54,680 Vale, para devolverle el formato. 487 00:26:54,680 --> 00:26:56,840 Ala, ya está. 488 00:26:56,840 --> 00:26:57,320 ¿Vale? 489 00:26:57,320 --> 00:27:00,960 Venga, pues vamos ahora sí a hacer el status que me va a 490 00:27:00,960 --> 00:27:02,840 salir, no tiene aplicaciones instaladas. 491 00:27:02,840 --> 00:27:04,280 Si es que está bien, claro. 492 00:27:07,880 --> 00:27:10,680 Efectivamente, no tiene aplicaciones instaladas porque no 493 00:27:10,680 --> 00:27:14,120 tengo la opción de instalarlas todavía, no he hecho el método. 494 00:27:14,120 --> 00:27:16,400 Ese es el método que nos falta por hacer. 495 00:27:16,400 --> 00:27:19,000 Bueno, nos falta también el de borrar una aplicación, 496 00:27:19,000 --> 00:27:23,080 que es este, que es el largo y el más largo y el más raro. 497 00:27:23,080 --> 00:27:23,640 ¿Vale? 498 00:27:23,640 --> 00:27:29,680 Este de aquí, que es, te doy el nombre de una aplicación y la 499 00:27:29,680 --> 00:27:31,080 tienes que instalar. 500 00:27:31,080 --> 00:27:33,240 Venga, vamos a escribirlo. 501 00:27:33,240 --> 00:27:42,960 A ver, este método, public void, get app, 502 00:27:42,960 --> 00:27:45,040 te doy el nombre de una app. 503 00:27:45,040 --> 00:27:45,960 Esto es lo que te doy. 504 00:27:49,360 --> 00:27:50,800 Te doy el nombre de una app. 505 00:27:50,800 --> 00:27:52,760 Entonces, vamos a entender qué tiene que hacer este método. 506 00:27:52,760 --> 00:27:53,920 Yo te doy el nombre. 507 00:27:53,920 --> 00:28:00,280 Entonces, habrá que buscar la aplicación con ese nombre en el 508 00:28:00,280 --> 00:28:02,600 almacén de aplicaciones, en el store del móvil, 509 00:28:02,920 --> 00:28:04,960 en el store. 510 00:28:04,960 --> 00:28:10,240 Y esa aplicación, una copia de ella, 511 00:28:10,240 --> 00:28:16,160 llevarla a este array, llevarla a este array. 512 00:28:16,160 --> 00:28:20,360 Si es que no está, porque podría estar. 513 00:28:20,360 --> 00:28:22,600 Si es que no hay ninguna que se llame así. 514 00:28:22,600 --> 00:28:25,000 En el caso de que esté, en el caso de que esté, 515 00:28:25,000 --> 00:28:27,360 entonces, lo que dice es, oye, pues, 516 00:28:27,360 --> 00:28:33,440 entonces, guarda en la de instaladas una actualizada. 517 00:28:33,440 --> 00:28:35,320 Entonces, para hacer este método es, 518 00:28:35,320 --> 00:28:37,560 para lo que tendríamos que usar, 519 00:28:37,560 --> 00:28:41,000 install, que es ya de paso el que nos da una copia, 520 00:28:41,000 --> 00:28:44,560 que vamos a necesitar, y comprobar actualización, 521 00:28:44,560 --> 00:28:46,960 que nos da una copia de la actualizada. 522 00:28:46,960 --> 00:28:53,720 Entonces, este método hay que hacerlo usando, 523 00:28:53,720 --> 00:28:57,800 porque si no, usando, que para eso lo tenemos, 524 00:28:57,800 --> 00:29:05,800 install de AppStore y CheckUpdate son los que hay que 525 00:29:05,800 --> 00:29:07,720 usar, porque si no, ¿para qué las hemos hecho? 526 00:29:11,120 --> 00:29:13,840 Hay que usar estos métodos de la clase AppStore para hacer 527 00:29:13,840 --> 00:29:15,280 esto. 528 00:29:15,280 --> 00:29:17,120 Entonces, la idea es que entendáis lo que tiene que 529 00:29:17,120 --> 00:29:19,280 hacer y luego ya ver cómo lo construís, 530 00:29:19,280 --> 00:29:21,600 cómo lo hacéis usando esos métodos. 531 00:29:21,600 --> 00:29:24,120 Lo que tiene que hacer es, se le da el nombre de una 532 00:29:24,120 --> 00:29:27,200 aplicación, un nombre, WhatsApp, por ejemplo. 533 00:29:27,200 --> 00:29:32,080 Pues, se va al almacén para ver si hay alguna aplicación, 534 00:29:32,080 --> 00:29:38,160 para coger la aplicación que tenga ese nombre y conseguir 535 00:29:38,160 --> 00:29:43,280 que una copia de esa aplicación se vaya a este array, 536 00:29:43,280 --> 00:29:46,560 expandiéndolo, como siempre, una copia se vaya a este array. 537 00:29:46,560 --> 00:29:48,760 Recordad que para hacer una copia de una aplicación que hay 538 00:29:48,760 --> 00:29:50,640 en el AppStore, teníamos el método install, 539 00:29:50,640 --> 00:29:52,840 que install desacaba una copia de la que hay en el AppStore 540 00:29:52,840 --> 00:29:53,720 con un nombre. 541 00:29:53,720 --> 00:29:55,560 Pues, ya tenemos el método install para eso. 542 00:29:55,560 --> 00:30:00,440 Hay que usar el método install para sacar esa copia y 543 00:30:00,440 --> 00:30:02,520 llevarla aquí. 544 00:30:02,520 --> 00:30:04,560 ¿Qué puede ocurrir? 545 00:30:04,560 --> 00:30:10,520 Que la aplicación ya exista con ese nombre en ese array. 546 00:30:10,520 --> 00:30:15,920 Si ya existe, entonces hay que verificar que la versión de la 547 00:30:15,920 --> 00:30:22,840 que existe es inferior de la del AppStore. 548 00:30:22,840 --> 00:30:26,280 Porque si es inferior, guardo una copia de la actualizada. 549 00:30:26,280 --> 00:30:28,120 Y para eso estaba el método checkUpdate, 550 00:30:28,120 --> 00:30:31,080 que te devolvía una copia de la actualizada. 551 00:30:31,080 --> 00:30:33,600 Bueno, pues, esa es la idea, que uséis esos 2 métodos para hacer 552 00:30:33,600 --> 00:30:36,160 eso, ¿vale? 553 00:30:36,160 --> 00:30:39,840 Pues, venga, tenéis trabajo de aquí a mañana, entonces. 554 00:30:39,840 --> 00:30:43,840 Completar ese método y el otro que queda. 555 00:30:43,840 --> 00:30:46,440 Este, el de remove. 556 00:30:46,440 --> 00:30:47,480 Y ya está. 557 00:30:47,480 --> 00:30:49,640 Y luego ya, ya se pueden hacer las pruebas con un teléfono en 558 00:30:49,640 --> 00:30:50,960 concreto y instalar aplicaciones, 559 00:30:50,960 --> 00:30:53,720 ver las que tiene, ver capacidad, etcétera, etcétera. 560 00:30:53,720 --> 00:30:54,200 ¿Vale? 561 00:30:54,200 --> 00:30:55,760 Un segundo.