1 00:00:01,010 --> 00:00:07,129 voy a grabar la clase de corrección del simulacro todo lo que vais a decir será 2 00:00:07,129 --> 00:00:14,150 grabado y por lo tanto me dais consentimiento para que sea grabado vale entonces el enunciado 3 00:00:14,150 --> 00:00:21,910 es sustancialmente hacer un sistema que simula unos móviles empezamos con la aplicación vale 4 00:00:21,910 --> 00:00:28,190 esta parte de aquí entonces una aplicación a ver si puedo ver las dos cosas a la vez 5 00:00:33,409 --> 00:00:36,729 tiene que tener 6 00:00:36,729 --> 00:00:38,189 vamos a ver, un nombre 7 00:00:38,189 --> 00:00:40,969 esto es una aplicación, por lo tanto tendrá un nombre 8 00:00:40,969 --> 00:00:42,869 lo pongo aquí, string 9 00:00:42,869 --> 00:00:45,649 nombre 10 00:00:45,649 --> 00:00:48,590 tendrá 11 00:00:48,590 --> 00:00:50,390 una versión, por ejemplo 12 00:00:50,390 --> 00:00:51,170 un entero 13 00:00:51,170 --> 00:00:56,939 sí, pero asumiendo 14 00:00:56,939 --> 00:00:59,140 que luego después le tendré que sumar 15 00:00:59,140 --> 00:01:01,140 uno o cosas así, a lo mejor le tengo que hacer 16 00:01:01,140 --> 00:01:03,039 operaciones, por lo tanto 17 00:01:03,039 --> 00:01:04,840 a lo mejor me viene bien que sea uno 18 00:01:04,840 --> 00:01:07,019 Si tengo que pillar una versión 19 00:01:07,019 --> 00:01:08,140 Y dar la siguiente 20 00:01:08,140 --> 00:01:10,480 Y es una string, la tengo que pillar 21 00:01:10,480 --> 00:01:13,239 Y transformarla en un entero 22 00:01:13,239 --> 00:01:15,260 Sumarle uno y volver a ponerla como string 23 00:01:15,260 --> 00:01:17,000 Entonces a lo mejor me compensa 24 00:01:17,000 --> 00:01:17,879 Que sea un número, ¿vale? 25 00:01:18,120 --> 00:01:19,519 Pero, lo que sea 26 00:01:19,519 --> 00:01:22,200 No es que no se pueda hacer 27 00:01:22,200 --> 00:01:22,959 Con 28 00:01:22,959 --> 00:01:26,299 Si, si sea un string 29 00:01:26,299 --> 00:01:27,439 Y un tamaño 30 00:01:27,439 --> 00:01:30,480 Tamaño, int, size 31 00:01:30,480 --> 00:01:33,019 ¿Vale? 32 00:01:34,840 --> 00:01:38,719 hago en inglés 33 00:01:38,719 --> 00:01:41,400 así me quito problemas de acentos 34 00:01:41,400 --> 00:01:42,120 y cosas por el estilo 35 00:01:42,120 --> 00:01:43,980 vale, además 36 00:01:43,980 --> 00:01:47,000 tiene un método ejecutar 37 00:01:47,000 --> 00:01:48,920 vale, antes voy a hacer 38 00:01:48,920 --> 00:01:50,120 un constructor, vale 39 00:01:50,120 --> 00:01:51,560 public 40 00:01:51,560 --> 00:01:54,280 app de 41 00:01:54,280 --> 00:01:55,459 string 42 00:01:55,459 --> 00:01:57,859 name 43 00:01:57,859 --> 00:02:00,620 int version 44 00:02:00,620 --> 00:02:02,780 int 45 00:02:02,780 --> 00:02:03,859 size 46 00:02:03,859 --> 00:02:10,560 this.name 47 00:02:10,560 --> 00:02:11,960 es igual a name 48 00:02:11,960 --> 00:02:14,620 this.version 49 00:02:14,620 --> 00:02:16,979 es igual a version 50 00:02:16,979 --> 00:02:19,939 this.size 51 00:02:19,939 --> 00:02:21,379 es igual a size 52 00:02:21,379 --> 00:02:24,639 vale 53 00:02:24,639 --> 00:02:26,780 otra cosa es que 54 00:02:26,780 --> 00:02:28,340 no quiero que desde fuera 55 00:02:28,340 --> 00:02:30,939 mi aplicación sea modificable 56 00:02:30,939 --> 00:02:32,080 al menos no 57 00:02:32,080 --> 00:02:35,240 no el nombre 58 00:02:35,240 --> 00:02:38,740 versión de tamaño 59 00:02:38,740 --> 00:02:39,960 podría ser 60 00:02:39,960 --> 00:02:45,259 Asumiendo que nosotros modificaremos en el futuro solo la versión 61 00:02:45,259 --> 00:02:50,439 Pues casi esto lo podría dejar private también 62 00:02:50,439 --> 00:02:53,979 Pero lo dejo así por posibles cambios 63 00:02:53,979 --> 00:02:58,259 Podría ponerlos privados y luego ponerle aquí un setting get 64 00:02:58,259 --> 00:03:01,259 Pero por ahora lo dejo lo más sencillo posible 65 00:03:01,259 --> 00:03:04,280 Seguramente no quiero que la gente me cambie el nombre 66 00:03:04,280 --> 00:03:06,159 Si cambia el nombre cambia la aplicación 67 00:03:06,159 --> 00:03:07,460 Que es una aplicación nueva 68 00:03:07,460 --> 00:03:36,000 Y ahora hay un método para ejecutarlo, entonces hay el public void execute, aquí sería ejecutar, no se ve nada, y lo único que tiene que hacer, cuidado aquí no devuelve una string sino escribe por pantalla, por lo tanto si eso, 69 00:03:36,000 --> 00:03:42,919 Y aquí escribo la aplicación 70 00:03:42,919 --> 00:03:47,979 Más this.name 71 00:03:47,979 --> 00:03:55,659 Más se está ejecutando 72 00:03:55,659 --> 00:04:04,560 Esto son lo que hacía falta de la clase app 73 00:04:04,560 --> 00:04:07,500 La clase app es sencilla, es básica 74 00:04:07,500 --> 00:04:11,560 Con esto me permitirá crear aplicaciones en el futuro 75 00:04:11,560 --> 00:04:15,960 Voy, si quiero probarla, la puedo probar 76 00:04:15,960 --> 00:04:25,439 Me puedo hacer aquí un public static void main string args 77 00:04:25,439 --> 00:04:30,139 Y aquí lo que hago es me creo una aplicación 78 00:04:30,139 --> 00:04:43,220 AppX es igual a newApp de aplicación, versión 1, 10 de tamaño 79 00:04:43,220 --> 00:04:48,560 Y luego lo que hago es x.ejecutarch 80 00:04:48,560 --> 00:04:54,620 Entonces lo que me espero lanzando esta clase de aquí 81 00:04:54,620 --> 00:04:59,120 Es que la aplicación, aplicación porque se llama así, se está ejecutando 82 00:04:59,120 --> 00:05:03,639 con eso ya veo que la he podido crear 83 00:05:03,639 --> 00:05:05,920 y que se puede ejecutar 84 00:05:05,920 --> 00:05:07,379 ya está, esto es un 85 00:05:07,379 --> 00:05:11,689 este método 86 00:05:11,689 --> 00:05:13,970 no lo usaré en la vida 87 00:05:13,970 --> 00:05:16,170 es solo un método para ejecutar 88 00:05:16,170 --> 00:05:18,110 para probar esta clase aquí 89 00:05:18,110 --> 00:05:19,930 lo puedo poner hasta en 90 00:05:19,930 --> 00:05:21,730 si quiero lo dejo así 91 00:05:21,730 --> 00:05:23,310 así que tengo 92 00:05:23,310 --> 00:05:24,629 una prueba 93 00:05:24,629 --> 00:05:30,279 un comentario 94 00:05:30,279 --> 00:05:32,000 en cualquier momento si quiero probar 95 00:05:32,000 --> 00:05:34,040 Esta clase concreta, pero una clase tan sencilla 96 00:05:34,040 --> 00:05:35,800 Que tampoco tiene mucho sentido de probar 97 00:05:35,800 --> 00:05:37,480 ¿Vale? Vamos a la segunda 98 00:05:37,480 --> 00:05:39,800 Que tiene un poquito más de complejidad 99 00:05:39,800 --> 00:05:41,160 Vamos a 100 00:05:41,160 --> 00:05:42,399 Crear 101 00:05:42,399 --> 00:05:44,839 Esto lo quito 102 00:05:44,839 --> 00:05:47,759 Vamos a crear una nueva clase 103 00:05:47,759 --> 00:05:50,279 Que es la clase App Store 104 00:05:50,279 --> 00:05:58,069 Podría poner un main para probarla 105 00:05:58,069 --> 00:06:00,389 ¿Vale? Por ahora no se lo pongo, ya veamos como vamos 106 00:06:00,389 --> 00:06:01,810 ¿Vale? Entonces 107 00:06:01,810 --> 00:06:03,829 ¿Qué tiene App Store? ¿Vale? 108 00:06:03,930 --> 00:06:06,329 Un array de apps, por lo tanto 109 00:06:06,329 --> 00:06:10,500 app array 110 00:06:10,500 --> 00:06:12,000 de 111 00:06:12,000 --> 00:06:14,839 apps 112 00:06:14,839 --> 00:06:19,350 que ahora tendréis que crear 113 00:06:19,350 --> 00:06:20,350 de alguna forma 114 00:06:20,350 --> 00:06:23,250 y poco más 115 00:06:23,250 --> 00:06:25,370 lo que pone que ahora tengo 116 00:06:25,370 --> 00:06:26,569 que hacer un constructor 117 00:06:26,569 --> 00:06:29,370 esto será privado 118 00:06:29,370 --> 00:06:31,810 hago un constructor 119 00:06:31,810 --> 00:06:33,269 public 120 00:06:33,269 --> 00:06:35,430 app store 121 00:06:35,430 --> 00:06:40,350 lo que debería hacer 122 00:06:40,350 --> 00:06:42,410 este app store es recibir un string 123 00:06:42,410 --> 00:06:43,949 string 124 00:06:43,949 --> 00:06:45,449 code 125 00:06:45,449 --> 00:06:48,370 un código que me crea 126 00:06:48,370 --> 00:06:49,629 las aplicaciones, ¿vale? 127 00:06:49,870 --> 00:06:52,610 por ahora no lo voy a hacer, voy a saltarme 128 00:06:52,610 --> 00:06:53,990 esta cosa de aquí 129 00:06:53,990 --> 00:06:56,490 ¿vale? para hacer una versión 130 00:06:56,490 --> 00:06:57,889 más sencilla, también porque 131 00:06:57,889 --> 00:07:00,250 esta cosa de aquí, luego simplemente 132 00:07:00,250 --> 00:07:02,129 la sustituiré aquí y me funcionará 133 00:07:02,129 --> 00:07:04,009 ¿vale? pero como ahora quiero 134 00:07:04,009 --> 00:07:06,170 ir a hacer cosas un poquito más complejas 135 00:07:06,170 --> 00:07:07,730 o no sé hacerlo esto 136 00:07:07,730 --> 00:07:09,790 pues entonces la única cosa que hago es 137 00:07:09,790 --> 00:07:11,810 me creo un array de 138 00:07:11,810 --> 00:07:13,110 tres 139 00:07:13,110 --> 00:07:16,269 stores 140 00:07:16,269 --> 00:07:17,870 de tres aplicaciones, no lo sé 141 00:07:17,870 --> 00:07:20,550 algo así, vamos a verlo 142 00:07:20,550 --> 00:07:21,209 como me lo hago 143 00:07:21,209 --> 00:07:24,110 por ejemplo digo que apps 144 00:07:24,110 --> 00:07:28,589 es igual a new app 145 00:07:28,589 --> 00:07:30,769 de tres posiciones 146 00:07:30,769 --> 00:07:32,689 por ejemplo 147 00:07:32,689 --> 00:07:36,189 y ahora pongo que apps 148 00:07:36,189 --> 00:07:38,689 de cero es igual 149 00:07:38,689 --> 00:07:40,310 a new app 150 00:07:40,310 --> 00:07:41,790 De 151 00:07:41,790 --> 00:07:44,689 App 1 152 00:07:44,689 --> 00:07:48,589 Coma 153 00:07:48,589 --> 00:07:50,910 1,5 154 00:07:50,910 --> 00:07:59,810 Esto lo copio 155 00:07:59,810 --> 00:08:00,470 Tres veces 156 00:08:00,470 --> 00:08:05,990 Apps 1, apps 2 157 00:08:05,990 --> 00:08:08,389 Esto es app 2, app 3 158 00:08:08,389 --> 00:08:10,230 Versión 4 159 00:08:10,230 --> 00:08:12,129 Versión 7, números a caso 160 00:08:12,129 --> 00:08:14,629 Esto es de 10 161 00:08:14,629 --> 00:08:15,430 Esto es de 3 162 00:08:15,430 --> 00:08:17,170 ¿Vale? 163 00:08:17,629 --> 00:08:20,629 Con esto, por ejemplo, ya tengo 164 00:08:20,629 --> 00:08:23,009 un array de tres 165 00:08:23,009 --> 00:08:25,410 en mi App Store hay tres aplicaciones 166 00:08:25,410 --> 00:08:26,810 distintas, ¿vale? que se llaman 167 00:08:26,810 --> 00:08:27,910 App1, App2, App3 168 00:08:27,910 --> 00:08:31,790 con estos números de aquí no conseguiría 169 00:08:31,790 --> 00:08:32,750 rellenar 170 00:08:32,750 --> 00:08:35,549 un móvil 171 00:08:35,549 --> 00:08:37,330 ¿vale? entonces no podría hacer 172 00:08:37,330 --> 00:08:39,250 la prueba de si cabe 173 00:08:39,250 --> 00:08:40,950 ¿qué pasa si 174 00:08:40,950 --> 00:08:42,450 una cosa llena 175 00:08:42,450 --> 00:08:44,629 intento meter algo más 176 00:08:44,629 --> 00:08:46,830 por lo tanto aumento un poco el tamaño 177 00:08:46,830 --> 00:08:48,929 estas son 15, estas son 178 00:08:48,929 --> 00:08:51,950 14 179 00:08:51,950 --> 00:08:55,070 Así que si intento poner las 3 180 00:08:55,070 --> 00:08:56,110 No debería haber 181 00:08:56,110 --> 00:08:58,730 ¿Vale? Porque mi móvil era de 30 182 00:08:58,730 --> 00:08:59,509 Cuando haré la prueba 183 00:08:59,509 --> 00:09:00,570 ¿Vale? 184 00:09:02,190 --> 00:09:04,730 Esto es una forma de decir 185 00:09:04,730 --> 00:09:06,250 Oye, mira, necesito un App Store 186 00:09:06,250 --> 00:09:09,149 Para poder trabajar y seguir adelante 187 00:09:09,149 --> 00:09:10,509 Pues lo hago así 188 00:09:10,509 --> 00:09:11,370 Lo hago sin 189 00:09:11,370 --> 00:09:14,009 La parte compleja de 190 00:09:14,009 --> 00:09:16,529 Sacarlo desde un código que me han dado 191 00:09:16,529 --> 00:09:18,470 ¿Vale? Ahora después 192 00:09:18,470 --> 00:09:24,649 si queréis lo cambiamos y lo hacemos con el código vale por ahora como tengo prisa y si 193 00:09:24,649 --> 00:09:30,590 si no hago esta parte de aquí no puedo seguir adelante y no quiero liar me con una parte que 194 00:09:30,590 --> 00:09:36,049 es reciente opcional porque si lo hago así ya la tengo pues entonces prefiero hacerlas y fijaos que 195 00:09:36,049 --> 00:09:44,909 aquí pide un cole que luego no usa pasada la mejor pongo aquí un un comentario de el enunciado dice 196 00:09:44,909 --> 00:09:50,149 que pilla un string pero por falta de tiempo no lo estoy haciendo de esta forma no lo sé 197 00:09:53,470 --> 00:09:58,889 voy a la implementación de los métodos que son las cosas un poquito interesante lo tengo 198 00:09:58,889 --> 00:10:04,789 que implementar de cara a no tengo que pensar que esto sea de tres vale pensar que esto esté 199 00:10:04,789 --> 00:10:10,889 llenado mi ejemplo tiene tres aplicaciones cuando luego me mandaran este de aquí tendrá 200 00:10:10,889 --> 00:10:13,269 5, cuando me darán otro tendrá 27 201 00:10:13,269 --> 00:10:15,070 ¿Vale? Entonces yo sé simplemente que 202 00:10:15,070 --> 00:10:16,769 Una vez que se ha creado 203 00:10:16,769 --> 00:10:19,090 Esto está rellenado con aplicaciones 204 00:10:19,090 --> 00:10:21,309 ¿Cuántas? No lo sé, ¿cuántas aplicaciones 205 00:10:21,309 --> 00:10:21,629 Habrá? 206 00:10:24,190 --> 00:10:25,350 Apps.length 207 00:10:25,350 --> 00:10:26,809 ¿Vale? 208 00:10:27,029 --> 00:10:29,049 Por lo tanto voy a utilizar apps.length 209 00:10:29,049 --> 00:10:30,929 Tened en cuenta que también este es un app store 210 00:10:30,929 --> 00:10:32,450 Por como está 211 00:10:32,450 --> 00:10:34,669 Planteado aquí 212 00:10:34,669 --> 00:10:36,149 No 213 00:10:36,149 --> 00:10:38,649 Ni se añaden 214 00:10:38,649 --> 00:10:44,409 ni se quitan aplicaciones en el app store donde se aplica donde se añaden donde se quitan es en 215 00:10:44,409 --> 00:10:49,889 el móvil vale por lo tanto esto es bastante estático es esto es lo cuanto la unión se 216 00:10:49,889 --> 00:10:58,110 cambiará del app store es la versión en un futuro por ahora se queda más sencillo que 217 00:10:58,110 --> 00:11:02,169 un app store real el app store real debería tener también la posibilidad de poder quitar 218 00:11:02,169 --> 00:11:03,649 o meter una nueva aplicación 219 00:11:03,649 --> 00:11:04,750 vale 220 00:11:04,750 --> 00:11:07,350 vamos a ver que me dice 221 00:11:07,350 --> 00:11:09,990 de todos los métodos aquí está 222 00:11:09,990 --> 00:11:12,710 install change version list apps 223 00:11:12,710 --> 00:11:13,830 empiezo por lo fácil 224 00:11:13,830 --> 00:11:15,070 list apps, vale 225 00:11:15,070 --> 00:11:16,710 public 226 00:11:16,710 --> 00:11:20,029 list apps me devuelve un string 227 00:11:20,029 --> 00:11:22,169 string list apps 228 00:11:22,950 --> 00:11:26,169 list apps 229 00:11:26,169 --> 00:11:27,809 sí, sí, ahora supo 230 00:11:27,809 --> 00:11:32,809 lo que tiene que hacer 231 00:11:32,809 --> 00:11:35,029 es crearme un string 232 00:11:35,029 --> 00:11:36,610 Que contenga dentro 233 00:11:36,610 --> 00:11:39,289 Toda la información que está aquí 234 00:11:39,289 --> 00:11:40,370 Versión 235 00:11:40,370 --> 00:11:41,850 Lazy 236 00:11:41,850 --> 00:11:45,070 Que no tengo tiempo 237 00:11:45,070 --> 00:11:46,690 Quiero hacer algo 238 00:11:46,690 --> 00:11:47,210 ¿Vale? 239 00:11:47,350 --> 00:11:48,230 Return 240 00:11:48,230 --> 00:11:50,570 Apps 241 00:11:50,570 --> 00:11:52,970 No, arrays 242 00:11:52,970 --> 00:11:56,870 Punto to string 243 00:11:56,870 --> 00:11:58,870 De apps 244 00:11:58,870 --> 00:12:01,639 Ya está 245 00:12:01,639 --> 00:12:03,000 Feo 246 00:12:03,000 --> 00:12:04,159 ¿Vale? 247 00:12:04,200 --> 00:12:04,740 Pero funciona 248 00:12:04,740 --> 00:12:41,659 public static void main me voy a crear un objeto app store es igual a new app store de inutil 249 00:12:41,659 --> 00:12:50,860 y luego appStore tengo que dar un nombre, miAppStore, y luego lo que hago, recordadmelo 250 00:12:50,860 --> 00:13:07,639 que miAppStore.listApps.b, vale, como esto debe haber un string, hago un system.out.println 251 00:13:07,639 --> 00:13:23,590 esta cosa que me crea un app store tanto está necesita un string más de string no sirve de 252 00:13:23,590 --> 00:13:27,309 nada puede escribir cualquier cosa aquí dentro hasta dejarlo vacío porque no se usa en el 253 00:13:27,309 --> 00:13:33,750 constructor se usará y es sólo para ver que me crea un objeto que me lo imprime o como me lo 254 00:13:33,750 --> 00:13:45,309 imprime vale aquí lanzó aquí cosas rarísimas esto porque claro él me escribe el contenido y los 255 00:13:45,309 --> 00:13:51,610 contenidos son app y los contenidos de app no me lo está escribiendo bien vale entonces lo 256 00:13:51,610 --> 00:14:01,990 que estoy haciendo aquí no me funciona a menos que no sepa un truquillo que es si me voy a public 257 00:14:01,990 --> 00:14:03,629 string 258 00:14:03,629 --> 00:14:05,509 to string 259 00:14:05,509 --> 00:14:09,570 y le escribo aquí 260 00:14:09,570 --> 00:14:11,429 como se escribe 261 00:14:11,429 --> 00:14:14,190 como se representa 262 00:14:14,190 --> 00:14:16,409 un objeto 263 00:14:16,409 --> 00:14:17,549 mío 264 00:14:17,549 --> 00:14:18,870 esto se enfada porque 265 00:14:18,870 --> 00:14:25,419 entonces string res 266 00:14:25,419 --> 00:14:27,440 es igual a nada 267 00:14:27,440 --> 00:14:29,340 y luego pongo que 268 00:14:29,340 --> 00:14:31,399 el resultado 269 00:14:31,399 --> 00:14:33,320 es el nombre 270 00:14:33,320 --> 00:14:35,879 pongamos entonces this.name 271 00:14:35,879 --> 00:14:38,159 Más 272 00:14:38,159 --> 00:14:39,940 Paréntesis 273 00:14:39,940 --> 00:14:41,259 Más 274 00:14:41,259 --> 00:14:44,519 10.6 275 00:14:44,519 --> 00:14:48,299 Más 276 00:14:48,299 --> 00:14:52,659 Paréntesis 277 00:14:52,659 --> 00:14:54,039 Gigabyte 278 00:14:54,039 --> 00:14:55,240 Paréntesis 279 00:14:55,240 --> 00:15:00,419 Y luego devuelvo esto 280 00:15:00,419 --> 00:15:03,100 Return res 281 00:15:03,100 --> 00:15:06,120 Si me sé esta cosa de aquí 282 00:15:06,120 --> 00:15:07,559 Que es el método toString 283 00:15:07,559 --> 00:15:10,220 El método toString sirve para decir 284 00:15:10,220 --> 00:15:12,519 Si alguien quiere imprimir en pantalla 285 00:15:12,519 --> 00:15:13,419 Una app 286 00:15:13,419 --> 00:15:16,799 ¿Cómo se representa una app en formato de string? 287 00:15:17,120 --> 00:15:18,340 Y se lo estoy diciendo aquí 288 00:15:18,340 --> 00:15:22,139 Entonces ahora como magia 289 00:15:22,139 --> 00:15:24,700 Esto funciona 290 00:15:24,700 --> 00:15:30,539 No lo hemos visto este año todavía 291 00:15:30,539 --> 00:15:33,659 Del año pasado a lo mejor se lo sabe 292 00:15:33,659 --> 00:15:34,360 ¿Vale? 293 00:15:34,720 --> 00:15:37,080 Que no me sé este truquillo 294 00:15:37,080 --> 00:15:39,000 Pues nada, pasa nada 295 00:15:39,000 --> 00:15:41,059 Esto lo puedo dejar, pero no lo uso 296 00:15:41,059 --> 00:15:43,379 ¿Vale? O lo uso directamente 297 00:15:43,379 --> 00:15:45,360 Con tu string, ¿vale? Este método de aquí 298 00:15:45,360 --> 00:15:46,519 Lo puedo crear 299 00:15:46,519 --> 00:15:49,220 ¿Vale? Entonces, ¿cómo hago 300 00:15:49,220 --> 00:15:51,000 Sin utilizar esto 301 00:15:51,000 --> 00:15:53,419 Hacer lo mismo? 302 00:15:54,080 --> 00:15:55,159 Pues haré algo 303 00:15:55,159 --> 00:15:55,960 Como esto 304 00:15:55,960 --> 00:15:58,980 String, resultado 305 00:15:58,980 --> 00:16:00,759 Estoy en App Store, ¿eh? 306 00:16:00,759 --> 00:16:02,179 En ListApp 307 00:16:02,179 --> 00:16:06,340 es igual a nada 308 00:16:06,340 --> 00:16:08,019 y luego for 309 00:16:08,019 --> 00:16:10,379 int es igual a cero 310 00:16:10,379 --> 00:16:11,860 y menor de que 311 00:16:11,860 --> 00:16:20,059 apps.length 312 00:16:20,059 --> 00:16:25,190 y más más 313 00:16:25,190 --> 00:16:27,269 o sea por cada aplicación 314 00:16:27,269 --> 00:16:28,529 dentro de 315 00:16:28,529 --> 00:16:30,669 mi array de aplicaciones 316 00:16:30,669 --> 00:16:32,809 lo que voy a hacer es 317 00:16:32,809 --> 00:16:35,309 res es igual a res 318 00:16:35,309 --> 00:16:36,070 más 319 00:16:36,070 --> 00:16:39,009 apps 320 00:16:39,009 --> 00:16:42,909 de i.toString 321 00:16:42,909 --> 00:16:47,460 más 322 00:16:47,460 --> 00:16:49,360 un espacio 323 00:16:49,360 --> 00:16:54,059 y al final 324 00:16:54,059 --> 00:16:55,779 lo que devuelvo 325 00:16:55,779 --> 00:16:57,080 es este res 326 00:16:57,080 --> 00:17:01,620 entonces ahora 327 00:17:01,620 --> 00:17:03,139 me hace esto 328 00:17:03,139 --> 00:17:14,640 que no he hecho el método 329 00:17:14,640 --> 00:17:16,440 upToString aquí 330 00:17:16,440 --> 00:17:18,299 pues quiere decir que esto 331 00:17:18,299 --> 00:17:19,680 lo tengo que hacer allá 332 00:17:19,680 --> 00:17:23,339 ahora el name es privado 333 00:17:23,339 --> 00:17:25,339 entonces tengo que 334 00:17:25,339 --> 00:17:27,400 no lo puedo acceder directamente 335 00:17:27,400 --> 00:17:29,220 tendré que hacer aquí un 336 00:17:29,220 --> 00:17:31,019 public 337 00:17:31,019 --> 00:17:33,720 string 338 00:17:33,720 --> 00:17:35,559 get name 339 00:17:35,559 --> 00:17:37,720 si no, no lo puedo 340 00:17:37,720 --> 00:17:39,819 pillar, que me hará 341 00:17:39,819 --> 00:17:41,240 return name 342 00:17:41,240 --> 00:17:43,980 y ahora 343 00:17:43,980 --> 00:17:45,920 desde aquí, en vez de 344 00:17:45,920 --> 00:17:47,720 llamar el toString su API 345 00:17:47,720 --> 00:17:49,599 lo tengo que hacer explícitamente 346 00:17:49,599 --> 00:17:51,559 get name 347 00:17:51,559 --> 00:17:56,180 Más 348 00:17:56,180 --> 00:17:58,619 Abierta paréntesis 349 00:17:58,619 --> 00:18:00,000 Más 350 00:18:00,000 --> 00:18:01,559 Apps 351 00:18:01,559 --> 00:18:03,940 TI 352 00:18:03,940 --> 00:18:05,960 .sice 353 00:18:05,960 --> 00:18:08,339 Que si puede acceder porque es público 354 00:18:08,339 --> 00:18:09,299 O sea, no es privado 355 00:18:09,299 --> 00:18:11,279 No es público, pero tampoco es privado 356 00:18:11,279 --> 00:18:12,460 Más 357 00:18:12,460 --> 00:18:15,579 Paréntesis 358 00:18:15,579 --> 00:18:16,720 Paz 359 00:18:16,720 --> 00:18:20,019 O sea, lo que antes hacía 360 00:18:20,019 --> 00:18:21,859 Aquí con un metodito 361 00:18:21,859 --> 00:18:24,319 recogido aquí dentro para escribirlo 362 00:18:24,319 --> 00:18:26,579 pues ahora lo tengo que sacar la información 363 00:18:26,579 --> 00:18:28,079 directamente desde 364 00:18:28,079 --> 00:18:29,299 desde 365 00:18:29,299 --> 00:18:32,180 desde 366 00:18:32,180 --> 00:18:34,640 App Store, donde los encuentro 367 00:18:34,640 --> 00:18:36,240 pues por cada i 368 00:18:36,240 --> 00:18:38,559 que vaya de 1 a 2 369 00:18:38,559 --> 00:18:40,279 en este caso, de 0, 1 y 2 370 00:18:40,279 --> 00:18:42,759 en este caso, pues accederé 371 00:18:42,759 --> 00:18:44,759 a esa aplicación, pillaré su nombre 372 00:18:44,759 --> 00:18:46,859 y luego entre paréntesis pongo su tamaño 373 00:18:46,859 --> 00:18:48,539 la versión no porque me lo decía 374 00:18:48,539 --> 00:18:49,519 el enunciado creo 375 00:18:49,519 --> 00:18:53,420 Un error 376 00:18:53,420 --> 00:18:54,539 Get the name 377 00:18:54,539 --> 00:18:55,700 Me da un error 378 00:18:55,700 --> 00:18:57,160 Porque no he guardado el otro 379 00:18:57,160 --> 00:18:58,039 Ahí, ya está 380 00:18:58,039 --> 00:18:59,579 ¿Cómo? 381 00:19:02,609 --> 00:19:03,210 Ejecuto 382 00:19:03,210 --> 00:19:06,170 Y aquí tengo mi listado de aplicación 383 00:19:06,170 --> 00:19:09,230 ¿Qué quiero hacerlo un poquito más bonito? 384 00:19:09,750 --> 00:19:12,829 Pues al final aquí le pongo un barra n 385 00:19:12,829 --> 00:19:16,609 Este es un carácter especial que me dice 386 00:19:16,609 --> 00:19:17,589 Vete a una nueva línea 387 00:19:17,589 --> 00:19:20,549 Hemos visto uno o dos veces al principio de Qt 388 00:19:20,549 --> 00:19:22,549 Entonces al final me sale 389 00:19:22,549 --> 00:19:25,740 Que 390 00:19:25,740 --> 00:19:31,240 Fijaos que 391 00:19:31,240 --> 00:19:33,359 Aquí me da solo el listado 392 00:19:33,359 --> 00:19:34,920 No me escribe 393 00:19:34,920 --> 00:19:36,759 Las aplicaciones disponibles son 394 00:19:36,759 --> 00:19:39,140 Porque esto lo escribiré en el main 395 00:19:39,140 --> 00:19:40,440 Y aquí en el main puedo poner 396 00:19:40,440 --> 00:19:41,880 Las aplicaciones disponibles son 397 00:19:41,880 --> 00:19:44,119 Y luego pido el listado 398 00:19:44,119 --> 00:19:46,339 ¿Dudas? 399 00:19:50,430 --> 00:19:51,650 Y fijaos que 400 00:19:51,650 --> 00:19:53,630 Este método de aquí que he hecho 401 00:19:53,630 --> 00:19:55,089 ¿Vale? 402 00:19:55,109 --> 00:19:57,430 Que no es el más elegante de los tres 403 00:19:57,430 --> 00:19:59,490 quizás el más elegante a lo mejor era el primero 404 00:19:59,490 --> 00:20:01,230 que hemos visto, pero independientemente 405 00:20:01,230 --> 00:20:03,509 este de aquí es independiente de lo que haya puesto 406 00:20:03,509 --> 00:20:05,490 aquí, si ahora de repente 407 00:20:05,490 --> 00:20:06,710 pongo una cuarta 408 00:20:06,710 --> 00:20:08,569 aplicación 409 00:20:08,569 --> 00:20:14,400 aquí 410 00:20:14,400 --> 00:20:21,079 él me instará también la cuarta aplicación 411 00:20:21,079 --> 00:20:22,779 encantado de la vida 412 00:20:22,779 --> 00:20:26,039 ¿sí? 413 00:20:28,339 --> 00:20:30,279 que es la clave de la idea 414 00:20:30,279 --> 00:20:32,440 de que cuando luego después implementaré 415 00:20:32,440 --> 00:20:32,799 aquí 416 00:20:32,799 --> 00:20:35,599 lo que tengo que implementar con el code 417 00:20:35,599 --> 00:20:38,400 Pues el resto del programa me tiene que seguir funcionando 418 00:20:38,400 --> 00:20:40,039 No puedo basarme 419 00:20:40,039 --> 00:20:41,059 Sobre este 4 420 00:20:41,059 --> 00:20:43,380 O sobre estas aplicaciones aquí 421 00:20:43,380 --> 00:20:44,960 No sé que va a haber ahí dentro 422 00:20:44,960 --> 00:20:46,640 Tiene que ser todo genérico 423 00:20:46,640 --> 00:20:47,980 Me baso sobre 424 00:20:47,980 --> 00:20:51,880 Los atributos de estas aplicaciones 425 00:20:51,880 --> 00:20:52,900 En posición i 426 00:20:52,900 --> 00:20:55,039 Basta uplength 427 00:20:55,039 --> 00:20:57,240 ¿Dudas? 428 00:20:58,000 --> 00:21:03,230 ¿Dónde? 429 00:21:10,700 --> 00:21:12,180 Name es un método 430 00:21:12,180 --> 00:21:13,819 Que he hecho aquí 431 00:21:13,819 --> 00:21:15,619 Que me devuelve el name 432 00:21:15,619 --> 00:21:18,319 en app, porque puesto que 433 00:21:18,319 --> 00:21:19,200 app es privada 434 00:21:19,200 --> 00:21:22,299 como app es privada no puede acceder 435 00:21:22,299 --> 00:21:23,420 al name directamente 436 00:21:23,420 --> 00:21:26,559 return name 437 00:21:26,559 --> 00:21:28,400 es el get 438 00:21:28,400 --> 00:21:30,299 hasta te lo crea en automático, si tu le das 439 00:21:30,299 --> 00:21:32,400 botón derecho aquí, vas a 440 00:21:32,400 --> 00:21:33,380 refactor 441 00:21:33,380 --> 00:21:35,579 y le pone 442 00:21:35,579 --> 00:21:38,440 no, no era refactor, donde estaba, surfe 443 00:21:38,440 --> 00:21:40,660 y hay aquí, generate getter 444 00:21:40,660 --> 00:21:42,720 and setter, te lo crea en automático 445 00:21:42,720 --> 00:21:44,920 literalmente 446 00:21:44,920 --> 00:21:46,799 Otra cosa es que luego tú le quedas 447 00:21:46,799 --> 00:21:48,380 Algo más complejo 448 00:21:48,380 --> 00:21:50,220 Pero a este nivel es 449 00:21:50,220 --> 00:21:53,319 Nada más que devolver esto 450 00:21:53,319 --> 00:21:54,920 Esto me sirve porque 451 00:21:54,920 --> 00:21:55,920 Esto lo he puesto privado 452 00:21:55,920 --> 00:21:58,259 Si quito privado ni siquiera me sirve esto 453 00:21:58,259 --> 00:21:59,559 Accedo directamente al name 454 00:21:59,559 --> 00:22:01,400 ¿Vale? 455 00:22:02,059 --> 00:22:04,279 ¿Cómo hago por otro lado del size? 456 00:22:04,400 --> 00:22:05,900 Como el size no lo he puesto privado 457 00:22:05,900 --> 00:22:08,319 Al size accedo directamente allí 458 00:22:08,319 --> 00:22:08,799 Al size 459 00:22:08,799 --> 00:22:11,460 ¿Dudas? 460 00:22:12,339 --> 00:22:14,240 Lo he hecho así también para que veáis 461 00:22:14,240 --> 00:22:16,079 Las dos versiones 462 00:22:16,079 --> 00:22:17,500 ¿Dudas? ¿Más dudas? 463 00:22:20,369 --> 00:22:21,829 Vale, entonces listapp 464 00:22:21,829 --> 00:22:23,049 Hecho 465 00:22:23,049 --> 00:22:29,630 Vale 466 00:22:29,630 --> 00:22:34,869 Voy a hacer otra 467 00:22:34,869 --> 00:22:36,289 Por ejemplo 468 00:22:36,289 --> 00:22:38,230 Hagamos install 469 00:22:38,230 --> 00:22:40,309 Venga, que aquí tiene 470 00:22:40,309 --> 00:22:42,269 La cosa compleja 471 00:22:42,269 --> 00:22:44,730 A ver, install de un string 472 00:22:44,730 --> 00:22:46,869 Recibe el nombre de una app 473 00:22:48,210 --> 00:22:48,970 Y devuelve 474 00:22:48,970 --> 00:22:50,869 Una copia del objeto app correspondiente 475 00:22:51,410 --> 00:22:52,690 Vale, entonces 476 00:22:52,690 --> 00:22:57,029 public 477 00:22:57,029 --> 00:23:00,970 devuelve una copia 478 00:23:00,970 --> 00:23:01,470 app 479 00:23:01,470 --> 00:23:03,670 vale 480 00:23:03,670 --> 00:23:06,150 como devuelve una copia del objeto app 481 00:23:06,150 --> 00:23:07,210 devuelve un app 482 00:23:07,210 --> 00:23:08,609 si 483 00:23:08,609 --> 00:23:10,930 install 484 00:23:10,930 --> 00:23:13,869 string 485 00:23:13,869 --> 00:23:16,009 name 486 00:23:16,009 --> 00:23:20,380 recibo el name 487 00:23:20,380 --> 00:23:21,779 tengo que devolver un app 488 00:23:21,779 --> 00:23:24,099 vale, ok, perfecto 489 00:23:24,099 --> 00:23:26,119 como lo hago, pues tendré que 490 00:23:26,119 --> 00:23:28,839 Ir a mirar todos mis 491 00:23:28,839 --> 00:23:30,539 Como se llaman 492 00:23:30,539 --> 00:23:32,660 Las posiciones de mi array 493 00:23:32,660 --> 00:23:35,380 Buscar la aplicación que se llama así 494 00:23:35,380 --> 00:23:36,839 Y devolverla 495 00:23:36,839 --> 00:23:38,140 ¿Vale? Atención 496 00:23:38,140 --> 00:23:40,319 Entonces, for 497 00:23:40,319 --> 00:23:41,680 Bueno, app 498 00:23:41,680 --> 00:23:44,400 Resultado es igual a null 499 00:23:44,400 --> 00:23:48,259 Si al final no la encuentro 500 00:23:48,259 --> 00:23:49,759 Cosa por estilo, devolveré un null 501 00:23:49,759 --> 00:23:52,900 ¿Si? No es un problema mío 502 00:23:52,900 --> 00:23:54,660 Devolver un null, será un problema 503 00:23:54,660 --> 00:23:56,279 de quien llama install 504 00:23:56,279 --> 00:23:58,420 que tendrá que comprobar que el resultado 505 00:23:58,420 --> 00:23:59,099 no sea null 506 00:23:59,099 --> 00:24:02,759 si es null o he pedido una aplicación que no existe 507 00:24:02,759 --> 00:24:04,319 o ha habido un problema 508 00:24:04,319 --> 00:24:05,940 en encontrarla 509 00:24:05,940 --> 00:24:07,559 for 510 00:24:07,559 --> 00:24:10,000 int is igual a 0 511 00:24:10,000 --> 00:24:12,160 y menor que 512 00:24:12,160 --> 00:24:14,779 como no, apps.lang 513 00:24:14,779 --> 00:24:19,250 y más más 514 00:24:19,250 --> 00:24:22,809 voy recorriendo 515 00:24:23,589 --> 00:24:24,069 mi 516 00:24:24,069 --> 00:24:26,609 array 517 00:24:26,609 --> 00:24:28,849 de aplicaciones preguntándome 518 00:24:28,849 --> 00:24:29,069 que 519 00:24:29,069 --> 00:24:30,750 si 520 00:24:30,750 --> 00:24:43,539 name.equals 521 00:24:43,539 --> 00:24:57,779 a mi me gusta 522 00:24:57,779 --> 00:24:59,599 más poner el sujeto 523 00:24:59,599 --> 00:25:01,180 del otro lado, vale, entonces 524 00:25:01,180 --> 00:25:05,640 si la posición de i 525 00:25:05,640 --> 00:25:06,200 de que 526 00:25:06,200 --> 00:25:08,619 de apps 527 00:25:08,619 --> 00:25:11,079 si voy a apps 528 00:25:11,079 --> 00:25:13,400 en la posición i, la posición actual 529 00:25:13,400 --> 00:25:15,180 pillo que 530 00:25:15,180 --> 00:25:18,180 Ah 531 00:25:18,180 --> 00:25:20,539 Si esto no es null 532 00:25:20,539 --> 00:25:22,940 Pero no puede, por como lo he hecho 533 00:25:22,940 --> 00:25:23,799 No puede ser null 534 00:25:23,799 --> 00:25:26,900 AppStore nunca es null 535 00:25:26,900 --> 00:25:29,720 Porque lo relleno con aplicaciones reales 536 00:25:29,720 --> 00:25:30,180 Vale, entonces 537 00:25:30,180 --> 00:25:33,099 Pero para ser completo no está mal 538 00:25:33,099 --> 00:25:33,579 Y 539 00:25:33,579 --> 00:25:39,170 Apps.di 540 00:25:39,170 --> 00:25:42,980 .name 541 00:25:42,980 --> 00:25:45,099 Si su nombre, pero no puede acceder a name 542 00:25:45,099 --> 00:25:45,799 Por lo tanto 543 00:25:45,799 --> 00:25:48,000 GetName 544 00:25:48,000 --> 00:25:48,700 o getName 545 00:25:48,700 --> 00:25:53,900 .equals 546 00:25:53,900 --> 00:25:57,099 el nombre que me han pasado 547 00:25:57,099 --> 00:25:59,019 este de aquí arriba 548 00:25:59,019 --> 00:26:02,200 si esto es verdad 549 00:26:02,200 --> 00:26:04,140 quiere decir que la aplicación 550 00:26:04,140 --> 00:26:05,359 en posición i 551 00:26:05,359 --> 00:26:08,220 es la aplicación que estamos buscando 552 00:26:08,220 --> 00:26:12,339 entonces vosotros 553 00:26:12,339 --> 00:26:14,819 la primera 554 00:26:14,819 --> 00:26:17,500 ¿cómo se dice? 555 00:26:18,000 --> 00:26:20,599 Impulso que tenéis 556 00:26:20,599 --> 00:26:22,319 Es decir que el resultado 557 00:26:22,319 --> 00:26:24,440 Es igual a 558 00:26:24,440 --> 00:26:25,920 Abs de i 559 00:26:25,920 --> 00:26:30,430 Como la he encontrado 560 00:26:30,430 --> 00:26:31,970 Esa es la que te devuelvo 561 00:26:31,970 --> 00:26:34,869 Return 562 00:26:34,869 --> 00:26:38,740 3 563 00:26:38,740 --> 00:26:43,460 Si la encuentro te devolveré la que es 564 00:26:43,460 --> 00:26:44,880 Si no te encuentro es null 565 00:26:44,880 --> 00:26:46,660 Este es un error 566 00:26:46,660 --> 00:26:48,539 ¿Vale? 567 00:26:49,099 --> 00:26:51,019 Porque esto no devuelve una copia 568 00:26:51,019 --> 00:26:52,759 Esto 569 00:26:52,759 --> 00:26:58,420 Nosotros tenemos nuestro 570 00:26:58,420 --> 00:27:01,619 App Store 571 00:27:01,619 --> 00:27:05,299 Donde dentro hay 572 00:27:05,299 --> 00:27:06,279 Cuatro apps 573 00:27:06,279 --> 00:27:09,579 App 1 574 00:27:09,579 --> 00:27:12,119 App 2 575 00:27:12,119 --> 00:27:14,460 App 3 576 00:27:14,460 --> 00:27:16,680 Y App 4 577 00:27:16,680 --> 00:27:19,700 Lo que hemos hecho es 578 00:27:19,700 --> 00:27:21,880 Me han dicho busca App 2 579 00:27:21,880 --> 00:27:23,880 Con un nombre 580 00:27:23,880 --> 00:27:25,779 Vale, yo me metí aquí dentro y he dicho 581 00:27:25,779 --> 00:27:27,799 ¿El nombre de esta aquí es app2? 582 00:27:27,900 --> 00:27:28,980 No, vale 583 00:27:28,980 --> 00:27:30,759 ¿El nombre de esta aquí es app2? 584 00:27:30,880 --> 00:27:33,500 Sí, entonces mi res 585 00:27:33,500 --> 00:27:35,960 Que antes valía nul 586 00:27:35,960 --> 00:27:39,930 Ahora le he dicho 587 00:27:39,930 --> 00:27:41,049 Vale, ahora vales 588 00:27:41,049 --> 00:27:43,789 Un puntero a este señor de aquí 589 00:27:43,789 --> 00:27:48,029 Que es un objeto de tipo app 590 00:27:48,029 --> 00:27:50,230 Que tiene dentro app2 591 00:27:50,230 --> 00:27:52,029 Y los tamaños y lo que sea 592 00:27:52,029 --> 00:27:53,589 No, he hecho una copia 593 00:27:53,589 --> 00:28:03,410 He hecho una referencia aquí, que devolveré, y entonces desde donde se ha llamado, que no sé qué, tendré una referencia a esta cosa aquí. 594 00:28:04,130 --> 00:28:12,089 Si ahora cambio algo en esta aplicación, se cambiará también en el App Store, cosa que yo no quiero. 595 00:28:13,630 --> 00:28:14,910 Yo quiero una copia de esto. 596 00:28:14,910 --> 00:28:17,890 esto me servirá porque cuando el App Store 597 00:28:17,890 --> 00:28:19,190 se actualiza 598 00:28:19,190 --> 00:28:21,089 a la versión 2 599 00:28:21,089 --> 00:28:24,190 yo quiero tener una en mi móvil 600 00:28:24,190 --> 00:28:26,450 que es a versión 1 601 00:28:26,450 --> 00:28:28,130 y en el App Store ha salido 602 00:28:28,130 --> 00:28:30,009 la versión 2 y comparar 603 00:28:30,009 --> 00:28:31,230 si tengo que instalarla o no 604 00:28:31,230 --> 00:28:34,109 si en vez le he dado como referencia 605 00:28:34,109 --> 00:28:35,910 en el momento en que cambio la versión 606 00:28:35,910 --> 00:28:38,009 en el App Store, se ha cambiado 607 00:28:38,009 --> 00:28:38,930 también en mi móvil 608 00:28:38,930 --> 00:28:41,410 porque es el mismo objeto 609 00:28:41,410 --> 00:28:44,170 en vez no, yo te he dicho, dame una copia 610 00:28:44,170 --> 00:28:44,890 De ese objeto 611 00:28:44,890 --> 00:28:48,150 Entonces, ¿cómo hago una copia de un objeto? 612 00:28:49,670 --> 00:28:53,329 Esto es el clásico momento trampa malvado del profesor 613 00:28:53,329 --> 00:28:55,349 Esto no lo hemos hecho nunca 614 00:28:55,349 --> 00:28:57,109 El profesor es malvado 615 00:28:57,109 --> 00:28:59,269 En un examen colapso 616 00:28:59,269 --> 00:29:00,049 ¿Vale? 617 00:29:00,109 --> 00:29:01,410 En un examen lo hago así 618 00:29:01,410 --> 00:29:02,910 Y no sacaré 10 619 00:29:02,910 --> 00:29:04,470 ¿Vale? 620 00:29:05,509 --> 00:29:07,289 Si en vez quiero sacar 10 621 00:29:07,289 --> 00:29:10,849 Pienso a qué quiere decir hacer una copia de un objeto 622 00:29:10,849 --> 00:29:23,400 Dice que res es igual a un nuevo objeto 623 00:29:23,400 --> 00:29:26,960 Estoy creando un objeto nuevo 624 00:29:26,960 --> 00:29:28,859 ¿Vale? 625 00:29:28,980 --> 00:29:31,960 Pero tiene que tener los mismos valores del objeto viejo 626 00:29:31,960 --> 00:29:33,619 Entonces, ¿cómo será su nombre? 627 00:29:34,759 --> 00:29:47,400 Porque soy vago 628 00:29:47,400 --> 00:29:50,640 Acabo de comprobar que son iguales 629 00:29:50,640 --> 00:29:54,059 Entonces me da igual utilizar esto que el otro 630 00:29:54,059 --> 00:29:56,640 ¿Quiero ser más puntilloso? 631 00:29:57,299 --> 00:29:57,640 Vale, perfecto 632 00:29:57,640 --> 00:30:00,039 El nombre de la app 633 00:30:00,039 --> 00:30:07,930 Y de versión 634 00:30:07,930 --> 00:30:08,829 ¿Qué versión tendrá? 635 00:30:10,450 --> 00:30:12,569 La versión de la app 636 00:30:12,569 --> 00:30:13,910 Estoy copiando el objeto 637 00:30:13,910 --> 00:30:17,309 Y de tamaño 638 00:30:17,309 --> 00:30:21,150 El tamaño de la app 639 00:30:21,150 --> 00:30:26,180 Estoy yendo 640 00:30:26,180 --> 00:30:28,339 Aquí 641 00:30:28,339 --> 00:30:30,059 En vez de decirle 642 00:30:30,059 --> 00:30:31,700 Res apunta aquí 643 00:30:31,700 --> 00:30:33,440 Antes de decir que res apunta allí 644 00:30:33,440 --> 00:30:35,299 Me estoy creando un nuevo objeto app 645 00:30:35,299 --> 00:30:37,920 donde copio 646 00:30:37,920 --> 00:30:39,579 el nombre de esta app 647 00:30:39,579 --> 00:30:41,440 copio 648 00:30:41,440 --> 00:30:43,680 la versión de esta app 649 00:30:43,680 --> 00:30:45,880 el tamaño de esta app 650 00:30:45,880 --> 00:30:48,059 y ahora le digo 651 00:30:48,059 --> 00:30:49,700 a res que apunte aquí 652 00:30:49,700 --> 00:30:51,440 no aquí 653 00:30:51,440 --> 00:30:55,599 entonces estoy creando 654 00:30:55,599 --> 00:30:57,240 una copia y pasándome una copia 655 00:30:57,240 --> 00:30:59,440 ahora 656 00:30:59,440 --> 00:31:01,500 si yo cambio algo en este objeto 657 00:31:01,500 --> 00:31:03,380 no estoy afectando esto 658 00:31:03,380 --> 00:31:06,880 Es una copia de ese objeto 659 00:31:06,880 --> 00:31:10,619 Podría hasta un cierto nivel 660 00:31:10,619 --> 00:31:12,759 Si me gustara y me interesa 661 00:31:12,759 --> 00:31:13,680 Irme a app 662 00:31:13,680 --> 00:31:16,700 Y crear aquí un objeto copy 663 00:31:16,700 --> 00:31:19,119 Un método copy, perdón 664 00:31:19,119 --> 00:31:20,359 Podría hacer 665 00:31:20,359 --> 00:31:21,599 Public 666 00:31:21,599 --> 00:31:24,180 App 667 00:31:24,180 --> 00:31:25,960 Porque devuelve un app 668 00:31:25,960 --> 00:31:27,200 Copy 669 00:31:27,200 --> 00:31:32,150 Que lo que hace es 670 00:31:32,150 --> 00:31:34,769 Return 671 00:31:34,769 --> 00:31:35,809 New 672 00:31:35,809 --> 00:31:38,329 app de 673 00:31:38,329 --> 00:31:40,390 this.name 674 00:31:40,390 --> 00:31:42,950 this.version 675 00:31:42,950 --> 00:31:46,630 this.size 676 00:31:46,630 --> 00:31:51,410 esto crea un nuevo 677 00:31:51,410 --> 00:31:51,970 objeto 678 00:31:51,970 --> 00:31:54,750 igual a mi 679 00:31:54,750 --> 00:31:57,349 pero estoy invocando 680 00:31:57,349 --> 00:31:59,549 un nuevo constructor que crea un nuevo objeto 681 00:31:59,549 --> 00:32:01,009 y esto te lo devuelvo 682 00:32:01,009 --> 00:32:03,589 vale, fenomenal, ¿cómo lo usaría 683 00:32:03,589 --> 00:32:04,170 desde aquí? 684 00:32:05,309 --> 00:32:06,829 aquí haría que 685 00:32:06,829 --> 00:32:08,009 res 686 00:32:08,009 --> 00:32:10,069 es igual a 687 00:32:10,069 --> 00:32:12,230 appc.copy 688 00:32:12,230 --> 00:32:23,630 llamar copy 689 00:32:23,630 --> 00:32:25,990 sobre un objeto de tipo app 690 00:32:25,990 --> 00:32:27,750 lo que me hace es 691 00:32:27,750 --> 00:32:29,430 crearme un nuevo 692 00:32:29,430 --> 00:32:32,009 app con las mismas 693 00:32:32,009 --> 00:32:33,690 características 694 00:32:33,690 --> 00:32:35,529 del viejo, pero es uno nuevo 695 00:32:35,529 --> 00:32:37,670 es un objeto nuevo, son dos instancias 696 00:32:37,670 --> 00:32:39,930 distintas, con los mismos valores 697 00:32:39,930 --> 00:32:41,769 son dos instancias distintas 698 00:32:41,769 --> 00:32:49,619 este es uno de los momentos 699 00:32:49,619 --> 00:32:51,579 complejos de este 700 00:32:51,579 --> 00:33:01,559 examen simulacro, ¿vale? La pregunta es, ¿lo hemos hecho alguna vez? No. Copiar no. 701 00:33:02,700 --> 00:33:09,440 La otra pregunta es, ¿con lo que sabéis o deberíais saber de objetos es implausible 702 00:33:09,440 --> 00:33:20,460 que vosotros podáis pensar esto? Si soy de 10 es sí. ¿Sí? ¿No soy de 10? Pues lo 703 00:33:20,460 --> 00:33:33,109 hago como mensaje. ¿Sí? ¿Dudas? Dílas. Párame. Si hay unas cuantas dudas, paradme. 704 00:33:33,109 --> 00:33:58,910 No, no, faltaría más. Ah, vale. Vamos a... Sí. Aquí. Aquí, aquí, aquí. La estoy 705 00:33:58,910 --> 00:34:05,390 creando en algún lado de la memoria, copiando los... Y luego después tengo una variable 706 00:34:05,390 --> 00:34:13,309 res que ahora apuntará a este nuevo objeto y este nuevo res lo devuelvo otra vez a quien ha llamado 707 00:34:13,309 --> 00:34:20,570 este módulo este esta cosa que estará el móvil ahora el móvil tendrá una propia copia de la 708 00:34:20,570 --> 00:34:46,099 del objeto aplicación en su móvil en su memoria del móvil sí que esa aplicación 1 en el móvil sí 709 00:34:46,099 --> 00:34:54,170 apps.di.copy 710 00:34:54,170 --> 00:34:55,550 no, porque ya la copia la has hecho 711 00:34:55,550 --> 00:34:58,269 es que cuando tú llamaras 712 00:34:58,269 --> 00:35:00,150 install, te llegará una cosa 713 00:35:00,150 --> 00:35:00,730 tú dirás 714 00:35:00,730 --> 00:35:03,670 mi array en el móvil 715 00:35:03,670 --> 00:35:06,070 de posición 0 es igual a 716 00:35:06,070 --> 00:35:06,510 install 717 00:35:06,510 --> 00:35:11,030 lo veremos 718 00:35:11,030 --> 00:35:14,170 el objeto app store que yo 719 00:35:14,170 --> 00:35:15,849 tengo en el móvil, punto 720 00:35:15,849 --> 00:35:17,769 install de la aplicación que yo quiero 721 00:35:17,769 --> 00:35:22,739 Vale 722 00:35:22,739 --> 00:35:25,019 Cuatro minutos 723 00:35:25,019 --> 00:35:27,179 Cuatro minutos me da tiempo de hacer 724 00:35:27,179 --> 00:35:28,199 Change version 725 00:35:28,199 --> 00:35:29,739 Ah, sí 726 00:35:29,739 --> 00:35:31,519 Venga, entonces 727 00:35:31,519 --> 00:35:33,300 Hago otro rápidamente 728 00:35:33,300 --> 00:35:34,360 Public 729 00:35:34,360 --> 00:35:36,940 Void 730 00:35:36,940 --> 00:35:39,079 Change 731 00:35:39,079 --> 00:35:43,539 Se llama change version 732 00:35:43,539 --> 00:35:45,320 Version 733 00:35:45,320 --> 00:35:45,840 De 734 00:35:45,840 --> 00:35:48,179 String name 735 00:35:48,179 --> 00:35:50,239 Int ver 736 00:35:50,239 --> 00:35:57,389 Lo que tiene que hacer es cambiarme la versión de este name 737 00:35:57,389 --> 00:35:59,170 ¿Vale? Entonces lo mismo que antes 738 00:35:59,170 --> 00:36:01,530 Voy a buscar en todas 739 00:36:01,530 --> 00:36:03,590 Esto lo puedo reutilizar 740 00:36:03,590 --> 00:36:08,360 Voy a buscar en todo mi array 741 00:36:08,360 --> 00:36:11,780 Hasta que encuentre la aplicación correcta 742 00:36:13,139 --> 00:36:14,000 ¿Vale? 743 00:36:15,500 --> 00:36:18,059 Hasta que la aplicación actual que estoy comprobando 744 00:36:18,059 --> 00:36:19,900 Sea igual a la aplicación que me han dado 745 00:36:19,900 --> 00:36:20,360 ¿Vale? 746 00:36:20,800 --> 00:36:21,880 Y a este punto ¿Qué hago? 747 00:36:21,880 --> 00:36:24,199 Pues cambio su versión 748 00:36:24,199 --> 00:36:29,480 Apps.di.version 749 00:36:29,480 --> 00:36:31,000 Es igual a ver 750 00:36:31,000 --> 00:36:40,829 Quiero hacerlo un poquito más fino 751 00:36:40,829 --> 00:36:42,389 Si 752 00:36:42,389 --> 00:36:44,809 Versión 753 00:36:44,809 --> 00:36:46,869 Si ver es mayor 754 00:36:46,869 --> 00:36:49,150 Que esta cosa de aquí 755 00:36:49,150 --> 00:36:53,800 Entonces la actualizo 756 00:36:53,800 --> 00:36:54,340 Si no, no 757 00:36:54,340 --> 00:36:58,840 Si me intentas actualizar en el App Store 758 00:36:58,840 --> 00:37:00,000 Con una versión más vieja 759 00:37:00,000 --> 00:37:00,679 No te lo cambio 760 00:37:00,679 --> 00:37:14,800 Acabaría 761 00:37:14,800 --> 00:37:16,340 Check update 762 00:37:16,340 --> 00:37:19,099 Pero lo hacemos en otro momento 763 00:37:19,099 --> 00:37:22,780 Dudas 764 00:37:22,780 --> 00:37:23,980 Esto lo paro