
﻿WEBVTT
Kind: captions
Language: es

00:00:05.000 --> 00:00:08.000
Wanda, la comunidad de podcasts independientes en español,

00:00:27.000 --> 00:00:30.000
Bienvenidos a Café Swift

00:00:30.000 --> 00:00:34.000
en podcasts donde hablamos del lenguaje de programación Swift de Apple.

00:00:39.000 --> 00:00:43.000
Hablamos de programación, de herramientas para desarrolladores, y

00:00:43.000 --> 00:00:46.000
de distintas experiencias, pero siempre desde el punto de vista

00:00:46.000 --> 00:00:50.000
de desarrolladores en entornos Apple y del lenguaje Swift.

00:00:51.000 --> 00:00:53.000
Esos desarrolladores somos Arturo Rivas

00:00:53.000 --> 00:00:55.000
y Julio César Fernández.

00:00:55.000 --> 00:00:56.000
Comenzamos.

00:01:13.000 --> 00:01:21.000
Muy buenas y bienvenidos a la tercera temporada de Café Sweet.

00:01:22.000 --> 00:01:27.000
No, yo cojo aquí en editor ponga efectos de sonido guapo.

00:01:27.000 --> 00:01:34.000
Pues ya fíjense, tres temporadas, porque las temporadas, como bien saben,

00:01:34.000 --> 00:01:41.000
corresponden con los meses de septiembre, que sería el inicio del curso

00:01:41.000 --> 00:01:48.000
académico, entonces bueno pues es lo que se ha lo que se ha notado, ¿no?

00:01:48.000 --> 00:01:55.000
A nivel general en todos los podcasts, al menos en la red cuonda a la que pertenecemos, y bueno pues estamos.

00:01:55.000 --> 00:01:56.000
¿Qué tal, Arturo?

00:01:56.000 --> 00:01:58.000
¿Qué tal esta tercera temporada?

00:01:58.000 --> 00:01:59.000
¿Cómo lo ves?

00:01:59.000 --> 00:02:00.000
Pues muy bien.

00:02:00.000 --> 00:02:03.000
Tengo muchas ganas porque a mí volver a la rutina nos no siempre tiene que

00:02:03.000 --> 00:02:06.000
ser algo malo porque la verdad que he conseguido que mi rutina, que mi

00:02:06.000 --> 00:02:09.000
rutina me guste, así que tengo tengo un montón de ganas y ya de esta

00:02:09.000 --> 00:02:12.000
tercera temporada que nos lo iba que nos lo iba a decir la verdad a ver

00:02:12.000 --> 00:02:19.000
intentaremos como propósito ¿no?

00:02:19.000 --> 00:02:28.000
El pues tener más lograr esa periodicidad que siempre queremos, pero pero nunca lo gravos porque está visto que contenido no nos falta, ¿verdad?

00:02:29.000 --> 00:02:33.000
Contenido no, no falta y nos siguen dando mucho trabajo.

00:02:34.000 --> 00:02:41.000
Pero sí, vamos a intentar en cierta forma poder grabar al menos cada dos, tres semanas, más o menos.

00:02:41.000 --> 00:02:45.000
Ahora, como ya te comenté el otro día, hemos suspendido por tema de de mi

00:02:45.000 --> 00:02:49.000
otro, de mi co host, Oliver Navani hemos suspendido en el Canacer

00:02:49.000 --> 00:02:53.000
temporalmente, por lo que eso pues al final a pesar de que va a suponer un

00:02:53.000 --> 00:02:57.000
tiempo sin, sin Nebecanaiser que al final pues es una pena también porque

00:02:57.000 --> 00:03:01.000
era un podcast que gustaba mucho pero bueno, en algún momento Oliver le

00:03:01.000 --> 00:03:05.000
volverá a subirse a la nave pues pues bueno eso también me da más

00:03:05.000 --> 00:03:09.000
tiempo pues para poder tener más regularidad, porque la verdad que el

00:03:09.000 --> 00:03:13.000
contenido que hacemos aquí es un contenido que es muy hardcore para

00:03:13.000 --> 00:03:23.000
desarrolladores, ¿no?

00:03:23.000 --> 00:03:28.000
Y de hecho la verdad que desde aquí quiero saludar a toda la gente que nos

00:03:28.000 --> 00:03:34.000
escucha y que nos sigue por LinkedIn, por LinkedIn, que se dirían bien dicho.

00:03:34.000 --> 00:03:38.000
Solo en España somos los que decimos LinkedIn, porque en realidad es

00:03:38.000 --> 00:03:42.000
LinkedIn y que la verdad que son muchos los que nos conocen y tal e

00:03:42.000 --> 00:03:46.000
incluso tú como ya comentaste una vez hasta hasta te reconocen las

00:03:46.000 --> 00:03:50.000
entrevistas no que te dije, güey, esto está mal, me ha entrevistado a un

00:03:50.000 --> 00:03:58.000
una persona famosa.

00:04:00.000 --> 00:04:06.000
No, la verdad es que a ver, para ser un algo tan derecho, la verdad es que los números son son muy buenos.

00:04:06.000 --> 00:04:10.000
Sí, la verdad es que sí, por eso hay que agradecer a todo el mundo que

00:04:10.000 --> 00:04:14.000
esté que esté ahí y que nos siga semana a semana, quincena a quincena

00:04:14.000 --> 00:04:18.000
que es cuando lo que vamos a intentar seguir a este respecto.

00:04:18.000 --> 00:04:30.000
Y sin más pues lo que vamos a hacer es irnos a bueno pues al primer bloque que como ya sabemos siempre es el de qué hemos estado haciendo.

00:04:40.000 --> 00:04:42.000
¿Y que has estado haciendo Arturo?

00:04:43.000 --> 00:04:46.000
Pues yo he vuelto justo esta semana de mis vacaciones, que no me gustan.

00:04:46.000 --> 00:04:47.000
Hay vacaciones.

00:04:47.000 --> 00:04:48.000
Es como el trush.

00:04:48.000 --> 00:04:49.000
Sí, auditar.

00:04:49.000 --> 00:04:50.000
Pero ahora ya has vuelto de verdad.

00:04:50.000 --> 00:04:54.000
Porque al final siempre, como estoy metido en todos los jardines que hay

00:04:54.000 --> 00:04:58.000
alguno más, pues algo ha estado haciendo en en las vacaciones y bueno

00:04:58.000 --> 00:05:02.000
pues al final pues bastante bastante marronazo, además cosas que que no

00:05:02.000 --> 00:05:06.000
domino demasiado, me ha tocado me ha tocado tocar, valga la redundancia,

00:05:06.000 --> 00:05:10.000
cosas de backend y demás, pero amigos esta vez tenía un compañero de

00:05:10.000 --> 00:05:14.000
viajes que me ayudó y no y no es un amigo que sabe del tema, sino el

00:05:14.000 --> 00:05:23.000
maravilloso chef Pepe.

00:05:23.000 --> 00:05:27.000
Pues me pilló eso, me pilló con el marrón de que se habían caído y no

00:05:27.000 --> 00:05:31.000
funcionan unas cosas, y para arreglarlo pues utilizando Chad GPT, pues no

00:05:31.000 --> 00:05:35.000
sé decirte pues algo que a lo mejor me hubiese llevado sinchage pt cuatro

00:05:35.000 --> 00:05:39.000
o cinco horas pues en un par de ellas más o menos no solucioné luego un

00:05:39.000 --> 00:05:43.000
ejemplo que ya sí que es, que ya sí que fue, no digo que me ayudó, sino

00:05:43.000 --> 00:05:47.000
que directamente me dio la solución, fue que necesitaban unos datos para

00:05:47.000 --> 00:05:51.000
unas métricas en la base de datos, y tenía que hacer consultas, yo SQL,

00:05:51.000 --> 00:05:55.000
algo así, sé experto ni mucho menos pero bueno me hubiese podido apañar

00:05:55.000 --> 00:05:59.000
pero en este caso la base de datos está en Mongo y pues directamente le

00:05:59.000 --> 00:06:03.000
pregunté cómo sacar en una tabla que bueno, es una colación en Mongo,

00:06:03.000 --> 00:06:13.000
que tenga esto, esto y esto, como saco esto, esto y esto.

00:06:13.000 --> 00:06:18.000
Y a la primera, o sea, creo que le pregunté tres cosas y las tres a la

00:06:18.000 --> 00:06:24.000
primera la respondió directamente con un código que copié, pegue y funciona.

00:06:25.000 --> 00:06:38.000
Es que para el que no lo sepa GPT tiene un motor de construcción de consultas para base de datos tanto SQL como no SQL.

00:06:38.000 --> 00:06:43.000
O sea, se le dan muy muy bien las bases de datos y por lo tanto permite

00:06:43.000 --> 00:06:48.000
vale, hacer repeticiones y todo tipo, tú simplemente le explicas tu

00:06:48.000 --> 00:06:53.000
modelo de datos y una vez le has explicado cuál es tu modelo de datos o

00:06:53.000 --> 00:06:58.000
incluso puedes hacer una exportación de tu modelo de datos en sql y y se

00:06:58.000 --> 00:07:03.000
la das al interpretador de código como un fichero anexo y eso hace que

00:07:03.000 --> 00:07:08.000
él comprenda cuál es tu modelo y y le dices pues hazme una consulta que

00:07:08.000 --> 00:07:16.000
me recupere esto y te la da hecha y es buenísimo haciendo eso,

00:07:16.000 --> 00:07:25.000
pero yo no no lo, o sea, dije, ya, ya no sabía qué hacer, ya me estaba volviendo un poco loco, y dije, pues voy a probar esto, y y alucinado.

00:07:25.000 --> 00:07:29.000
Y ahora ahora luego me sentía con superpoderes decía, pedirme más, pedirme más cosas.

00:07:29.000 --> 00:07:30.000
Lo que queráis.

00:07:30.000 --> 00:07:31.000
¿Qué métrica quiere?

00:07:31.000 --> 00:07:32.000
Lo que queráis.

00:07:32.000 --> 00:07:33.000
Sí, señor Stark.

00:07:33.000 --> 00:07:36.000
Yarbiz, dame una nueva métrica para hacer él.

00:07:37.000 --> 00:07:38.000
Sí señor Stark.

00:07:39.000 --> 00:07:43.000
Sí, sí, la verdad es que que me salvo me salvo el culo constante.

00:07:43.000 --> 00:07:47.000
Madre mía, pues yo es algo que que recomiendo a todo el mundo, el uso de

00:07:47.000 --> 00:07:51.000
ChagPT, yo creo que es algo que deberíamos plantearnos pero vamos sí o

00:07:51.000 --> 00:07:57.000
sí, ¿de acuerdo?

00:07:57.000 --> 00:08:02.000
Sí o sí, pues porque a ver que sí, que está entrenado hasta finales de

00:08:02.000 --> 00:08:07.000
dos mil veintiuno y hay parte de las APIs que no conoce y tal pero es que

00:08:07.000 --> 00:08:12.000
con ChagPD tienes web pilot entonces le puedes dar una fuente de

00:08:12.000 --> 00:08:17.000
información externa de una página web y él la interpreta y te da lo que

00:08:17.000 --> 00:08:22.000
sea incluso le puedes explicar vale yo hice una prueba precisamente

00:08:22.000 --> 00:08:30.000
hablando de arquitectura de lo que hemos hablado hoy en la que le pedí, ¿vale?

00:08:30.000 --> 00:08:35.000
Porque quería sentar un poco los conceptos, ¿vale?

00:08:35.000 --> 00:08:38.000
Porque yo hago clean architecture, ¿vale?

00:08:39.000 --> 00:08:40.000
Lo hablaremos de ello.

00:08:40.000 --> 00:08:46.000
Pero este Clean architection que yo aplico es el Julio architection, ¿vale?

00:08:46.000 --> 00:08:50.000
O sea, es el que a mí me han dado a entender porque es así pero luego

00:08:50.000 --> 00:08:54.000
cuando yo he ido viendo los distintos componentes que yo utilizo es cuando

00:08:54.000 --> 00:08:58.000
yo me he dado cuenta de decir esto se parece mucho a lo que llaman clean

00:08:58.000 --> 00:09:02.000
architection, ¿de acuerdo?

00:09:02.000 --> 00:09:10.000
Entonces lo que quería hacer era vestir mi arquitectura de la clean architexure real, ¿de acuerdo?

00:09:10.000 --> 00:09:18.000
Entonces le pedí a Charge PT que me explicara, como es esaclina architecture, qué componentes tiene, cómo se llama, etcétera.

00:09:18.000 --> 00:09:23.000
Y entonces pues él me explicó que bueno pues el concepto de los citadores

00:09:23.000 --> 00:09:28.000
y el concepto de varios elementos distintos vale entonces cuando yo cuando

00:09:28.000 --> 00:09:33.000
yo lo que hice fue preguntarle o que me explicara eso vale le dije cómo

00:09:33.000 --> 00:09:38.000
podía aplicar ese concepto de cleaner direction a Suip UI y sobre Suip UI

00:09:38.000 --> 00:09:43.000
en combined está entrenado con la versión tres de Suip UI, me dio la

00:09:43.000 --> 00:09:50.000
solución en base a como yo lo hago normalmente.

00:09:51.000 --> 00:09:56.000
Cierto que lo llamó de otra manera, lo estructuró mínimamente distinto, pero bueno ya más o menos lo tenía puesto.

00:09:57.000 --> 00:10:02.000
Pero claro, no tiene nada que ver con lo que se le observará entonces yo

00:10:02.000 --> 00:10:07.000
le expliqué a Charge PD cómo era o sea cómo es la nueva base de

00:10:07.000 --> 00:10:13.000
arquitectura con observable.

00:10:13.000 --> 00:10:17.000
Entonces yo el mi mi pregunta que fue un párrafo no sé cuánta línea, le

00:10:17.000 --> 00:10:21.000
expliqué detalladamente a HGPT, cuáles son los cambios que ha hecho

00:10:21.000 --> 00:10:25.000
Apple para el nuevo paradigma, arroba observable, y le planteé la

00:10:25.000 --> 00:10:29.000
pregunta de si eso me permitiría que yo ya sabía que sí, si eso me

00:10:29.000 --> 00:10:33.000
permitiría separar los distintos control, digamos, los distintos

00:10:33.000 --> 00:10:37.000
iteradores que llevan la lógica de negocio de cada parte del modelo,

00:10:37.000 --> 00:10:41.000
fuera del view model, de forma que estuvieran conectados a través de el

00:10:41.000 --> 00:10:50.000
observable, de un observable a otro observable.

00:10:50.000 --> 00:10:56.000
Entonces le expliqué cómo funcionaba y ocho horprecha me creó el código

00:10:56.000 --> 00:11:02.000
Funcionando perfectamente En base a como yo le había explicado que eran

00:11:02.000 --> 00:11:08.000
los cambios Entonces a mí me hace mucha gracia y el otro día hablando en

00:11:08.000 --> 00:11:15.000
privado con Oliver me lo confirmaba, hay mucha gente que dice no no es que Achage P tres.

00:11:15.000 --> 00:11:18.000
Es que lo han capado, es que le han quitado capacidades.

00:11:18.000 --> 00:11:20.000
Es que ya no funciona igual que es de bien que antes.

00:11:20.000 --> 00:11:21.000
No, no, a ver.

00:11:21.000 --> 00:11:25.000
Chage pt si ahora lo usas para cosas de primer nivel de dime que como hoy o

00:11:25.000 --> 00:11:29.000
cómo funciona tal cosa o no sé que no, eso, o sea, ahí sí, ahí las

00:11:29.000 --> 00:11:35.000
respuestas son mucho peores.

00:11:35.000 --> 00:11:39.000
Pero si tú trabajas con ChagPT, le explicas, le cuentas, creas una

00:11:39.000 --> 00:11:43.000
conversación, creas un trabajo en equipo, le vas explicando las cosas por

00:11:43.000 --> 00:11:48.000
pasos, etcétera.

00:11:49.000 --> 00:11:52.000
La capacidad que tiene es la leche.

00:11:53.000 --> 00:11:57.000
Es muchísimo más alta de lo que ha tenido nunca y va mejorando día a día.

00:11:57.000 --> 00:12:03.000
Vale, o sea que la verdad que es una cosa bastante, bastante impresionante.

00:12:05.000 --> 00:12:08.000
Pues sí, la verdad es que sí que, o sea, es que ha sido un, cuando

00:12:08.000 --> 00:12:11.000
salió, ya era, bueno, fue a principios de año, bueno empezó a finales

00:12:11.000 --> 00:12:14.000
de la año pasado, pero bueno, el boom fue por febrero, marzo por ahí,

00:12:14.000 --> 00:12:20.000
que es que está ahí a la vuelta de la esquina.

00:12:20.000 --> 00:12:22.000
O sea, y además la cosa es que ahora al hacerlo público, una de las cosas

00:12:22.000 --> 00:12:24.000
buenas que tiene, es que todo el mundo que lo está usando está

00:12:24.000 --> 00:12:27.000
reforzando el entrenamiento.

00:12:28.000 --> 00:12:31.000
De hecho creo que decían que no iban o no han sacado chance pt cuatro pero

00:12:31.000 --> 00:12:34.000
a lo mejor no había una versión cinco, una versión cuatro punto cinco

00:12:34.000 --> 00:12:37.000
porque era más interesante en seguir entrenando con todo el feedback que

00:12:37.000 --> 00:12:40.000
estaba viendo a la, a la versión actual y yo en julio espero que tú

00:12:40.000 --> 00:12:43.000
hayas tenido una vuelta, una vuelta a la marcha menos accidentada,

00:12:43.000 --> 00:12:51.000
contarnos qué has estado haciendo.

00:12:52.000 --> 00:12:57.000
Pues básicamente preparar el swift de developer program, preparar la

00:12:57.000 --> 00:13:02.000
formación que comenzamos ahora en octubre, en el que mañana ya se les

00:13:02.000 --> 00:13:07.000
envía a los alumnos que ya han pagado la matrícula, la perforación.

00:13:07.000 --> 00:13:10.000
Entonces estamos dando los últimos toques a esa perforación, una

00:13:10.000 --> 00:13:13.000
perforación donde bueno pues que tenemos en esa preformación es

00:13:13.000 --> 00:13:18.000
introducción a la programación.

00:13:19.000 --> 00:13:30.000
Lo que tenemos es, pues, enseñarles la base de cómo programar, es un algoritmo, conceptos fundamentales, diagramas de flujo, pseudo código En fin.

00:13:32.000 --> 00:13:33.000
Las bases, ¿no?

00:13:33.000 --> 00:13:39.000
Yo una cosa que que he detectado que de hecho lo comentaba hoy en en

00:13:39.000 --> 00:13:45.000
Lincoln, es que la gente parece que se ha olvidado de lo que es aprender a programar.

00:13:45.000 --> 00:13:55.000
Es decir, al final hay un montón de cursos, un montón de formaciones, que empiezan, bueno, los que empiezan directamente a enseñarte Suip JOY.

00:13:55.000 --> 00:13:59.000
Y luego ya de paso ya te iré contando que Suip o sea esos ya son para para

00:13:59.000 --> 00:14:03.000
flipar vale esa es el error garrafal número uno de la historia sobre todo

00:14:03.000 --> 00:14:07.000
si es un from giro tu giro vale si es un empieza desde cero sin saber nada

00:14:07.000 --> 00:14:12.000
de programación, o sea estás condenado al fracaso.

00:14:13.000 --> 00:14:18.000
Pero tú y yo sabemos que cuando uno empieza lo que tiene que hacer es ir a lo básico.

00:14:18.000 --> 00:14:22.000
Yo cuando empecé en formación profesional de informática de gestión,

00:14:22.000 --> 00:14:26.000
allá por los años noventa del siglo pasado, primeros de los noventa del siglo pasado

00:14:26.000 --> 00:14:27.000
con tarjetas perforadas.

00:14:28.000 --> 00:14:30.000
Bueno no llegué pero casi.

00:14:30.000 --> 00:14:34.000
De hecho el primer ordenador que tuve para aprender Pascal, que fue el

00:14:34.000 --> 00:14:38.000
primer lenguaje que yo aprendí, Tutu no Pascal tres, pues llegó un

00:14:38.000 --> 00:14:42.000
momento en el que el programa que hice ocupaba demasiado y me dio un error

00:14:42.000 --> 00:14:47.000
de two men y lynes.

00:14:49.000 --> 00:14:53.000
Sería demasiada día de código era como pero tú que sesenta es pensado

00:14:53.000 --> 00:14:57.000
que esto es un ordenador de la NASA, filtro a prisa, porque era un un

00:14:57.000 --> 00:15:01.000
ordenador ochenta ochenta y ocho de intel con disco de tres con disco de

00:15:01.000 --> 00:15:07.000
cinco y cuarto de trescientos sesenta k y monitor de fósforo verde.

00:15:07.000 --> 00:15:11.000
Ese era el ordenador que teníamos a primeros de los noventa en el

00:15:11.000 --> 00:15:15.000
instituto donde yo estudié, que fue el instituto Saidin Vergeles en

00:15:15.000 --> 00:15:19.000
Granada, ¿vale?

00:15:19.000 --> 00:15:22.000
Y fue donde estudié formación -- Porque

00:15:22.000 --> 00:15:25.000
quería estudiar las bases, porque había poco más encima de la base.

00:15:26.000 --> 00:15:27.000
Bueno, básicamente.

00:15:27.000 --> 00:15:33.000
De hecho en el en primero de FP dos dimos Pascal, en segundo vimos lenguaje

00:15:33.000 --> 00:15:39.000
ensamblador de x ochenta y seis, de ochenta ochenta y seis, que a mí me

00:15:39.000 --> 00:15:45.000
encantó, o sea, el lenguaje ensamblador me flipaba, soy así de raro en el mundo.

00:15:45.000 --> 00:15:47.000
Era el único al que le gustaba eso.

00:15:47.000 --> 00:15:48.000
La clase creo yo.

00:15:50.000 --> 00:15:52.000
Y también dimos Cobol.

00:15:56.000 --> 00:16:00.000
El tener que escribir en las columnas ocho, doce y dieciséis porque si no,

00:16:00.000 --> 00:16:05.000
no se compilaba y la, bueno, bueno, bueno, bueno, aquello era lo más tranquilo.

00:16:05.000 --> 00:16:08.000
ensamblador, sí, sí que di, sí que di en la carrera.

00:16:08.000 --> 00:16:10.000
De hecho, lo hacíamos era como muy muy comentado porque lo hacíamos con

00:16:10.000 --> 00:16:12.000
un microprocesador que se llamaba el el mips que era el de la Playstation

00:16:12.000 --> 00:16:16.000
uno o algo así,

00:16:16.000 --> 00:16:17.000
¿sabes?

00:16:17.000 --> 00:16:22.000
Mira como hay joven, estoy programando en el de cara de aquellas, estoy programando en el en el procesador.

00:16:23.000 --> 00:16:27.000
Es que al final es interesante porque a ver, ahora mismo y yendo a swift,

00:16:27.000 --> 00:16:31.000
tú la la línea que escribes en swift pasa en una cantidad de movidas,

00:16:31.000 --> 00:16:35.000
hasta que hace algo esa línea tanto como llega el procesador pero como

00:16:35.000 --> 00:16:39.000
luego eso que pones mueve un icono o yo qué sé o hace un botón o sea

00:16:39.000 --> 00:16:43.000
todo lo que pasa por ahí en medio hay muchísimas capas que que que de

00:16:43.000 --> 00:16:47.000
aquellas ni ni se ni se habían a lo mejor alguien la había pensado pero

00:16:47.000 --> 00:16:51.000
era pero no se podía realizar porque no había potencia suficiente para

00:16:51.000 --> 00:16:57.000
realizar todo eso.

00:16:57.000 --> 00:17:00.000
Y ahora lo damos como un poco por por sentado.

00:17:00.000 --> 00:17:04.000
Os pones soy UI pues pones botón y ya está le pones un título y una

00:17:04.000 --> 00:17:08.000
acción y venga ya tienes un botón perfectamente y claro a veces no nos

00:17:08.000 --> 00:17:12.000
damos cuenta de por todo lo que lo que hay que pasar, pues eso, por

00:17:12.000 --> 00:17:16.000
ejemplo, en el lenguaje ensamblador, pues eso lo tenías que decir a los a

00:17:16.000 --> 00:17:22.000
qué registro tenías que mover cada cosa, cada dato, luego para leer de memoria.

00:17:24.000 --> 00:17:26.000
Es el libro gordo de Peter.

00:17:28.000 --> 00:17:34.000
Tenías que mover, o sea para ir que hacer como tres o cuatro instrucciones para sacar un dato de memoria primero.

00:17:34.000 --> 00:17:39.000
Primero lo tenemos que sacar de la memoria y meter en el procesador y eso ya eran varias líneas de código.

00:17:39.000 --> 00:17:47.000
Sea que todo lo que decimos que ahora se hace directamente con, pues con una línea de suite, pues ahí hay una una complejidad tremenda.

00:17:47.000 --> 00:17:51.000
Y de lo que comentas de de no ir a las bases, precisamente hoy estoy

00:17:51.000 --> 00:17:55.000
hablando con con un compañero que les de de bacán y y bueno un saludo a

00:17:55.000 --> 00:17:59.000
Alex que nos oye y me decía Joel pues me animaba a hacerme un curso ahí

00:17:59.000 --> 00:18:03.000
de Suiphe, de Suiphe y de Suiphe y yo ahí tal y se ha puesto oh sorpresa

00:18:03.000 --> 00:18:08.000
con el de Paul Hudson, de cien días con Swiss.

00:18:08.000 --> 00:18:11.000
Y le pregunté lo primero y pregunté, ¿y cuánto dedica a Swiss?

00:18:11.000 --> 00:18:15.000
Y me dijo creo que hasta el día quince es solo Swiss.

00:18:16.000 --> 00:18:19.000
Y claro yo le dije a ver, yo en tu caso te diría que vale porque tú sabes

00:18:19.000 --> 00:18:22.000
programar o sea, tú tienes mucha experiencia ya programando con

00:18:22.000 --> 00:18:27.000
type-script y javascript, node, y vale.

00:18:27.000 --> 00:18:38.000
Pero joder, un curso de cien días de Suge UI, que es alguien que cuando dices tú, sino tu giro con quince días a mí se me hace muy poco.

00:18:38.000 --> 00:18:40.000
Pero además, ¿cuántas horas al día?

00:18:40.000 --> 00:18:42.000
Porque eso también es importante.

00:18:42.000 --> 00:18:50.000
Porque si al final yo por ejemplo con el switch de lopper program, cuando ya la gente ve esta perforación, ¿vale?

00:18:50.000 --> 00:18:55.000
Cuando ya la gente ha aprendido esta metodología cuando hace los cuarenta

00:18:55.000 --> 00:19:00.000
ejercicios que les pongo de algoritmo y pseudocódigo y diagramas de

00:19:00.000 --> 00:19:07.000
flujo, etcétera, pues al final bueno pues si pueden empezar ¿no?

00:19:07.000 --> 00:19:12.000
A ver swift y swift nosotros lo vamos viendo pues aproximadamente creo que

00:19:12.000 --> 00:19:17.000
son dos semanas y pico más o menos depende de cómo funcione el grupo a

00:19:17.000 --> 00:19:22.000
nivel general porque nunca van todos los grupos al mismo ritmo pero en

00:19:22.000 --> 00:19:27.000
principio suelen ser un par de semanas semana entre dos y tres semanas, ¿vale?

00:19:27.000 --> 00:19:32.000
Pero claro, son dieciséis horas de clase a la semana, ¿vale?

00:19:32.000 --> 00:19:41.000
Es decir, estaríamos hablando de que estamos viendo Swift aproximadamente entre treinta y dos y cuarenta horas de formación.

00:19:41.000 --> 00:19:46.000
Entonces eso, más todo el refuerzo, más los ejercicios que se les pone,

00:19:46.000 --> 00:19:52.000
el trabajo que tienen que ellos que hacer, etcétera, etcétera, Pues sí permite.

00:19:52.000 --> 00:19:55.000
Ahora, si son quince días, donde estás echando como mucho media hora una

00:19:55.000 --> 00:19:58.000
hora que no creo que sea más, lo que le exija esta formación, pues

00:19:58.000 --> 00:20:02.000
obviamente no es suficiente.

00:20:03.000 --> 00:20:04.000
No es suficiente.

00:20:04.000 --> 00:20:10.000
Y sobre todo a ver que la formación que tú das tú ves cómo va la clase, pones más o menos, más más rápido,

00:20:10.000 --> 00:20:14.000
voy adaptando en tiempo real, según cómo van, de hecho lo más complicado

00:20:14.000 --> 00:20:18.000
muchas veces es adaptarse a el grupo en general, porque dentro del grupo

00:20:18.000 --> 00:20:22.000
hay gente que más rápido, hay gente que va más lento y entonces tienes

00:20:22.000 --> 00:20:26.000
que dar clase para todos, no puedes ni aburrir al que tarda menos, ni hay

00:20:26.000 --> 00:20:31.000
y dejar que se pierda el que tarda más, ¿vale?

00:20:31.000 --> 00:20:36.000
Entonces en ese sentido tienes que llevar un poco el control ¿no?

00:20:36.000 --> 00:20:42.000
Pero bueno, necesitas una serie de horas, incluso si ya sabes programación, ¿vale?

00:20:42.000 --> 00:20:48.000
Porque al final De hecho es una cosa que que que me ha pasado siempre, ¿vale?

00:20:48.000 --> 00:20:49.000
Y tú lo has vivido.

00:20:50.000 --> 00:20:54.000
La gente llega es como no no pero yo ya sé swift y yo siempre digo lo mismo, ¿crees?

00:20:54.000 --> 00:20:55.000
Que sabe Swift.

00:20:56.000 --> 00:21:02.000
lo he comentado yo tenía dos o tres aplicaciones publicadas en el store cuando hice el curso de upgrade.

00:21:02.000 --> 00:21:03.000
Sí, sí, o sea,

00:21:04.000 --> 00:21:11.000
y sin embargo pues no cuando hiciste el curso con con nosotros pues después de

00:21:11.000 --> 00:21:16.000
una pila de cosas que no que en en la vida que se imagina o que

00:21:16.000 --> 00:21:22.000
se podían hacer, pero lo que le pasa pues a mucha gente, o sea que en ese sentido, y al final pues por ahí empezamos.

00:21:22.000 --> 00:21:27.000
Fíjate esta es la la letra del julio de los que estéis viéndolo en

00:21:27.000 --> 00:21:32.000
vídeo vale esta es la letra del pseudo código del julio de hace treinta

00:21:32.000 --> 00:21:37.000
años usted haciendo pseudo código de algoritmos y de elementos y tal,

00:21:37.000 --> 00:21:42.000
estructuras etcétera etcétera pues, en fin, ahí tenía los apuntes en

00:21:42.000 --> 00:21:47.000
el lado, que esto pues lo he encontrado en casa de mis padres y y nadie me

00:21:47.000 --> 00:21:54.000
lo he traído pues porque la verdad que es es sumamente interesante.

00:21:55.000 --> 00:21:57.000
Y como digo pues es es el comienzo, ¿no?

00:21:57.000 --> 00:22:02.000
Y de hecho incluso esta tarde determinado de editar un elemento que se ha

00:22:02.000 --> 00:22:07.000
metido nuevo que es el tema de un glosario de términos vale es decir que

00:22:07.000 --> 00:22:12.000
que se coja y que se expliquen términos que en muchas ocasiones no están

00:22:12.000 --> 00:22:17.000
tan claros, esto es algo que nos han pedido los propios alumnos y que se

00:22:17.000 --> 00:22:24.000
ha incorporado a la formación, ¿vale?

00:22:24.000 --> 00:22:28.000
La gente antes del del propio bootcamp nos dijo oye es que son un montón

00:22:28.000 --> 00:22:32.000
de términos que se hablan que si API res que si del http, que si él no

00:22:32.000 --> 00:22:36.000
sé qué, que si en fin, un montón de cosas que que que si el lado

00:22:36.000 --> 00:22:40.000
servidor, que si no sé qué, son cosas que claro, nosotros damos por

00:22:40.000 --> 00:22:44.000
hecho que que es algo que ya conocemos, pero no todo el mundo tiene por

00:22:44.000 --> 00:22:48.000
qué conocer esos conceptos, ¿no?

00:22:48.000 --> 00:22:49.000
Un shock, ¿no?

00:22:49.000 --> 00:22:51.000
En un sistema una chip, cosas así, ¿no?

00:22:51.000 --> 00:22:55.000
Entonces pues hemos hecho ahí un un glosario de términos que al final

00:22:55.000 --> 00:22:59.000
pues es una hora y pico de de de vídeo pre producido pues para que tengan

00:22:59.000 --> 00:23:04.000
también esos conceptos y que no se les escapen, ¿no?

00:23:04.000 --> 00:23:09.000
Entonces bueno pues la verdad que que, bueno, pues es un poco lo que hemos estabilidad en estos días.

00:23:10.000 --> 00:23:15.000
A ver, yo yo sé que lo he dicho mil veces, pero es que la verdad lo estáis suyos y te lo está diciendo Julio.

00:23:15.000 --> 00:23:19.000
La preparación que lleva, porque hay gente que dará cursos de de Suite,

00:23:19.000 --> 00:23:23.000
de Suite, de Suite, de Suite UI, de Suite, de lo que quieras, pero te digo

00:23:23.000 --> 00:23:27.000
que actualizado a justo lo último que acaba de salir.

00:23:27.000 --> 00:23:31.000
O sea que, que Julio se ha estado pegando con la beta y ahora, ahora nos

00:23:31.000 --> 00:23:35.000
contará los desvelos que le ha dado con las nuevas vetas y con las que ya

00:23:35.000 --> 00:23:39.000
no sólo la veta de los sistemas pero como sabéis hay las digamos las

00:23:39.000 --> 00:23:43.000
cosas de información y las APIs también están en beta vale y van

00:23:43.000 --> 00:23:47.000
cambiando durante cuando desde que lo presentan en en junio hasta que sale

00:23:47.000 --> 00:23:51.000
definitivamente de septiembre van cambiando.

00:23:51.000 --> 00:23:55.000
Pues no solo se contenta con eso Julio, sino que eso recoge feedback todos los años.

00:23:55.000 --> 00:23:59.000
Mira pues, este año, un glosario de de término, la verdad es que eso es

00:23:59.000 --> 00:24:03.000
que sí que está bien, sobre todo en en este mundo que por cierto por

00:24:03.000 --> 00:24:07.000
desgracia, pues eso cada año viene Apple el la primera, segunda semana de

00:24:07.000 --> 00:24:13.000
de junio y dice, ¿te los acordé del año pasado?

00:24:13.000 --> 00:24:16.000
Pues mira, la mitad ya, la mitad o la tenéis que saber también para

00:24:16.000 --> 00:24:19.000
soporte otras versiones anteriores, pero mira, aquí tenéis todo esto

00:24:19.000 --> 00:24:23.000
nuevo que es lo que recomendamos usar.

00:24:24.000 --> 00:24:29.000
Pues sí, de hecho incluso que de hecho te lo te acuérdate que te lo

00:24:29.000 --> 00:24:34.000
envié el otro día con el la la nueva animación que ha hecho para las

00:24:34.000 --> 00:24:39.000
para explicar la arquitectura nueva de observable y tal y cual que ha

00:24:39.000 --> 00:24:44.000
actualizado el tema de Shibbi, para ahora, para esta formación, entonces

00:24:44.000 --> 00:24:49.000
pues ya está actualizado con cómo funciona, en años diecisiete, los

00:24:49.000 --> 00:24:54.000
cambios que tiene con respecto a dieciseis, cómo se conectan las

00:24:54.000 --> 00:24:59.000
distintas partes, etcétera, al final la introducción a Suip YoAI son

00:24:59.000 --> 00:25:05.000
más de cien slides dentro del came out para explicar todo eso, o sea que.

00:25:05.000 --> 00:25:08.000
¿De dónde, de dónde salimos y a dónde llegamos?

00:25:08.000 --> 00:25:12.000
Sí, sí, totalmente, o sea, y además esos slides ya están actualizados

00:25:12.000 --> 00:25:16.000
con el hash preview de scope de quince, con el código actualizado, con

00:25:16.000 --> 00:25:20.000
todo lo nuevo, o sea que en ese sentido pues bien llevamos todo el verano

00:25:20.000 --> 00:25:24.000
pero bueno como dice Johnny al final pues no quedan ahora mismo, momento

00:25:24.000 --> 00:25:28.000
en el que estamos grabando solamente once plazas de las cuarenta que se

00:25:28.000 --> 00:25:32.000
han convocado, o sea que bueno la verdad que eso quiere decir que la gente

00:25:32.000 --> 00:25:42.000
está lo está valorando y la verdad pues que es algo que se agradece no.

00:25:43.000 --> 00:25:46.000
Pues sí y Julio si te parece vamos como la actualidad manda ¿vale?

00:25:46.000 --> 00:25:49.000
Vamos a mostrar a la siguiente sección de las noticias.

00:26:01.000 --> 00:26:05.000
Y claro las fechas que estamos no podemos dejar pasar ni mucho menos por lo

00:26:05.000 --> 00:26:09.000
que está haya a las puertas, porque ya sabemos la fecha que presenta,

00:26:09.000 --> 00:26:13.000
bueno, de la Kino de Apple de septiembre, donde obviamente pues se

00:26:13.000 --> 00:26:19.000
presenta seguro el iPhone, luego ya prácticamente seguro el iPhone.

00:26:19.000 --> 00:26:20.000
Wonder Last

00:26:21.000 --> 00:26:22.000
eso.

00:26:22.000 --> 00:26:26.000
Yo estaba viendo mi enterado, mira a ver si he estado desconectado o o que

00:26:26.000 --> 00:26:30.000
si he tenido marrones esta semana que no le he prestado atención ni a ni

00:26:30.000 --> 00:26:35.000
a todo el la leyenda que se forma por el logo y el eslogan.

00:26:36.000 --> 00:26:41.000
Bueno, la gente ya sabe los colores de los nuevos iphones, gracias a la al

00:26:41.000 --> 00:26:46.000
al logo, aparte ya se da por hecho de que es una alegoría de el chasquido

00:26:46.000 --> 00:26:51.000
de Thanos por ese por ese polvillo así, no sé qué, porque lo que ha

00:26:51.000 --> 00:26:56.000
hecho es dar un chasquido para que desaparezca el Lightning y entre USBF y

00:26:56.000 --> 00:27:03.000
y también sé los colores y tal.

00:27:05.000 --> 00:27:07.000
A mí se me pregunta por el luego digo.

00:27:07.000 --> 00:27:09.000
Voy a dejar las drogas que son malas.

00:27:09.000 --> 00:27:10.000
Las drogas son malas.

00:27:10.000 --> 00:27:12.000
Abusar de la droga no es bueno.

00:27:12.000 --> 00:27:21.000
Un poquito de bien cuando, mi hijo no, mi hijo droga no, un porrito de bien cuando, no abusé.

00:27:21.000 --> 00:27:25.000
La verdad es que la verdad es que cada vez peor es que o sea no hace más que empeorar.

00:27:25.000 --> 00:27:26.000
Que no hace más que empeorar.

00:27:26.000 --> 00:27:27.000
No hace más que empeorar.

00:27:29.000 --> 00:27:32.000
Pero sacando noticias noticias en medios serios.

00:27:32.000 --> 00:27:36.000
De no, no, es que el color de tal indica que habrá un

00:27:36.000 --> 00:27:38.000
caché filtran los colores.

00:27:38.000 --> 00:27:46.000
Un lado mentolado de tono metálico o aclarado de María.

00:27:48.000 --> 00:27:49.000
Solo tengo una duda, Julio.

00:27:49.000 --> 00:27:53.000
Bueno, tengo varias, pero si quieres te, y además me gusta hablar contigo

00:27:53.000 --> 00:27:57.000
porque Jorge, eso sabéis y seguramente que tengamos el el meganálisis

00:27:57.000 --> 00:28:01.000
donde nos lo aclararás porque yo y de hecho antes cuando estábamos en el

00:28:01.000 --> 00:28:05.000
cuando entramos en directo estamos hablando de ello, que por ejemplo el

00:28:05.000 --> 00:28:09.000
procesador a dieciséis, pues uno de los problemas que tiene es que tiene

00:28:09.000 --> 00:28:13.000
muchos componentes, pero como no llegó esa arquitectura de tres

00:28:13.000 --> 00:28:17.000
nanometros, pues no es suficientemente eficiente, por decirlo de alguna

00:28:17.000 --> 00:28:21.000
manera, y genera mucho calor.

00:28:21.000 --> 00:28:25.000
Y el problema este del vateríage, vamos a llamarle mira ya está.

00:28:25.000 --> 00:28:32.000
Vateríage ve que los iPhone catorce Pro Sí, porque los los catorce normal llevan el chip del año pasado.

00:28:34.000 --> 00:28:36.000
Se han calentado mucho, con lo cual tiene, pues el mío por ejemplo tenía,

00:28:36.000 --> 00:28:38.000
el no tuyo tiene un noventa y tres, lo que dijiste, el mío tiene un

00:28:38.000 --> 00:28:42.000
noventa por ciento que es mucho.

00:28:42.000 --> 00:28:43.000
Vale.

00:28:43.000 --> 00:28:44.000
Mucha degradación.

00:28:44.000 --> 00:28:45.000
Para un año.

00:28:46.000 --> 00:28:58.000
Entonces mi pregunta es, sabiendo o casi confirmando que el A diecisiete tendrá esos tres nanometros, Yo, mi deseo es que me da igual la potencia.

00:28:59.000 --> 00:29:08.000
O sea, quiero decir, prefiero que base en el que da diecisiete se centre en tener una mucho mejor mucha mejor batería.

00:29:11.000 --> 00:29:14.000
A ver, no sé cuán equivocado estoy.

00:29:14.000 --> 00:29:15.000
Por suerte mucho.

00:29:20.000 --> 00:29:26.000
La nueva arquitectura de tres nanometros de los a diecisiete va a

00:29:26.000 --> 00:29:32.000
representar un la mejora de la eficiencia energética de según datos

00:29:32.000 --> 00:29:38.000
filtrados de la línea de producción de los chips de tres nanometros, del

00:29:38.000 --> 00:29:44.000
proceso de fabricación de tres nanometros, parte filtrados, parte de

00:29:44.000 --> 00:29:50.000
datos hechos públicos por la propia DCMC, puede llegar a mejorar hasta un

00:29:50.000 --> 00:29:56.000
treinta por ciento la eficiencia energética.

00:29:57.000 --> 00:30:01.000
Es decir, que a misma exacta potencia.

00:30:02.000 --> 00:30:06.000
Un A-diecisiete generaría un treinta por ciento menos de calor que un

00:30:06.000 --> 00:30:10.000
dieciseis y consumiría por lo tanto lo he dicho mal consumiría un

00:30:10.000 --> 00:30:14.000
treinta por ciento de energía consumiría un treinta por ciento menos de

00:30:14.000 --> 00:30:18.000
energía que una dieciseis y por lo tanto generaría menos calor, porque

00:30:18.000 --> 00:30:26.000
cuanto menos energía consumes, menos calor generas.

00:30:27.000 --> 00:30:30.000
Ese es el funcionamiento, ¿de acuerdo?

00:30:31.000 --> 00:30:32.000
Entonces ¿qué es lo que sucede?

00:30:33.000 --> 00:30:37.000
Sucede que papel tiene que poner bajo la tiene que poner en la mesa el

00:30:37.000 --> 00:30:41.000
decir qué voy a hacer este año voy a aprovechar esa mejora de eficiencia

00:30:41.000 --> 00:30:45.000
energética y voy a dejar el a diecisiete con la misma potencia que tiene

00:30:45.000 --> 00:30:49.000
la dieciseis a nivel de reloj, a nivel de gigahercios y a nivel de

00:30:49.000 --> 00:30:57.000
núcleos, ¿vale?

00:30:57.000 --> 00:31:01.000
Porque el problema es ponerle más núcleos o ponerle más transistores a

00:31:01.000 --> 00:31:05.000
cada núcleo para que el mismo núcleo claro alguno puede decir no, es que

00:31:05.000 --> 00:31:09.000
el A dieciseis tiene los mismos núcleos que una quince, sí, pero la que

00:31:09.000 --> 00:31:13.000
cantidad de micro transistores que tiene una dieciseis es más y por lo

00:31:13.000 --> 00:31:17.000
tanto a mismos núcleos va más rápido aparte de que va a más

00:31:17.000 --> 00:31:21.000
gigahercios entonces si cada núcleo tiene más componentes o le ponen

00:31:21.000 --> 00:31:25.000
algún núcleo más que es lo que han hecho con los m dos los m dos son

00:31:25.000 --> 00:31:29.000
iguales tiene el mismo sistema de fabricación que los m uno me refiero en

00:31:29.000 --> 00:31:33.000
cinco nanometros solo que el m dos tiene la segunda generación de

00:31:33.000 --> 00:31:37.000
fabricación en cinco nanometros que es la que corresponde al a quince

00:31:37.000 --> 00:31:41.000
mientras que el m1 tiene la del a catorce que es la primera generación,

00:31:41.000 --> 00:31:56.000
la primera iteración de la construcción en cinco nanometros de TSMC.

00:31:57.000 --> 00:31:58.000
Entonces, ¿qué es lo que sucede?

00:31:58.000 --> 00:32:03.000
Que cuando yo Tengo ese esa brutal, porque las predicciones antes de la

00:32:03.000 --> 00:32:08.000
fabricación de DCSMC era una mejora entre el quince y el veinte, y

00:32:08.000 --> 00:32:14.000
después de imprimir las obleas se dieron cuenta al medir de que llegaba un treinta.

00:32:14.000 --> 00:32:19.000
O sea que la la la litografía ha salido mucho mejor de lo esperado.

00:32:21.000 --> 00:32:25.000
Pero si Apple decide que quiere salir en la foto diciendo, has andado

00:32:25.000 --> 00:32:29.000
chiva, has uno hace cuantos por ciento más rápido que Cuanto más sea

00:32:29.000 --> 00:32:33.000
ese porcentaje Cuando llegue la presentación y nos digan a un nuevo

00:32:33.000 --> 00:32:37.000
procesador, a diecisiete es un quince por ciento más rápido que el

00:32:37.000 --> 00:32:41.000
anterior a dieciseis quiere decir que le han quitado un quince por ciento

00:32:41.000 --> 00:32:45.000
de eficiencia energética con respecto a la mejora del treinta por lo que

00:32:45.000 --> 00:32:52.000
sí va a calentarse más.

00:32:53.000 --> 00:32:59.000
Pero No va a calentarse, es decir, va a calentarse más que si no le tocaran la potencia.

00:33:00.000 --> 00:33:03.000
Va a seguir calentándose a un quince por ciento menos, que el modelo de la

00:33:03.000 --> 00:33:06.000
dieciseis, pero como lo has hecho más rápido, vas también a perder

00:33:06.000 --> 00:33:11.000
parte de esa eficiencia, ¿vale?

00:33:11.000 --> 00:33:16.000
Por lo que lo ideal y según los rumores, Apple se estaba planteando cómo

00:33:16.000 --> 00:33:21.000
vender el nuevo chip vale porque si te acuerdas en la dieciseis

00:33:21.000 --> 00:33:26.000
prácticamente ni se habló de él en la presentación de los iPhone

00:33:26.000 --> 00:33:31.000
catorce pero de hecho nos enteramos después en análisis que tenía a

00:33:31.000 --> 00:33:36.000
RMV9 como conjunto de instrucciones, que era el primer chip de Apple que

00:33:36.000 --> 00:33:42.000
tenía este nuevo conjunto de instrucciones que ni siquiera lo tiene el M dos, ¿vale?

00:33:42.000 --> 00:33:49.000
El A dieciseis es el único chip de Apple que tiene el conjunto de instrucciones versión nueve de ARM.

00:33:50.000 --> 00:33:51.000
¿De acuerdo?

00:33:51.000 --> 00:33:58.000
Todos los demás tienen el la r m v ocho versión tres que es el que tienen desde hace bastante tiempo.

00:33:58.000 --> 00:34:03.000
Entonces, el kit de la cuestión está en que claro,

00:34:05.000 --> 00:34:15.000
en el marketing julio, claro como el marketing te vende un procesador que va igual pues diciéndote que la batería dura un treinta por ciento más

00:34:16.000 --> 00:34:20.000
ahí está el kit de la cuestión, si Apple decide a nivel de marketing,

00:34:20.000 --> 00:34:24.000
darle prioridad a el lo que es la eficiencia energética y venderlo

00:34:24.000 --> 00:34:28.000
diciéndote es un treinta por ciento más eficiente y le va a durar la

00:34:28.000 --> 00:34:32.000
batería mucho más pero luego cuando hacen los los benchmarks

00:34:32.000 --> 00:34:36.000
prácticamente no gana casi nada o a lo mejor un tres o un cuatro por

00:34:36.000 --> 00:34:40.000
ciento que sería algo coyuntural más por la propia construcción que

00:34:40.000 --> 00:34:47.000
porque realmente sea una mejora de velocidad.

00:34:47.000 --> 00:34:51.000
Claro que es más eficiente y le permite estar a tope más tiempo.

00:34:51.000 --> 00:34:55.000
Entonces ahí tendríamos un procesador que sería que no calentaría el

00:34:55.000 --> 00:34:59.000
iPhone o prácticamente, no lo calentaría y y que haría que la batería

00:34:59.000 --> 00:35:03.000
durará bastante más, ¿vale?

00:35:03.000 --> 00:35:06.000
No podemos olvidar que la CPU al final, como es un system, una CHIP, ya no

00:35:06.000 --> 00:35:09.000
solo la CPUs es todo el conjunto de elementos en general vale entonces

00:35:09.000 --> 00:35:12.000
todo eso aporta pero al estar todo construido en tres nanometros todos los

00:35:12.000 --> 00:35:18.000
componentes van a ir mejor, ¿vale?

00:35:18.000 --> 00:35:23.000
Por lo que efectivamente, de hecho, una de las cosas que hablaban sobre el

00:35:23.000 --> 00:35:28.000
posible cambio de estructura de los del Apple Vision Pro es que Apple a

00:35:28.000 --> 00:35:33.000
última hora decidiera no poner el M dos, que insisto, es cinco nanometros

00:35:33.000 --> 00:35:38.000
de segunda generación y pusiera el m tres, porque se sabe que hay ciertos

00:35:38.000 --> 00:35:47.000
problemas de calentamiento con el m2, ¿vale?

00:35:47.000 --> 00:35:52.000
Porque cuando se le exige mucho rendimiento a ese m2, un m dos que no

00:35:52.000 --> 00:35:57.000
está, o sea que tiene una disipación activa vale, es decir, el el Apple

00:35:57.000 --> 00:36:02.000
Vision Pro tiene ventiladores vale, y se escuchan muy bajito muy bajito

00:36:02.000 --> 00:36:07.000
muy bajito pero se escuchan y tiene salida de aire vale entonces si hay

00:36:07.000 --> 00:36:12.000
Apple usara un m tres permitiría que la batería durara algo más de dos

00:36:12.000 --> 00:36:17.000
horas, pero sobre todo que no tengas la sensación de tener en tu cara

00:36:17.000 --> 00:36:22.000
algo metálico que tiende a calentarse, lo cual va a ser bastante molesto

00:36:22.000 --> 00:36:27.000
si llevas mucho tiempo usándolo.

00:36:27.000 --> 00:36:32.000
Entonces esas cosas pues siempre hay que tenerlos en cuenta, entonces

00:36:32.000 --> 00:36:37.000
veremos a ver cómo nos venden el procesador partiendo de la base

00:36:37.000 --> 00:36:42.000
Pastiendo de la base de que este procesador nuevo solo va a venir en los

00:36:42.000 --> 00:36:48.000
modelos Pro, Los modelos no pro van a tener a dieciseis.

00:36:49.000 --> 00:36:54.000
Y ojito con eso, porque si van a tener a dieciseis, les va a pasar lo mismo

00:36:54.000 --> 00:36:59.000
que al Pro, que como no esté bien disipado, vamos a tener de nuevo un

00:36:59.000 --> 00:37:04.000
better gate de que al año todos los iPhone quince y quince plus se van a

00:37:04.000 --> 00:37:09.000
ir bajando la la lo que es la la duración de la batería, la vida de la

00:37:09.000 --> 00:37:18.000
batería a un porcentaje pues más bajo de lo que suele ser habitual.

00:37:19.000 --> 00:37:21.000
Pues sí, yo espero, ¿ves?

00:37:21.000 --> 00:37:22.000
No iba muy desencaminado.

00:37:23.000 --> 00:37:33.000
Porque sí, es que no, a ver, es que yo creo que ya llevo, de hecho el iPhone Doce Pro que tenía antes, jamás hubiese dicho, es que esto va lento.

00:37:34.000 --> 00:37:38.000
O sea yo creo que en el iPhone que ya llevo y si me remota anterior que

00:37:38.000 --> 00:37:42.000
tuve no me acuerdo cuál fue, Pues diría que exactamente lo mismo porque

00:37:42.000 --> 00:37:46.000
porque no se llega a un punto que el iPhone no es que no tienen no el

00:37:46.000 --> 00:37:50.000
iPhone y también a la diecisiete teniendo en cuenta que se va a utilizar,

00:37:50.000 --> 00:37:57.000
es que ni siquiera un iPad Air ya lleva la serie M.

00:37:57.000 --> 00:38:03.000
O sea vas a tener un procesador para un teléfono y para el más bajo de los iPad.

00:38:03.000 --> 00:38:08.000
Es que te sobra con lo que tiene con la potencia que tienes ahora y precisamente es lo que lo que pide la gente no sé.

00:38:08.000 --> 00:38:12.000
Yo espero a lo mejor con lo del batería y test de que que hayan tirado,

00:38:12.000 --> 00:38:16.000
bueno iba a decir que espero pero esto la decisión la habrán tomado hace

00:38:16.000 --> 00:38:20.000
medio año por lo menos.

00:38:21.000 --> 00:38:26.000
La estrategia estaba hace media año por lo menos y no sé si has oído

00:38:26.000 --> 00:38:31.000
algo bueno el USB c ya se da por late que traerán, pero bueno la

00:38:31.000 --> 00:38:36.000
sorpresita esa de que los modelos no provan a tener una versión

00:38:36.000 --> 00:38:37.000
excavada.

00:38:37.000 --> 00:38:38.000
va a ser

00:38:38.000 --> 00:38:39.000
Eso va allá.

00:38:39.000 --> 00:38:43.000
Es que lo del USB va a ser el caos.

00:38:44.000 --> 00:38:45.000
Va a ser USB caos,

00:38:46.000 --> 00:38:49.000
porque no va a valer el cable, un cable no va a valer para los

00:38:49.000 --> 00:38:54.000
Claro, es que eso va a ser un caos, es que primero, gente que va a tener

00:38:54.000 --> 00:38:59.000
los iPhone quince y quince Plus, que van a comprar el cable cutre al

00:38:59.000 --> 00:39:04.000
chichero de Amazon de oferta de turno, tal y cual, y cuando vayan a

00:39:04.000 --> 00:39:11.000
cargar, resulta que va a cargar mal o no va a cargar o no va a cargar ir carga rápida.

00:39:11.000 --> 00:39:14.000
Apple te va a decir que tiene carga rápida y no va a cargar en carga rápida.

00:39:14.000 --> 00:39:19.000
Y vas a decir que qué le pasa al iPhone que es muy malo, no, es el cable que te has comprado.

00:39:19.000 --> 00:39:26.000
Vas a intentar conectarlo para sacar la foto a través de cable o lo que sea y no va a funcionar o si funciona.

00:39:26.000 --> 00:39:33.000
Resulta que te vas a dar cuenta que la velocidad que tiene el iPhone quince, quince plus, que es lo que tú decías, es la del lightning.

00:39:33.000 --> 00:39:38.000
Es decir, que el iPhone quince y quince Plus por USB-C funciona USB dos punto cero.

00:39:39.000 --> 00:39:45.000
Cuatrocientos ochenta megabits por segundo o sea de vergüenza de

00:39:45.000 --> 00:39:51.000
vergüenza va a funcionar insisto exactamente igual que cualquier iPhone a

00:39:51.000 --> 00:39:57.000
la misma velocidad El Pro va a tener un USB c capaz de soportar cables y

00:39:57.000 --> 00:40:03.000
hasta ciento cincuenta vatios pero obviamente está topado en carga de

00:40:03.000 --> 00:40:11.000
treinta y cinco vatios que va a ser la carga rápida que va a tener este modelo Pro.

00:40:12.000 --> 00:40:17.000
Pero no solo eso, es que la coña aquí es que te vas a comprar un cable

00:40:17.000 --> 00:40:22.000
porque resulta que el Pro es Zunderbolt cuatro, USB cuatro punto cero,

00:40:22.000 --> 00:40:28.000
generación dos, topado en veinte GB segundo.

00:40:29.000 --> 00:40:35.000
USB cuatro, Thunderbolt cuatro llega a cuarenta gigas, pero Apple lo ha topado a la mitad ¿vale?

00:40:35.000 --> 00:40:36.000
¿Por qué?

00:40:36.000 --> 00:40:40.000
Porque en un dispositivo móvil tener una tasa de transferencia con un

00:40:40.000 --> 00:40:44.000
cable de cuarenta GB primero el cable te vale una pasta porque no te sirve

00:40:44.000 --> 00:40:48.000
el cable de oferta de Amazon tiene que gastar como mínimo sesenta o

00:40:48.000 --> 00:40:52.000
setenta pavos en el cable, ¿vale?

00:40:52.000 --> 00:40:57.000
Para que tenga ese ancho de banda y soporte esa cantidad de electricidad

00:40:57.000 --> 00:41:02.000
dentro del cable pero transmitir con un móvil que no tiene disipación

00:41:02.000 --> 00:41:08.000
activa más de veinte GB es una locura porque te fundes el móvil, ¿vale?

00:41:08.000 --> 00:41:17.000
Porque a más datos en el mismo espacio de tiempo por la misma salida más calor generas y la entrada se puede pegar.

00:41:17.000 --> 00:41:18.000
¿De acuerdo?

00:41:18.000 --> 00:41:22.000
Esto es algo que la gente no conoce técnicamente.

00:41:23.000 --> 00:41:28.000
Entonces la gente se va a comprar el cable barato de Amazon de diez o

00:41:28.000 --> 00:41:33.000
quince pavos veinte y no le va a servir y de pronto le va a ir lento o no

00:41:33.000 --> 00:41:38.000
le va a transmitir o se le va a cortar o no va a detectar el iPhone cuando

00:41:38.000 --> 00:41:43.000
lo conecte o no va a cargar o va a cargar en carga lenta y no va a

00:41:43.000 --> 00:41:48.000
funcionar con la rápida porque USB C es el cajón de sastre USB C es un

00:41:48.000 --> 00:41:53.000
conector universal donde entra todo puñetero protocolo del mundo desde el

00:41:53.000 --> 00:41:58.000
protocolo antiguo del mundo de la historia de cuando iban los unos y ceros

00:41:58.000 --> 00:42:03.000
por tambores, Hasta el Thunderbolt cuatro Y la gente la va a montar pero

00:42:03.000 --> 00:42:11.000
fin a fin y se va a liar una que no somos conscientes.

00:42:13.000 --> 00:42:14.000
Sí sí sí está claro.

00:42:14.000 --> 00:42:18.000
O sea por un lado vale lo del USB te lo compro pues es un carajal de tres

00:42:18.000 --> 00:42:22.000
pares de narices pero por otro lado Apple poniendo distinto, o sea,

00:42:22.000 --> 00:42:26.000
haciendo esas distinciones entre lo el estándar, haciendo esas

00:42:26.000 --> 00:42:30.000
distinciones entre entre un modelo y otro pues todavía lo baja, lo van a

00:42:30.000 --> 00:42:36.000
revisar un poco más.

00:42:36.000 --> 00:42:46.000
La verdad va a ser va a ser gracioso cuando cuando lo presenten a ver cómo lo logran vender porque porque algo tendrán que decir.

00:42:47.000 --> 00:42:50.000
Bueno, apenas voy de esperarse y luego a ver qué hace la gente.

00:42:50.000 --> 00:42:55.000
El cable de Apple oficial para poder sacar fotos y vídeos.

00:42:56.000 --> 00:43:04.000
A buena calidad, Con el nuevo iPhone quince Pro cuesta ciento cuarenta y nueve euros precio oficial en la web de Apple.

00:43:08.000 --> 00:43:09.000
Lo que hace

00:43:09.000 --> 00:43:13.000
es que se, que no, que no un poco, que no un poco de pavo.

00:43:13.000 --> 00:43:15.000
Y bueno, ¿cuál ha sido tú?

00:43:15.000 --> 00:43:22.000
Porque tú sí has probado las vetas de que lo has lo has montado en el iPad, ¿no?

00:43:22.000 --> 00:43:23.000
Creo.

00:43:23.000 --> 00:43:27.000
Y no, y al final caí en el iPhone Watch también.

00:43:27.000 --> 00:43:29.000
Bueno, en los Apple TV, en los HomePods,

00:43:30.000 --> 00:43:32.000
en todo, o sea, ha metido todo el

00:43:32.000 --> 00:43:37.000
no menos menos en el Mac, que obviamente no puedo porque tengo que seguir utilizando SCORM catorce.

00:43:38.000 --> 00:43:46.000
Que de hecho es algo que no entiendo, porque las versiones finales tú ahora actualizas y siempre te puedes bajar luego el scope catorce y qué.

00:43:46.000 --> 00:43:47.000
Ya pasó el año pasado.

00:43:47.000 --> 00:43:52.000
El año pasado scope trece dejó de funcionar en Ventura.

00:43:52.000 --> 00:43:54.000
Desde la primera meta.

00:43:54.000 --> 00:43:55.000
Hay un truco.

00:43:55.000 --> 00:43:56.000
A ver, hay un truco de la almendra.

00:43:56.000 --> 00:43:57.000
Que por ahí.

00:43:57.000 --> 00:44:01.000
Cheque y puede seguir ejecutándolo vale pero no no estás

00:44:01.000 --> 00:44:06.000
me gano, como me gano el pan con ello, pues dije no, mira, básicamente.

00:44:07.000 --> 00:44:11.000
¿cuál ha sido tu experiencia con las con las vetas.

00:44:11.000 --> 00:44:19.000
Había montado todo, salvo el salvo el maque que me ha de comer y bien mi sensación es que no hay muchas novedades digamos de pues eso.

00:44:19.000 --> 00:44:29.000
Que, pues es, de novedades en general, pero sí que noto como, o sea, toda la interfaz y los cambios de interfaz del Apple Watch me gusta muchísimo.

00:44:29.000 --> 00:44:35.000
Hablando común hay de un héroe nuevo que hace que sea, no sé cómo decir lo más dinámico, ¿vale?

00:44:35.000 --> 00:44:39.000
Porque tiene como más color, las marcaciones, ya dejan de ese negro y y y

00:44:39.000 --> 00:44:43.000
luego lo demás de la interfaz en blanco, en otro color, pero siempre el

00:44:43.000 --> 00:44:47.000
fondo negro, sino que como más vivo, no sé.

00:44:47.000 --> 00:44:53.000
La verdad es que me ha gustado fluidez, va perfecto, o sea así que no,

00:44:53.000 --> 00:44:54.000
¿qué qué es lo obtienes?

00:44:54.000 --> 00:44:55.000
¿Qué series es?

00:44:55.000 --> 00:45:06.000
El del año pasado pero el no, bueno bueno es el del año pasado pero el último que ha salido el ocho yo creo que es.

00:45:07.000 --> 00:45:10.000
Sé que es el último que hay ahora mismo a la venta.

00:45:10.000 --> 00:45:11.000
Sí.

00:45:12.000 --> 00:45:16.000
Y perfecto, y luego el iPhone igual, el iPhone muy bien, de hecho yo creo

00:45:16.000 --> 00:45:20.000
que lo comenté han cambiado, es que lo vi lo WC han cambiado como la las

00:45:20.000 --> 00:45:24.000
animaciones, han cambiado el efecto de animación y para mí le da un aire

00:45:24.000 --> 00:45:28.000
nuevo, de hecho a veces he cogido el el teléfono de de mi mujer que

00:45:28.000 --> 00:45:32.000
tampoco es muy fiable porque porque el suyo es un quince plus o sea un

00:45:32.000 --> 00:45:36.000
catorce plus y no tiene el refresco de pantalla tan alto, pero no sé, me

00:45:36.000 --> 00:45:46.000
da la sensación de que va un poco más más trabadas las animaciones.

00:45:47.000 --> 00:45:51.000
Y nada, de hecho tengo, bueno, te pasé a ti un error de la pistola nada,

00:45:51.000 --> 00:45:55.000
del layout que metieron unas últimas vetas, que nada y bueno y uno que

00:45:55.000 --> 00:45:59.000
tenía del centro de notificaciones que que al pintarse si hay muchas

00:45:59.000 --> 00:46:03.000
notificaciones al pintarse primero se pintan las notificaciones sin los

00:46:03.000 --> 00:46:07.000
bordes redondeados y luego se ponen bien, que eso ya venía de los

00:46:07.000 --> 00:46:11.000
dieciséis, en cada versión beta nueva les he mandado en la aplicación

00:46:11.000 --> 00:46:15.000
de feedback sigue pasando y otro vídeo en el que pasa.

00:46:17.000 --> 00:46:24.000
No me hace ni puñetera caso, pero yo creo que este año de estabilidad, que es al final lo que importa, muy bien.

00:46:24.000 --> 00:46:29.000
Las novedades son pocas, pero pero la verdad es que bastante bastante

00:46:29.000 --> 00:46:34.000
pulidas y en el en el appTV han hecho el, bueno no he podido probar porque

00:46:34.000 --> 00:46:41.000
mis UPLTV son, tengo dos y son muy viejos, no he podido probar el FaceTime en el UPLTV.

00:46:41.000 --> 00:46:45.000
Que eso me quede con ganas y de hecho esta fue una de las razones por las

00:46:45.000 --> 00:46:49.000
cristales por las cristales la veta porque bueno pues con con la línea y

00:46:49.000 --> 00:46:53.000
tal por las abuelas, llaman un montón y eso pero no no puedo probarlo y

00:46:53.000 --> 00:46:57.000
luego además han puesto los íconos más pequeños en la parrilla y le

00:46:57.000 --> 00:47:02.000
han dado así un efecto que que está bastante chulo.

00:47:02.000 --> 00:47:07.000
Entonces yo creo que este año en la parte y ahora es que donde voy a

00:47:07.000 --> 00:47:12.000
preguntar a ti por lo que hay detrás En la parte que se ve, yo este año

00:47:12.000 --> 00:47:17.000
chapo, pero Julio cuéntanos que tú has estado en el lado oscuro, ¿Cómo

00:47:17.000 --> 00:47:22.000
está ese ese dios diecisiete, las tripas de ese dios diecisiete y las

00:47:22.000 --> 00:47:27.000
nuevas APIs para desarrolladores?

00:47:29.000 --> 00:47:38.000
Pues a ver, Suip UI está a un noventa y cinco por ciento, ¿vale?

00:47:38.000 --> 00:47:43.000
Es decir, ¿tiene alguna cosita un ajuste que le falta por aquí, por

00:47:43.000 --> 00:47:48.000
allá, pero más o menos todo Suip JOY ha funcionado bastante bien desde

00:47:48.000 --> 00:47:53.000
el comienzo de las vetas.

00:47:54.000 --> 00:48:04.000
Hay que tener en cuenta que con Suip UI tenemos un montón de novedades sobre todo por ejemplo con respecto a las animaciones, ¿vale?

00:48:04.000 --> 00:48:16.000
Podemos utilizar animaciones con key friends, por por fases, hacer un montón de cambios en la curva de animación de todo lo que vayamos a hacer.

00:48:16.000 --> 00:48:21.000
Es decir, hay una API completa de programación de animaciones que es una auténtica locura, ¿vale?

00:48:21.000 --> 00:48:22.000
Pero lo juro.

00:48:22.000 --> 00:48:24.000
Y sobre todo ser más sencilla.

00:48:25.000 --> 00:48:29.000
No es no es del todo, o sea, no es del todo sencilla, La verdad es que yo estoy viendo la charla y no es del todo ese tío.

00:48:29.000 --> 00:48:30.000
A vela.

00:48:30.000 --> 00:48:31.000
Pero es más sencilla.

00:48:33.000 --> 00:48:36.000
Al final si quieres hacer una una una curva de tiempo muy personalizada

00:48:36.000 --> 00:48:39.000
pues te va a costar unas cuantas líneas vale porque tienes que hacer un

00:48:39.000 --> 00:48:42.000
keyframe en el que le digas que en el dos vaya no sé qué en cero tres

00:48:42.000 --> 00:48:45.000
acá no sé qué, en el cero cuatro no sé cuántas, o sea tienes que, no,

00:48:45.000 --> 00:48:52.000
es costoso a nivel de líneas, ¿vale?

00:48:53.000 --> 00:49:00.000
Pero si estás acostumbrado a cómo funcionan las animaciones, sobre todo con con con CSS, ¿vale?

00:49:00.000 --> 00:49:06.000
Con HTML cinco canvas, etcétera, puedes sacarle cosas muy chula, vale, de

00:49:06.000 --> 00:49:12.000
hecho nuestro amigo que no puede beber Coca Cola, mentó, pues ha hecho

00:49:12.000 --> 00:49:18.000
cosas bastante impresionantes con con animaciones, ¿vale?

00:49:19.000 --> 00:49:30.000
Pero el gran problema de este año se llama observable y sobre todo su data, ¿vale?

00:49:31.000 --> 00:49:35.000
Pues su data te compro que que bueno, es algo nuevo pero observable, que es

00:49:35.000 --> 00:49:39.000
el, o sea, me refiero, cualquier aplicación que hagas va a tener que

00:49:39.000 --> 00:49:43.000
usar, o sea, puedes usar lo anterior, pero va si quieres usar observable

00:49:43.000 --> 00:49:48.000
lo va a usar sí o sí todas las aplicaciones.

00:49:48.000 --> 00:49:49.000
Sí.

00:49:50.000 --> 00:49:53.000
Pues observable tiene cosas raras, ¿vale?

00:49:54.000 --> 00:50:00.000
Por ejemplo, el hecho de que observable no esté conformado que es un error

00:50:00.000 --> 00:50:06.000
que tengo reportado a Apple, con Jashable hace que los datos no puedan ser

00:50:06.000 --> 00:50:12.000
usados en un maestro detalle directamente, ¿vale?

00:50:12.000 --> 00:50:15.000
Entonces al no poder ser usado en un maestro de detalle directamente cuando

00:50:15.000 --> 00:50:18.000
inyectas la dependencia del detalle, el problema es que el dato que

00:50:18.000 --> 00:50:23.000
inyectas no es reactivo.

00:50:25.000 --> 00:50:31.000
Entonces la única forma de hacerlo reactivo es lo que te mandé el otro día.

00:50:31.000 --> 00:50:32.000
¿Qué es?

00:50:33.000 --> 00:50:38.000
Traértelo de un emvironment que viene inyectado desde la app con una

00:50:38.000 --> 00:50:43.000
dependencia y crearte sobre línea de definición dentro del view una

00:50:43.000 --> 00:50:49.000
barravaindable ds arroba enviorment.

00:50:49.000 --> 00:50:52.000
Pero ahí guardísimo en todo el medio.

00:50:52.000 --> 00:50:54.000
Pero además que queda espantoso.

00:50:55.000 --> 00:50:56.000
Pues -- Eso

00:50:56.000 --> 00:50:58.000
lo mandaste, lo vi, dije, no puede ser.

00:50:58.000 --> 00:51:00.000
Lo además está ocupado, luego lo miro.

00:51:00.000 --> 00:51:06.000
Lo volvió a mirar, dijo, estoy a ver, estoy flipando y voy a sentarme tranquilamente y verlo y efectivamente.

00:51:08.000 --> 00:51:12.000
Es decir, para el que tenga la duda, nosotros ahora mismo, si yo creo un

00:51:12.000 --> 00:51:16.000
observable objeto y género, un arroba ObserveDoughed o una stakedoughed

00:51:16.000 --> 00:51:20.000
que debería de ser solo un Observe Doughed, pero bueno en casos donde

00:51:20.000 --> 00:51:24.000
tengo varias fuentes que refrescar la view y no quiero que me reinstacie

00:51:24.000 --> 00:51:30.000
el observador bien.

00:51:31.000 --> 00:51:35.000
Pongo el state aunque no debería ser lo que lo que haríamos pero bueno el

00:51:35.000 --> 00:51:39.000
caso es que sea observed o sea state o sea un envío menor jet que capturo

00:51:39.000 --> 00:51:44.000
de no inyección desde el comienzo de la app en todos los casos.

00:51:45.000 --> 00:51:51.000
Sabemos que esa instancia tiene la distancia normal que accede a las

00:51:51.000 --> 00:51:57.000
propiedades, y la instancia que es el acceso a los bindings, es decir, el

00:51:57.000 --> 00:52:03.000
VINDABOL, el dólar en el que yo pongo dólar VM y dentro de ahí accedo

00:52:03.000 --> 00:52:09.000
al binding de cada propiedad publish que hay dentro de ese view modem.

00:52:10.000 --> 00:52:11.000
Pues eso ha cambiado.

00:52:12.000 --> 00:52:13.000
Eso ha cambiado.

00:52:13.000 --> 00:52:25.000
De forma que ahora, cuando yo hago una state o hago una environment, para capturar un view model que ahora es observable, resulta que no tengo acceso.

00:52:26.000 --> 00:52:30.000
A los bindings de esas propiedades La única manera de hacerlo es sobre

00:52:30.000 --> 00:52:34.000
código de la view definir una barravavainable directamente para que me

00:52:34.000 --> 00:52:38.000
genere ese dólar de acceso a los bindings cada propiedad dentro de la

00:52:38.000 --> 00:52:43.000
ropa observable.

00:52:43.000 --> 00:52:46.000
Es decir, una cosa espantosa, ¿vale?

00:52:46.000 --> 00:52:47.000
Básicamente.

00:52:48.000 --> 00:52:55.000
Espantosa de ver pero es que aunque el aunque lo sepas, porque bueno es algo al final es una receta que te aprendes y ya está.

00:52:56.000 --> 00:53:00.000
Madre mía, o sea, para la gente que está empezando es que Es que no sé.

00:53:00.000 --> 00:53:01.000
No no es que no tiene ningún sentido.

00:53:01.000 --> 00:53:02.000
Y el problema no

00:53:02.000 --> 00:53:03.000
daba crédito.

00:53:03.000 --> 00:53:08.000
Claro, el problema es la macro, porque la macro como tal, les impide

00:53:08.000 --> 00:53:13.000
cumplir con el con la conformación de Jasabol y les impide meter un

00:53:13.000 --> 00:53:18.000
observable dentro de un observable vale porque al final el arroba

00:53:18.000 --> 00:53:23.000
observable lo único que hace es añadirle a cada propiedad la propiedad

00:53:23.000 --> 00:53:28.000
with observación track que tracking vale que básicamente with

00:53:28.000 --> 00:53:33.000
observación tracking es algo que yo puedo utilizar vale básicamente es

00:53:33.000 --> 00:53:38.000
un closer reactivo vale yo le digo with observation tracking y le doy la

00:53:38.000 --> 00:53:45.000
propiedad que quiero o el lo que quiero que observe, ¿no?

00:53:45.000 --> 00:53:50.000
Entonces, en el momento en el que le doy lo que quiero que observe, le doy

00:53:50.000 --> 00:53:55.000
un closure llamado Unchange, que lo que hace es saltar cuando hay un

00:53:55.000 --> 00:54:00.000
cambio que por cierto era un change porque era un deep change es decir que

00:54:00.000 --> 00:54:08.000
sucede después del cambio y en la última versión lo han cambiado a un will change.

00:54:08.000 --> 00:54:10.000
Que ahora sucede antes del cambio.

00:54:10.000 --> 00:54:15.000
Por lo tanto han cambiado por comportar abierto, como ya hicieron con Suip

00:54:15.000 --> 00:54:20.000
Juie al principio, que recuerdas que el Object Wheel, el cambio de objeto

00:54:20.000 --> 00:54:25.000
del observable Object era object the change y en las últimas vetas lo

00:54:25.000 --> 00:54:30.000
cambiaron a object will cambiándole el ciclo de vida al sistema vale

00:54:30.000 --> 00:54:35.000
Entonces, en fin, es más fácil que lo que había hasta ahora, sí, es

00:54:35.000 --> 00:54:40.000
más fácil es más claro es más limpio sobre todo pero si lo has dejado

00:54:40.000 --> 00:54:51.000
tan limpio tan bonito hostia no me pongas eso ahí que es una chapú, ¿vale?

00:54:51.000 --> 00:54:53.000
O sea, ese es el key de la cuestión.

00:54:53.000 --> 00:54:55.000
Está mejor que antes, sí.

00:54:57.000 --> 00:55:08.000
Pero es como poner oro y entregártelo en un cofre de madera podrida vale por ver el símil, ¿no?

00:55:09.000 --> 00:55:10.000
Eso por el lado de lo observable.

00:55:11.000 --> 00:55:15.000
Julio es que, Julio sigo sin creer, o sea, y y el otro de lo y lo me lo

00:55:15.000 --> 00:55:19.000
sigo pensando, que lo vayan a sacar así la versión final, o sea que la r

00:55:19.000 --> 00:55:25.000
c no haya algo que digan mira, no lo hemos abordado.

00:55:26.000 --> 00:55:29.000
Extra me extraña, Es que es muy feo.

00:55:32.000 --> 00:55:41.000
Yo les voy a poner otro porque además todo lo que estoy subiendo lo estoy poniendo también los foros de Apple para ver si alguien me hace caso.

00:55:41.000 --> 00:55:44.000
Con la referencia del feedback, ¿vale?

00:55:44.000 --> 00:55:46.000
Con el FBI, no sé qué, no sé cuándo.

00:55:46.000 --> 00:55:49.000
A ver si alguien me hace caso, pero no me hace caso.

00:55:50.000 --> 00:55:56.000
Entiendo que deberían de de tenerlo en cuenta, no lo sé.

00:55:59.000 --> 00:56:03.000
Y luego está el otro el otro gran problema que ya hemos comentado, que es el de Suiz-Data.

00:56:04.000 --> 00:56:15.000
Suiz-Data la última beta ha tenido la beta ocho no, la siete, tuvo cambios que rompían el código que ya estaba hecho en su dieta, ¿vale?

00:56:15.000 --> 00:56:19.000
En la beta siete, Conseguí arreglarlo, ¿vale?

00:56:19.000 --> 00:56:25.000
Porque el problema es que han cambiado el nombre del default Executor, ¿vale?

00:56:25.000 --> 00:56:29.000
Y ahora ya no se llama default ejecutor sino que se llama main default

00:56:29.000 --> 00:56:33.000
ejecutor o algo así, alguna cosa rara, Pero bueno, el caso es que, para

00:56:33.000 --> 00:56:38.000
que nos hagamos una idea.

00:56:38.000 --> 00:56:43.000
Swiss data a día de hoy no es capaz de funcionar en segundo plano.

00:56:45.000 --> 00:56:49.000
Aunque tú lo configures en segundo plano Aunque tú pongas un task en

00:56:49.000 --> 00:56:53.000
segundo plano Aunque esté todo configurado que funcione en segundo plano

00:56:53.000 --> 00:56:57.000
cuando tú pones una carga en batch de sweet data de cientos o miles de

00:56:57.000 --> 00:57:04.000
registros la interfaz se queda congelada.

00:57:05.000 --> 00:57:07.000
Y hasta que no acaba la carga no vuelve.

00:57:07.000 --> 00:57:08.000
¿Por qué?

00:57:08.000 --> 00:57:14.000
Porque por algún motivo los el contenedor que conecta el modelo lógico

00:57:14.000 --> 00:57:20.000
con el físico está sobre el main actor que es el único elemento que

00:57:20.000 --> 00:57:26.000
tiene el contenedor de su IDATA para controlar al estar sobre el main

00:57:26.000 --> 00:57:32.000
actor quiere decir que es, o sea, está protegido por concurrencia contra

00:57:32.000 --> 00:57:39.000
para evitar problemas, ¿no?

00:57:39.000 --> 00:57:43.000
De data race, o que pueda haber varios accesos a la base de datos.

00:57:43.000 --> 00:57:47.000
A la vez vale en eso está bien hecho pero está hecho sobre el main actor

00:57:47.000 --> 00:57:51.000
no sobre un actor en segundo plano por lo que hagas lo que hagas todo se

00:57:51.000 --> 00:57:56.000
ejecuta en primer plano Todo se ejecuta sobre la sobre la yoga y principal.

00:57:56.000 --> 00:58:00.000
Entonces claro, es fatal.

00:58:00.000 --> 00:58:01.000
Entonces, lo que esa

00:58:01.000 --> 00:58:05.000
mierda la tenía cordada, o sea, si cordada, si algo tenía bien era que

00:58:05.000 --> 00:58:09.000
tú trabajas con tu main context, que ibas sobre el sobre el hilo

00:58:09.000 --> 00:58:13.000
principal y podías crearte ochenta hilos en background, o sea

00:58:13.000 --> 00:58:14.000
--

00:58:14.000 --> 00:58:15.000
Cuesta contextos en background.

00:58:15.000 --> 00:58:20.000
Los containers de Swiss data no tiene el único context que hay en un

00:58:20.000 --> 00:58:25.000
container de suizata es el main context que está además definido sobre

00:58:25.000 --> 00:58:30.000
main actor y ese es el que estoy convencido que está usando porque no hay

00:58:30.000 --> 00:58:35.000
un un o sea tú en suite data sobre todo con asina en perdón con data con

00:58:35.000 --> 00:58:44.000
asina white hacías un un nuevo contexto en background y listo.

00:58:45.000 --> 00:58:48.000
Has de ese contexto y y trabajaba todo en segundo plano.

00:58:49.000 --> 00:58:51.000
Pues nada, con su y data no funciona.

00:58:51.000 --> 00:58:55.000
Entonces además tenías como las dos astracciones tenías como estoy en un

00:58:55.000 --> 00:58:59.000
contexto y aparte tenía las operaciones de batch que iban directas contra

00:58:59.000 --> 00:59:04.000
la base de datos sin pasar por sin pasar por memoria, joder, no sé, es que

00:59:04.000 --> 00:59:07.000
Mi teoría es que lo han hecho así, porque recuerda que Swiss data al

00:59:07.000 --> 00:59:10.000
principio no era capaz de detectar cuando había cambios en segundo plano

00:59:10.000 --> 00:59:14.000
en la base de datos.

00:59:14.000 --> 00:59:15.000
Cierto.

00:59:15.000 --> 00:59:16.000
Sí.

00:59:16.000 --> 00:59:17.000
Entonces mi teoría es eso

00:59:17.000 --> 00:59:19.000
fue mi primera prueba.

00:59:19.000 --> 00:59:21.000
Pudes cacharrear un poco según lo presenté.

00:59:21.000 --> 00:59:26.000
Creabas un contexto en segundo plano actualizabas la base de datos y en las

00:59:26.000 --> 00:59:31.000
primeras vetas no se enteraba la interfaz de que había habido una

00:59:31.000 --> 00:59:36.000
actualización y tenías que cerrar y volver a abrir el la aplicación

00:59:36.000 --> 00:59:41.000
para que detectara ese update y lo reflejada en la carga vale.

00:59:42.000 --> 00:59:44.000
Mi teoría es que la forma que han hecho para que la interfaz se entere de

00:59:44.000 --> 00:59:46.000
que ha habido un cambio en la base de datos es hacer que el contexto

00:59:46.000 --> 00:59:50.000
funcione y lo principal, ¿no?

00:59:51.000 --> 00:59:52.000
No me hagas eso.

00:59:53.000 --> 00:59:54.000
Muerto el perro se acabó la rabia.

00:59:54.000 --> 00:59:59.000
Pero o sea con yo ponme un patrón aunque sea un notification center por detrás, me da igual.

01:00:00.000 --> 01:00:03.000
Que se llama, que se llama, se llama, se

01:00:06.000 --> 01:00:11.000
se llama, que quisiera.

01:00:11.000 --> 01:00:12.000
Era muy objetive.

01:00:13.000 --> 01:00:17.000
Pero o sea me refiero a hacer eso, no es, o sea, es hacerlo bien pero y con

01:00:17.000 --> 01:00:21.000
herramientas que asiste, te quiero decir, no hay que crear nada súper

01:00:21.000 --> 01:00:27.000
avanzado, nuevo, que tengas, yo que sé, pues como no no hay que hacer una revolución.

01:00:28.000 --> 01:00:29.000
Es que son cosas que que existen.

01:00:29.000 --> 01:00:33.000
O sea un vuestro lado de base, o sea un digamos un framework de de

01:00:33.000 --> 01:00:37.000
persistencia lo hay en todas las plataformas de desarrollo de apps, en

01:00:37.000 --> 01:00:42.000
todos los los lo hay, o sea, no sé.

01:00:43.000 --> 01:00:44.000
¿Cuál es el problema?

01:00:44.000 --> 01:00:51.000
La beta siete ha tenido más de diecisiete feeks solo de Suiz-Data.

01:00:52.000 --> 01:00:57.000
Entre ellos, han hecho una macro de expresión el hashpredicate para evitar

01:00:57.000 --> 01:01:02.000
tener que usar, los predicados de en ese predicate con la construcción de

01:01:02.000 --> 01:01:08.000
los predicados, esta que tiene parte SQL, etcétera, etcétera.

01:01:08.000 --> 01:01:12.000
Ahora los nuevos predicados son wise pero el problema es que los has

01:01:12.000 --> 01:01:16.000
predicate por cómo están funcionando las macros de expresión de Sweet

01:01:16.000 --> 01:01:20.000
cinco punto nueve ¿Cuál es el problema?

01:01:21.000 --> 01:01:29.000
Que hasta la beta siete no podías poner en un predicado ni una fecha ni un Yuyaid.

01:01:34.000 --> 01:01:38.000
Bueno y ya ya soporta que también paso los problemas que estuve haciendo.

01:01:38.000 --> 01:01:40.000
Fichar cuando un campo es nulo.

01:01:41.000 --> 01:01:43.000
Sí, sí soporta eso.

01:01:43.000 --> 01:01:44.000
Lo que no soporta ¿vale?

01:01:44.000 --> 01:01:57.000
Que es una cosa que te vas a partir la caja es preguntar por propiedades de instancias Sí sí sí sí lo has oído bien.

01:01:57.000 --> 01:02:05.000
Si tú tienes la instancia persona y quieres preguntar por, ¿nombre es igual a persona punto nombre?

01:02:05.000 --> 01:02:06.000
No puedes.

01:02:07.000 --> 01:02:11.000
Porque no es capaz de llegar a la propiedad de una instancia Antes del

01:02:11.000 --> 01:02:15.000
predicado tienes que hacer let nombres igual a persona punto nombre y

01:02:15.000 --> 01:02:21.000
dentro del predicado poner ese let nombre que has definido arriba.

01:02:21.000 --> 01:02:25.000
Tienes que poner un tipo estático, ¿sí?

01:02:25.000 --> 01:02:28.000
Exacto, un tipo estático, esa es la el nombre exacto.

01:02:31.000 --> 01:02:32.000
Pues Saravaí Locasca.

01:02:34.000 --> 01:02:37.000
No sé, es que eso no es que es que da

01:02:37.000 --> 01:02:40.000
la impresión de que han dicho esto vamos a fliparlo, esto va a ser guay,

01:02:40.000 --> 01:02:43.000
tal, y cuando ya se han metido un camisa a once varas, ya lo han

01:02:43.000 --> 01:02:46.000
presentado, ya han dicho todo, es cuando han dicho, hostia, pero es que no

01:02:46.000 --> 01:02:50.000
se puede hacer todo lo que hubiéramos querido.

01:02:51.000 --> 01:02:52.000
Es que esto parece que lo han pensado.

01:02:53.000 --> 01:02:57.000
Que lo han pensado en mayo, lo han presentado en junio y no les ha dado tiempo a

01:02:57.000 --> 01:02:58.000
les ha dado tiempo.

01:02:58.000 --> 01:02:59.000
Es que parece eso.

01:02:59.000 --> 01:03:02.000
Creo que el que no lo he metido ahí con Calzador en el último momento.

01:03:02.000 --> 01:03:07.000
De hecho la beta siete de de VisionOS dejó de funcionar con su is data.

01:03:09.000 --> 01:03:11.000
Ponía errores conocido.

01:03:11.000 --> 01:03:15.000
Sweet data no funciona en visión os SDK.

01:03:15.000 --> 01:03:26.000
Solución usa la beta seis pero es que arroba observable también estuvo un tiempo sin funcionar en visión o ese.

01:03:27.000 --> 01:03:36.000
Ahora con la beta ocho han sacado la beta tres de visión o ese y entonces ahora ya sí funciona de nuevo sus data, etcétera, pero ¿sabes?

01:03:36.000 --> 01:03:41.000
Te digo, mi miedo, ¿vale?

01:03:41.000 --> 01:03:52.000
Es el que ya expresó que lo comentamos aquí Paul Hudson, que esto llegue la versión del doce de septiembre y se quede a medio hacer.

01:03:54.000 --> 01:03:56.000
Ya no lo tengamos bien hasta el año que viene.

01:03:56.000 --> 01:03:57.000
¿Sabes

01:03:57.000 --> 01:03:58.000
qué se va a pasar?

01:03:58.000 --> 01:04:06.000
Es que tampoco tiene sentido que en la versión diecisiete punto tres de ellos ya esté arreglado eso.

01:04:06.000 --> 01:04:08.000
Es que no tiene sentido.

01:04:10.000 --> 01:04:14.000
Pues ese es el que de la cuestión, así que sí están las cosas.

01:04:14.000 --> 01:04:18.000
Además que que en en, bueno, entiendo, Comprendo.

01:04:18.000 --> 01:04:20.000
¿Qué podría decir?

01:04:20.000 --> 01:04:25.000
Pues esto de las prisas de la versión r c para el los nuevos iPhone.

01:04:25.000 --> 01:04:26.000
Te lo compro.

01:04:27.000 --> 01:04:30.000
Porque es cuando este el iPhone hay que sacar hay que, o sea antes de

01:04:30.000 --> 01:04:33.000
cuando vendamos el primer iPhone pues dos semanas antes hay que tenerlos

01:04:33.000 --> 01:04:38.000
el sistema operativo para enchufárselo al a los iPhone que vamos a vender.

01:04:38.000 --> 01:04:42.000
Te lo compro y manda la fecha en la que este el iPhone no manda cuando esté hecho eso.

01:04:42.000 --> 01:04:47.000
No se puede retrasar el lanzamiento del iPhone si van a estar un día diez días más tarde porque el

01:04:47.000 --> 01:04:48.000
el market que la

01:04:48.000 --> 01:04:52.000
versión no estaba terminada, vale, pero qué puñetera necesidad hay de no

01:04:52.000 --> 01:04:56.000
de repente o no presentarlo en la WDC y sacarlo nuevo cuando sea o ahí

01:04:56.000 --> 01:05:00.000
sí que si lo sacas de cero mira suit that a partir de la versión

01:05:00.000 --> 01:05:04.000
diecisiete punto tres es porque no estás o sea no estás cambiando una

01:05:04.000 --> 01:05:08.000
API te quiero decir la puta es en una versión menor te enchufe ni te amo

01:05:08.000 --> 01:05:13.000
en cambio de API.

01:05:13.000 --> 01:05:19.000
Ahí es donde te matan, porque no ha pasado, vale y sobre todo soy yo ahí y yo lo sufrí.

01:05:21.000 --> 01:05:24.000
Que que cambiasen alguna cosa que te rompéis en una versión menor la

01:05:24.000 --> 01:05:27.000
aplicación, porque ya se supone que con versiones mayores pues ya lo que

01:05:27.000 --> 01:05:30.000
hacer todos los desarrolladores.

01:05:30.000 --> 01:05:34.000
En cuanto sale todo el la release candidate, probar hoy en nuestra aplicación.

01:05:35.000 --> 01:05:37.000
Primero funciona sin tocar, perfecto.

01:05:38.000 --> 01:05:43.000
Si y si hay que tocar, pues ya está, funciona con el nuevo scope, vale, eso perfecto.

01:05:43.000 --> 01:05:49.000
Pero entre versiones medias pues no tiene mucho sentido, ha pasado, pero bueno, intenta hacerlo a lo mejor posible.

01:05:49.000 --> 01:05:54.000
Pero es que son cosas nuevas, te quiero decir, o sea, se puede decir, pues no sale y no sale y ya está.

01:05:55.000 --> 01:05:58.000
O no primero o no la acabo y en la wd se lo presento o directamente ahora

01:05:58.000 --> 01:06:01.000
digo pues su data se pospone como han hecho es que eso lo han hecho con

01:06:01.000 --> 01:06:04.000
cosas de del propio sistema, con features que que presentan el sistema han

01:06:04.000 --> 01:06:07.000
dicho pues esto más, de hecho la aplicación esta que pusieron de que te

01:06:07.000 --> 01:06:10.000
va reuniendo los momentos y no sé qué, no me acuerdo cómo se llama,

01:06:10.000 --> 01:06:18.000
momentos probablemente.

01:06:19.000 --> 01:06:23.000
La dicen que estará disponible más tarde, pues ya está.

01:06:23.000 --> 01:06:24.000
¿Qué problema es?

01:06:24.000 --> 01:06:26.000
La del diario, la de Journal, no sé qué

01:06:26.000 --> 01:06:27.000
es eso.

01:06:27.000 --> 01:06:28.000
Un momento.

01:06:28.000 --> 01:06:32.000
Your no sé dónde ha sacado ese nombre pero joder pueden decir que

01:06:32.000 --> 01:06:36.000
también pues su data está disponible esto en plan vale te voy a dar te

01:06:36.000 --> 01:06:40.000
lo voy a poner una versión menos en ellos diecisiete punto tres y ya en

01:06:40.000 --> 01:06:45.000
ellos dieciocho te voy a hacer cuatro cambios para ya dejarlo pulido.

01:06:45.000 --> 01:06:52.000
Pero mira, en Newell's diecisiete punto tres puedes ir ya cacharreando con ello en algo que ya está en producción.

01:06:52.000 --> 01:06:58.000
Yo lo he pensado igualmente, pero claro, mi pregunta es, ¿y qué hace todo el que ya tenga hecho algo en su dieta?

01:06:58.000 --> 01:07:01.000
No puede lanzar con con la diecisiete.

01:07:02.000 --> 01:07:03.000
Dije claro, es un problema.

01:07:04.000 --> 01:07:10.000
ver, a ver también es verdad Julio qué es, o sea, qué es, son vetas.

01:07:11.000 --> 01:07:12.000
Y es a lo que te expones.

01:07:12.000 --> 01:07:13.000
O sea, yo entiendo.

01:07:13.000 --> 01:07:14.000
Sí.

01:07:14.000 --> 01:07:17.000
Yo sé que entre, o sea, yo si tengo que tomar alguna decir, pues si es una

01:07:17.000 --> 01:07:20.000
aplicación de un prototipo que estoy haciendo yo, pues si me pues ya

01:07:20.000 --> 01:07:23.000
está, pero sé que es algo que si lo quita no me va a pasar nada, pero yo

01:07:23.000 --> 01:07:26.000
en una aplicación de producción en una empresa jamás voy a recomendar

01:07:26.000 --> 01:07:29.000
hacerlo, o sea me pondría el día que saque la r c, me, o sea, sí que

01:07:29.000 --> 01:07:36.000
confirmen, que que sale la versión, ya nos ponemos.

01:07:37.000 --> 01:07:42.000
Pero claro, te hace una putada pues te hace una putada a ti, sabes que has

01:07:42.000 --> 01:07:48.000
estado todo el verano peleándote con ello Pero también es verdad que es una beta.

01:07:48.000 --> 01:07:49.000
A veces.

01:07:49.000 --> 01:07:51.000
Suiza está ahora mismo funciona.

01:07:51.000 --> 01:07:52.000
Perfecto.

01:07:53.000 --> 01:07:57.000
Si se cumplen los siguientes requisitos: uno.

01:07:57.000 --> 01:08:01.000
Tu aplicación es una app que arranca sin datos.

01:08:04.000 --> 01:08:19.000
Como notas, como recordatorios, como en fin, todas estas apps de de que son de la propia Apple, si tu app, su estado inicial es no hay datos.

01:08:20.000 --> 01:08:25.000
Y ahora yo usando Suip UI voy metiendo datos en la base de datos Primera

01:08:25.000 --> 01:08:30.000
condición va a funcionar perfecto Segunda condición, que o no tengas

01:08:30.000 --> 01:08:37.000
back end back end externo, ¿vale?

01:08:38.000 --> 01:08:42.000
O uses Cloud Kit.

01:08:43.000 --> 01:08:44.000
¿De acuerdo?

01:08:44.000 --> 01:08:46.000
Para que todos los dispositivos estén secuenciados.

01:08:47.000 --> 01:08:52.000
Es decir, si tú haces una aplicación que funciona como notas que es cien

01:08:52.000 --> 01:08:57.000
por ciento Suip UI que parte de una base de datos que está vacía y que

01:08:57.000 --> 01:09:02.000
la sincronización de datos en la nube vas a depender de swift de cloud

01:09:02.000 --> 01:09:08.000
kit Eso ahora mismo funciona perfecto.

01:09:08.000 --> 01:09:11.000
Tu app en consultas va a ir maravillosa.

01:09:12.000 --> 01:09:16.000
Cuando se estropea en el momento en el que tienes procesos en batch, en el

01:09:16.000 --> 01:09:20.000
momento en el que tienes procesos en el momento en el que tienes o bien

01:09:20.000 --> 01:09:26.000
una precarga de datos.

01:09:27.000 --> 01:09:31.000
Cuando arranca la aplicación o cuando dependes de una API propia no de

01:09:31.000 --> 01:09:35.000
Apple no de cloud kit entonces si tú dependes de una API propia como es

01:09:35.000 --> 01:09:39.000
el caso del ejemplo que yo he hecho, que es una API que tiene mil y pico

01:09:39.000 --> 01:09:45.000
de empleados en una base de datos externa.

01:09:45.000 --> 01:09:49.000
Y la primera vez que arrancas lo que hace es descargárselo mil empleados y

01:09:49.000 --> 01:09:53.000
cargarlos en la base de datos y tarda el simulador unos tres segundos o

01:09:53.000 --> 01:09:57.000
cuatro en hacer esa carga de mil y pico empleados vale tres o cuatro

01:09:57.000 --> 01:10:04.000
segundos donde la ayuda está congelada e inusable Claro

01:10:04.000 --> 01:10:06.000
que no puedes poner un spinners o sea.

01:10:06.000 --> 01:10:08.000
No no no no no lo si lo pones se queda parado.

01:10:09.000 --> 01:10:14.000
El spinner no se mueve vale hubo una beta donde el spiner sí se movía

01:10:14.000 --> 01:10:19.000
pero en la última ya ni se mueve vale entonces y en el momento en el que

01:10:19.000 --> 01:10:24.000
hagas procesos en segundo plano bueno puedes llegar a hacer que funcione

01:10:24.000 --> 01:10:31.000
pero pero muy importante.

01:10:32.000 --> 01:10:47.000
Puedes llegar a hacer que funcione si eres capaz de montarte el contenedor de trabajo en segundo plano que hostia, ¿vale?

01:10:47.000 --> 01:10:55.000
Es decir, porque para crearte tu propio contenedor tienes que usar un protocolo, ¿vale?

01:10:55.000 --> 01:11:02.000
Es decir, en el momento en el que tú creas ese contenedor tienes que conformarte, ¿vale?

01:11:03.000 --> 01:11:07.000
A el protocolo model actor.

01:11:08.000 --> 01:11:10.000
Tienes que crearte un actor.

01:11:10.000 --> 01:11:13.000
Conformado con el protocolo Moodle Actor.

01:11:14.000 --> 01:11:21.000
Y este Moodle Actor tiene dos propiedades obligatorias: Moodle Container y model Executor.

01:11:22.000 --> 01:11:25.000
Los dos de tipo non insulator LED.

01:11:26.000 --> 01:11:27.000
¿Vale?

01:11:27.000 --> 01:11:35.000
Porque están están no aislados del contexto del actor para poder ser usados fuera de la senaway.

01:11:36.000 --> 01:11:41.000
Luego te creas una propiedad de contexto y sobre el contenedor que tú le

01:11:41.000 --> 01:11:46.000
envíes definido a partir de la construcción del propio contenedor vale

01:11:46.000 --> 01:11:51.000
en un model container form donde pongas los arroba model que te vayas a

01:11:51.000 --> 01:11:56.000
crear de ahí generas el model generas el asocias el model container y

01:11:56.000 --> 01:12:04.000
luego creas el context de ese model container.

01:12:05.000 --> 01:12:09.000
Para luego crearte el default sería el model Executor que es lo que

01:12:09.000 --> 01:12:13.000
cambiaron porque antes se llamaba default model ejecutor y ahora se llama

01:12:13.000 --> 01:12:17.000
default serial model ejecutor te creas el ejecutador del modelo

01:12:17.000 --> 01:12:21.000
serializado por defecto sobre el model context y luego ya te pones el

01:12:21.000 --> 01:12:28.000
model context entonces así puede funcionar.

01:12:29.000 --> 01:12:33.000
Pero hostia, no es fácil llegar a esta solución.

01:12:34.000 --> 01:12:36.000
Para montarte tu propio elemento.

01:12:36.000 --> 01:12:41.000
Y aun así, como ya te he comentado, cuando haces un task y dentro del

01:12:41.000 --> 01:12:46.000
task, tienes un trial gate y el trial gate llama una función as since

01:12:46.000 --> 01:12:51.000
rose y dentro de la since rose estás haciendo operaciones de Fech y de Insert?

01:12:54.000 --> 01:12:59.000
Todo lo que se hace contra el contexto se hace contra el default serial

01:12:59.000 --> 01:13:04.000
model ejecutor y no hay otra instancia de ejecutor que no sea ésta y el

01:13:04.000 --> 01:13:09.000
default serial modem ejecutor está unido al main actor, por lo que todo

01:13:09.000 --> 01:13:14.000
se va a ejecutar sobre el hilo principal, porque el propio container

01:13:14.000 --> 01:13:22.000
Cuando tú, al container normal, le quieres sacar, ¿vale?

01:13:22.000 --> 01:13:28.000
Si tú coges el contenedor, y le quieres sacar el context, el único

01:13:28.000 --> 01:13:34.000
context que existen los contenedores de su data es el main context, que es

01:13:34.000 --> 01:13:40.000
de tipo async y que está asociado a el está obligado dentro de su

01:13:40.000 --> 01:13:47.000
definición a estar ejecutado sobre el arroba main actor.

01:13:48.000 --> 01:13:55.000
Algo te digo, con lo fácil que era hacer container.macontext o container.paground.comtext.

01:13:58.000 --> 01:14:04.000
Efectivamente eso no es de papel porque no me ponen un container punto background context

01:14:06.000 --> 01:14:07.000
Pues además mi

01:14:07.000 --> 01:14:18.000
explicación como que no han sido capaces de encontrar una forma de que la interfaz se entere de las actualizaciones en segundo plano y reaccione.

01:14:23.000 --> 01:14:31.000
Coyopot manda un notification center o algo y luego captúralo o vuelve a usar combined, en fin, no lo sé, es que no, no, no, se me hizo.

01:14:31.000 --> 01:14:35.000
Pero es que creo, supongo que no hayan querido tirar de cosas como

01:14:35.000 --> 01:14:39.000
NOTIFICACION CENTER y hacerlo todo con características de Sweet vale

01:14:39.000 --> 01:14:43.000
porque digamos que la notificación central final es una API encima y han

01:14:43.000 --> 01:14:48.000
querido hacerlo solo con componentes de switch, por así decirlo.

01:14:49.000 --> 01:14:54.000
Pero claro, pues, a lo mejor no han encontrado el componente que querían o tienen el problema del el observador.

01:14:55.000 --> 01:15:00.000
Sí, el el el elemento este del with observación tracking.

01:15:03.000 --> 01:15:09.000
Que traza el acceso a propiedades donde pones el la play y luego lo en change Ya está.

01:15:09.000 --> 01:15:12.000
Haces wisoft, wisoft observación tracking.

01:15:12.000 --> 01:15:13.000
Nada más por saco.

01:15:13.000 --> 01:15:14.000
Por lo ahí.

01:15:15.000 --> 01:15:19.000
que vi con eso es que solo se ejecutó una vez.

01:15:24.000 --> 01:15:25.000
Bueno, sí, esa es otra.

01:15:25.000 --> 01:15:27.000
Esa es otra gorda que hay ahí efectivamente.

01:15:28.000 --> 01:15:31.000
O sea que ahora parasito o sea antes tú cogías con combined por ejemplo

01:15:31.000 --> 01:15:34.000
cogías un publisher y cada vez que depende del publisher pero normalmente

01:15:34.000 --> 01:15:37.000
cada vez se, digamos que eso, que se llamaba a una función por

01:15:37.000 --> 01:15:43.000
simplificarlo muchísimo.

01:15:43.000 --> 01:15:44.000
¿Vale?

01:15:44.000 --> 01:15:51.000
Tú te notificaba los cambios, o te queaban los cambios, o hacías algo ante un cambio siempre.

01:15:51.000 --> 01:15:56.000
Pero ahora no, ahora con esto tú si te suscribes a los cambios una vez y para casa.

01:16:00.000 --> 01:16:02.000
Eso es lo que otra cosa que no entendí,

01:16:02.000 --> 01:16:03.000
estoy mirando si

01:16:03.000 --> 01:16:09.000
aquí pone trazado de acceso a propiedades y solo tiene dos propiedades.

01:16:10.000 --> 01:16:14.000
El apply que es el closer que contiene las propiedades que quieres trazar y

01:16:14.000 --> 01:16:18.000
el onchains que es el closer invocado cuando el valor de una propiedad cambia.

01:16:19.000 --> 01:16:22.000
Pero una la primera vez y luego ya está.

01:16:24.000 --> 01:16:29.000
Porque una de las gracias de combine bueno unas gracias que era también que siempre teniendo o sea que

01:16:29.000 --> 01:16:33.000
esto funciona como el como el -- Publisher de URLssession.

01:16:34.000 --> 01:16:35.000
Sí, sí, sí, sí.

01:16:36.000 --> 01:16:37.000
Una vez y ya está.

01:16:39.000 --> 01:16:43.000
O sea antes, la el rollo de combined es eso que siempre tenías que tener,

01:16:43.000 --> 01:16:47.000
o sea, el cancelable para trackear pero claro porque siempre tienes que

01:16:47.000 --> 01:16:51.000
tener una referencia memoria que esté que esté trackeando pero claro

01:16:51.000 --> 01:16:56.000
aquí como no no sé cómo hacen el trackear quedo, pero no tienen algo persistente.

01:16:59.000 --> 01:17:02.000
Eso tendría que tendría que investigarlo un poco más.

01:17:03.000 --> 01:17:06.000
que lo leí un artículo de de alguien eso que se había encontrado, no

01:17:06.000 --> 01:17:09.000
sé, pues también quería utilizar el patrón este nuevo para las

01:17:09.000 --> 01:17:12.000
notificaciones center creo que era o algo así que que que puede llamar

01:17:12.000 --> 01:17:18.000
todas las veces que quiera.

01:17:21.000 --> 01:17:22.000
No había manera.

01:17:22.000 --> 01:17:31.000
No, quería monitorizar eso, quería monitorizar un un uno de los antiguos publisher o sea, de de un Observé Boloddit.

01:17:31.000 --> 01:17:37.000
Uno de los de las propiedades asignadas como publisher, pues con con Vine podías hacerlo.

01:17:37.000 --> 01:17:41.000
Tú que te creas la la suscripción a ese publisher y ya está.

01:17:41.000 --> 01:17:44.000
Pero aquí no aquel te decía no solo te lo hace una vez y luego tendrías

01:17:44.000 --> 01:17:47.000
que llamar a una o sea tendrías que volver a suscribirte antes de un

01:17:47.000 --> 01:17:52.000
cambio te vuelves a suscribir para que

01:17:52.000 --> 01:17:54.000
el siguiente cambio te lo te lo vuelva a dar.

01:17:56.000 --> 01:18:02.000
Sí, lo estoy viendo aquí en una en en una lección de la gente de de

01:18:02.000 --> 01:18:08.000
OBJC, en una swift talk que tienen aquí, donde dicen que cuando pulsas el

01:18:08.000 --> 01:18:14.000
botón nada pasa porque la propiedad no está siendo accedida por el

01:18:14.000 --> 01:18:20.000
closer de apply, la primera vez que pulsas en cambiar nombre, porque

01:18:20.000 --> 01:18:26.000
están trazando el cambio de nombre, imprime el mensaje de cambio de

01:18:26.000 --> 01:18:33.000
nombre de la consola y cuando vuelves a pulsar el mensaje no es impreso de nuevo

01:18:37.000 --> 01:18:38.000
Sí, es que es de traca,

01:18:42.000 --> 01:18:47.000
Sí, efectivamente, dice de callback quets colts when the change y there's

01:18:47.000 --> 01:18:52.000
the name of their da dice y aquí lo pone and the observation das in fire

01:18:52.000 --> 01:18:57.000
for any subsecuent changes after this first callback.

01:19:02.000 --> 01:19:08.000
Si intentamos observar múltiple objeto solo ejecutará una vez el cluser del callback.

01:19:16.000 --> 01:19:28.000
Claro, debe ser que lo que hace básicamente es recrearlo el Suip UI cada vez que haya un cambio volverá a generar un nuevo with observación track.

01:19:29.000 --> 01:19:30.000
Eso es que entiendo.

01:19:33.000 --> 01:19:39.000
Pero en fin, está la cosa, por eso digo que no estamos hablando de para la

01:19:39.000 --> 01:19:45.000
gente que a lo mejor esté un poco perdida vale no estamos hablando de un

01:19:45.000 --> 01:19:52.000
cambio de una beta que le falla aquí o le falla allí una tontería.

01:19:52.000 --> 01:19:55.000
No, no, son fallos de de arquitectura, son fallos

01:19:55.000 --> 01:19:56.000
de de filosofía,

01:19:56.000 --> 01:19:58.000
de filosofía de la herramienta, ¿vale?

01:19:58.000 --> 01:20:03.000
De que no llega a cubrir la necesidad real de un desarrollador.

01:20:04.000 --> 01:20:12.000
De hecho, en su día yo fui uno de los que maté muy rápido con Bione, pero a lo mejor no estaba muerto, estaba de parranda.

01:20:12.000 --> 01:20:18.000
Lo que pasa es que Apple no le ha dado más bola porque se da otras cosas y y porque bueno está como está.

01:20:18.000 --> 01:20:23.000
O sea combine creo que es algo que nadie le pedía le pedía nada más pero para según qué cosas.

01:20:23.000 --> 01:20:27.000
Por ejemplo, el tema este que decíamos de notification center con

01:20:27.000 --> 01:20:31.000
Assynckawait es un poco complicado de interpretar porque al final que

01:20:31.000 --> 01:20:35.000
hacer un await, un for lo tienes que meter en un for y no es tan rápido

01:20:35.000 --> 01:20:39.000
de ver porque tú cuando vas pasando por el código ves el for await y

01:20:39.000 --> 01:20:47.000
crees que se va va a quedar esperado es complicado la verdad.

01:20:47.000 --> 01:20:50.000
Y ahí para según qué cosas yo sigo de hecho y y hablo de ello con varios

01:20:50.000 --> 01:20:53.000
desarrolladores que siguen diciendo que no, que bueno que que esta

01:20:53.000 --> 01:20:56.000
AsyncaWet está muy bien y para muchas cosas, porque por ejemplo, antes

01:20:56.000 --> 01:20:59.000
hablaste del publisher de URL session, eso sí sí que no tenía todo lo

01:20:59.000 --> 01:21:05.000
que tenías que montar.

01:21:06.000 --> 01:21:10.000
Para hacer una consulta de URL session, que al final no era tanto vale

01:21:10.000 --> 01:21:14.000
porque precisamente hicieron los mapas de hicieron un operador de de code

01:21:14.000 --> 01:21:18.000
era como muy al caso de la URL session y te lo pintaban bonito, pero no

01:21:18.000 --> 01:21:22.000
era como un poco mataremos de casa que haya nosotros, porque lo que decía

01:21:22.000 --> 01:21:26.000
antes tenías mantener un cancelable del estado que iba a ser una vez y

01:21:26.000 --> 01:21:31.000
luego lo seguías manteniendo ahí, ¿sabes?

01:21:31.000 --> 01:21:33.000
No tenía no tenía mucho sentido.

01:21:34.000 --> 01:21:45.000
Pero bueno no sé Julio cuál es la el resumen de de cómo está el estado de Las metas en el desarrollo.

01:21:46.000 --> 01:21:51.000
Pues que está, bueno, Pues que cosas elementales de lo más moderno pues

01:21:51.000 --> 01:21:56.000
no está terminado al cien por cien en la forma en la que los

01:21:56.000 --> 01:22:01.000
desarrolladores necesitaríamos que estuviera para que fuera realmente

01:22:01.000 --> 01:22:06.000
práctico como se ha vendido que lo sería.

01:22:07.000 --> 01:22:10.000
O sea que es es un poco como a media Fer.

01:22:12.000 --> 01:22:16.000
Yo este año puesto el caso, o sea pues viendo cómo está, mi y yo siempre

01:22:16.000 --> 01:22:20.000
soy el que me lanzo, mi recomendación es esperar hasta las versiones,

01:22:20.000 --> 01:22:24.000
porque es que no descarto que una diecisiete punto tres arreglé muchas

01:22:24.000 --> 01:22:31.000
cosas y haga varios cambios de especificación de las API.

01:22:31.000 --> 01:22:40.000
Y de hecho una de las cosas que Por ahora parece que no tenemos, pero sí hay atisbos de que pueda haber es el tema de la retrocompatibilidad.

01:22:44.000 --> 01:22:53.000
Porque las macros son retrocompatibles y de hecho has preview funciona desde a ellos catorce.

01:22:55.000 --> 01:23:00.000
Claro es que al final es añadir código, o sea el código que añades no

01:23:00.000 --> 01:23:05.000
no necesita una versión x, las aplicaciones no necesita una versión x, pues ya está.

01:23:05.000 --> 01:23:13.000
De hecho Observable no funciona en iOS catorce porque With Observision Tracket es solo iOS diecisiete.

01:23:15.000 --> 01:23:23.000
Es Swiss cinco, o sea no es Swiss cinco punto nueve, es iOS diecisiete, o sea forma parte de la SDK del iPhone, ¿vale?

01:23:23.000 --> 01:23:26.000
Cosa que no debería ser así.

01:23:27.000 --> 01:23:32.000
Yo entiendo que la ropa Observable debería estar basado en código de

01:23:32.000 --> 01:23:37.000
swift Si estuviera basado en código de swift cinco punto nueve para que

01:23:37.000 --> 01:23:42.000
fuera multiplataforma permitiría esa ese tracking más allá de Apple y

01:23:42.000 --> 01:23:47.000
podría ser retrocompatible hasta ellos catorce, pero como han hecho que

01:23:47.000 --> 01:23:52.000
el with observación tracking sea parte de la SDK del iPhone, pues

01:23:52.000 --> 01:23:57.000
entonces y esto podría funcionar en versiones anteriores si utilizan pues

01:23:57.000 --> 01:24:02.000
el tema de la, bueno, en este caso no haría falta usar el vaguar, este,

01:24:02.000 --> 01:24:08.000
el ¿Cómo se llama?

01:24:08.000 --> 01:24:11.000
El arroba BAC Deploy.

01:24:12.000 --> 01:24:15.000
No haría falta porque Willow Service Intracking es una API nueva.

01:24:15.000 --> 01:24:24.000
Único que tendrían que hacer es meterla en la como una dependencia de librería dentro de los ejecutables y ya está.

01:24:24.000 --> 01:24:25.000
Y funcionaría.

01:24:25.000 --> 01:24:29.000
Siempre y cuando lo utilice por detrás, otras cosas de llamadas al sistema

01:24:29.000 --> 01:24:33.000
que no estén en meses anteriores, porque sí, de hecho no sé cuál, ya

01:24:33.000 --> 01:24:37.000
como he estado de vacaciones el tiempo me baila un poco pero te lo estuve

01:24:37.000 --> 01:24:41.000
hablando con con un compañero eso que tampoco es tan sumamente fácil

01:24:41.000 --> 01:24:45.000
porque muchas veces el problema es que hay llamadas de al sistema o de

01:24:45.000 --> 01:24:51.000
bajo nivel que sí que no están en versiones anteriores.

01:24:52.000 --> 01:24:56.000
Eso es ya cuando empezamos, porque hay unas dependencias que se ve, o sea

01:24:56.000 --> 01:25:00.000
la parte de SWIFT, más o menos se ve las dependencias, pero luego por debajo.

01:25:01.000 --> 01:25:06.000
Pero bueno, pues está hecho un poco un poco carajal que dicen en mi pueblo,

01:25:07.000 --> 01:25:11.000
que usen y en Apple GPT y a ver si se les les arregla el tema.

01:25:11.000 --> 01:25:20.000
Y estamos a las puertas, de hecho, el otro día Paul Jasson hablaba de Suip seis, que va a romper todo, claro, sois seis, es eso.

01:25:20.000 --> 01:25:24.000
Va va a venir aquí a romper todo y

01:25:24.000 --> 01:25:25.000
--

01:25:26.000 --> 01:25:27.000
Bueno, va mi código.

01:25:28.000 --> 01:25:35.000
Yo creo que se espero que que se tendrán que que esperar un poquito porque porque no están las cosas ahora.

01:25:38.000 --> 01:25:42.000
Básicamente, pues entramos entonces si te parece en el bloque final bloque

01:25:42.000 --> 01:25:46.000
principal más que el bloque final, donde vamos a hablar de pues bueno

01:25:46.000 --> 01:25:50.000
algo que está derivado cierta forma de lo que hemos estado comentando,

01:25:50.000 --> 01:25:57.000
que es el tema de las arquitectura.

01:26:12.000 --> 01:26:15.000
Alguna vez has soñado con convertirte en un desarrollador, iOS, creando

01:26:15.000 --> 01:26:18.000
aplicaciones que millones de personas podrían usar todos los días ¿Te

01:26:18.000 --> 01:26:21.000
has sentido abrumado por la complejidad y la exigencia del mundo del

01:26:21.000 --> 01:26:25.000
desarrollo Apple?

01:26:25.000 --> 01:26:30.000
En Apple Colin Academy, entendemos tus inquietudes y tenemos la solución para ti.

01:26:30.000 --> 01:26:33.000
Sabemos que convertirse en un desarrollador de años no es un camino fácil

01:26:33.000 --> 01:26:36.000
ni rápido, requiere dedicación, es esfuerzo y una formación de calidad,

01:26:36.000 --> 01:26:39.000
pero no te preocupes, estamos aquí para ayudarte a recorrer ese camino

01:26:39.000 --> 01:26:44.000
hacia la excelencia.

01:26:45.000 --> 01:26:49.000
Presentamos el Swift developer program dos mil veintitrés, un programa de

01:26:49.000 --> 01:26:53.000
formación que te enseñará a crear código nativo de calidad para

01:26:53.000 --> 01:26:58.000
entornos Apple abriendo las puertas de la App Store para tus proyectos.

01:26:58.000 --> 01:27:02.000
Aprenderás desde lo más básico hasta lo más complejo, con una

01:27:02.000 --> 01:27:06.000
formación basada en trabajo y experiencia te guiaremos paso a paso con

01:27:06.000 --> 01:27:11.000
prácticas y ejercicios de todos los niveles para asentar tus conocimientos.

01:27:11.000 --> 01:27:15.000
Y no solo eso, también tendrás la oportunidad de crear un proyecto real

01:27:15.000 --> 01:27:19.000
como el que publicarías en el App Store con el seguimiento de nuestros

01:27:19.000 --> 01:27:24.000
expertos formadores con años de experiencia en el mercado.

01:27:24.000 --> 01:27:30.000
Este programa incluye formación en Swift, Swift UI y una introducción a visiónOS.

01:27:30.000 --> 01:27:34.000
El sistema operativo del nuevo Apple Vision Pro.

01:27:34.000 --> 01:27:40.000
Así, estarás preparado para enfrentarte a los desafíos actuales y futuros del desarrollo de aplicaciones.

01:27:40.000 --> 01:27:43.000
Estás listo para iniciar tu camino como developer, el Swift developer

01:27:43.000 --> 01:27:46.000
Probrand, dos mil veintitrés comienza el dos de octubre y se extiende

01:27:46.000 --> 01:27:51.000
hasta el treinta de noviembre.

01:27:51.000 --> 01:27:54.000
Tendrás clases de lunes jueves de siete de la tarde a once de la noche

01:27:54.000 --> 01:27:57.000
hora española, un horario perfecto tanto para gente de Europa como de

01:27:57.000 --> 01:28:01.000
Latinoamérica.

01:28:01.000 --> 01:28:04.000
Y recuerda que tienes hasta el treinta y uno de enero de dos mil

01:28:04.000 --> 01:28:07.000
veinticuatro para entregar tu proyecto final, así que si te apuntas,

01:28:07.000 --> 01:28:10.000
ponte las pilas.

01:28:11.000 --> 01:28:15.000
Tenemos sólo cuarenta plazas exclusivas para garantizar la calidad de la formación.

01:28:16.000 --> 01:28:20.000
Visita nuestra web coding.académico s d p veintitrés, y ahí tendrás

01:28:20.000 --> 01:28:24.000
toda la información y contacto con nosotros para resolver cualquier duda,

01:28:24.000 --> 01:28:28.000
reserva tu plaza hoy y da el primer paso para convertirte en un exitoso

01:28:28.000 --> 01:28:35.000
desarrollador de entornos Apple.

01:28:36.000 --> 01:28:38.000
Con Apple Godín Academy.

01:28:39.000 --> 01:28:40.000
Y recuerda,

01:28:40.000 --> 01:28:41.000
Binative.

01:28:54.000 --> 01:28:56.000
Terreno pantanoso Julio.

01:28:56.000 --> 01:29:00.000
Terreno pantanoso esto ha hecho a mucha gente dejar de hablarse.

01:29:02.000 --> 01:29:03.000
Sí, sí.

01:29:05.000 --> 01:29:10.000
Arquitectura o patrón arquitectónico según a quien le preguntes.

01:29:11.000 --> 01:29:17.000
Básicamente la arquitectura es la forma en la que yo voy a organizar.

01:29:19.000 --> 01:29:25.000
Mi proyecto a nivel de capas como los obros, ¿vale?

01:29:28.000 --> 01:29:39.000
Pues para conseguir que mi proyecto esté organizado de una manera que sea fácilmente escalable, ¿vale?

01:29:39.000 --> 01:29:40.000
Cosa bonita.

01:29:41.000 --> 01:29:51.000
Qué es la escalabilidad, es la necesidad de ir ampliando tu aplicación, e ir haciendo que cada vez tenga más cosas, ¿vale?

01:29:51.000 --> 01:29:56.000
Entonces bueno, pues eso sería un poco esa escalabilidad, ¿ok?

01:29:58.000 --> 01:30:00.000
Yo añadiría Julio a nivel físico,

01:30:01.000 --> 01:30:09.000
es decir, cómo los los tour en ficheros, carpetas y demás, pero sobre todo las carreteras hablan de cómo hacerlo a nivel lógico, ¿vale?

01:30:09.000 --> 01:30:13.000
¿A qué entidades lógicas quién se encarga de qué?

01:30:13.000 --> 01:30:18.000
Es más que lo que decía de dónde lo pongo o dónde dónde lo dejo de

01:30:18.000 --> 01:30:23.000
poner, que hay muchas arquitectura, ni siquiera se se meten y como dice

01:30:23.000 --> 01:30:28.000
Julio la clave es esa escalabilidad luego también podíamos decir el

01:30:28.000 --> 01:30:33.000
testeo vale muchas arquitectura se crean casi por por facilitar el testeo

01:30:33.000 --> 01:30:38.000
vale y también se busca, pero bueno, yo creo que eso debería ser tan

01:30:38.000 --> 01:30:44.000
básico, que es la reutilización del código.

01:30:44.000 --> 01:30:47.000
Es decir, no escribir lo mismo en tres sitios, ¿vale?

01:30:47.000 --> 01:30:50.000
Sino que esté suficientemente bien organizado para que si necesitas usar

01:30:50.000 --> 01:30:53.000
algo que ya está hecho, lo cuente rápidamente y que esté colocado donde

01:30:53.000 --> 01:30:56.000
donde tiene que estar.

01:30:59.000 --> 01:31:10.000
Yo cuando hablo de patrones de arquitectura tengo una diapositiva maravillosa que me encanta, donde pongo varias reglas de oro para las arquitectura.

01:31:11.000 --> 01:31:17.000
Porque la gente se complica a unos niveles de locura con este tema.

01:31:19.000 --> 01:31:23.000
Un patrón de arquitectura está hecho para servirnos a nosotros.

01:31:24.000 --> 01:31:28.000
Nosotros no debemos servir al patrón.

01:31:30.000 --> 01:31:35.000
Hay gente que hace lo que sea por cumplir ciertas normas y es capaz de

01:31:35.000 --> 01:31:40.000
básicamente destruir su código o convertirlo en un infierno por tal de

01:31:40.000 --> 01:31:46.000
cumplir el manual de ABIC de tal arquitectura.

01:31:47.000 --> 01:31:50.000
Déjame que te puntalice una cosa, porque es que justo me he dado una

01:31:50.000 --> 01:31:53.000
cuenta, cuenta hablando estos días de arquitectura, hay mucha gente, de

01:31:53.000 --> 01:31:57.000
hecho yo creo que te lo dije a ti.

01:31:57.000 --> 01:32:01.000
Hay mucha gente que precisamente quiere ceñirse a no arquitectura es decir

01:32:01.000 --> 01:32:05.000
tener un día burro es que llamo yo para no tener que tomar estas

01:32:05.000 --> 01:32:09.000
decisiones de cómo estructurar tu código lógicamente, que se encarga de

01:32:09.000 --> 01:32:13.000
qué, cómo lo divido, sino que mucha gente que se pasó, es una de las

01:32:13.000 --> 01:32:17.000
claves de la programación, ¿vale?

01:32:17.000 --> 01:32:20.000
El el tener tu cabeza muy morada y es algo que solo te da la experiencia.

01:32:21.000 --> 01:32:22.000
¿Está claro?

01:32:22.000 --> 01:32:24.000
Tener tu cabeza muy morada para ver ¿cómo lo organizas?

01:32:24.000 --> 01:32:27.000
Pues la gente yo creo que quiere ahorrarse ese trabajo y muchas sigue

01:32:27.000 --> 01:32:30.000
patrones pues para eso para ahorrarse y decir pues esto va aquí, esto va

01:32:30.000 --> 01:32:33.000
aquí, esto va aquí y y no me planteo lo más mínimo que el esté

01:32:33.000 --> 01:32:37.000
haciendo una barra basada.

01:32:39.000 --> 01:32:46.000
Sí, porque El siguiente punto que tengo en esta diapositiva es: No sobreingenierices tu código.

01:32:48.000 --> 01:32:50.000
Que es lo siguiente que hace todo el mundo.

01:32:50.000 --> 01:32:51.000
¿Qué es sobreingenierizar?

01:32:53.000 --> 01:32:59.000
Pues básicamente es darle demasiados componentes, demasiados elementos,

01:32:59.000 --> 01:33:05.000
demasiada división, que cuando tengas que cambiar cualquier cosa, tengas

01:33:05.000 --> 01:33:11.000
que saltar por siete sitios distintos Jam to definition para llegar a un

01:33:11.000 --> 01:33:17.000
lugar donde puedas cambiar un dato, es decir, montarte una estructura que

01:33:17.000 --> 01:33:23.000
es sumamente compleja de controlar simplemente de nuevo por no prevenir el

01:33:23.000 --> 01:33:29.000
siguiente punto, que es no caigas en las trampas de los tutoriales.

01:33:34.000 --> 01:33:39.000
Porque yo sigo el tutorial de Paco, que Paco, la arquitectura Paco le viene

01:33:39.000 --> 01:33:44.000
muy bien, pero a lo mejor a ti no, porque Paco hizo un proyecto x con un

01:33:44.000 --> 01:33:49.000
tamaño y y con una importancia z y para ese la arquitectura Paco era

01:33:49.000 --> 01:33:54.000
cojonuda, pero para ti no.

01:33:55.000 --> 01:33:59.000
Cuántos Pipers hay por ahí sueltos en aplicaciones de tres pantallas

01:34:00.000 --> 01:34:04.000
y eso es que es que no la misma arquitectura o la misma o yo no hago la

01:34:04.000 --> 01:34:08.000
misma manera, o sea, yo no hago la misma manera una una aplicación según

01:34:08.000 --> 01:34:12.000
su su sencillez, es decir, hay veces que simplemente se divide o se crea

01:34:12.000 --> 01:34:16.000
otra entidad o que la que tengo es demasiado gorda y quiero quitar parte y

01:34:16.000 --> 01:34:21.000
sacarlo a otro sitio.

01:34:21.000 --> 01:34:24.000
Pero no es que siempre haya que sacarla a otro sitio.

01:34:24.000 --> 01:34:25.000
No, no, no.

01:34:25.000 --> 01:34:28.000
De hecho, la propia Apple, en sus ejemplos, muchas veces, mete cosas donde

01:34:28.000 --> 01:34:31.000
no es, pues porque por no escribir otra clase y hacer todo de que es el

01:34:31.000 --> 01:34:34.000
licenciado y las propiedades y no sé qué, pues las meten una view o en

01:34:34.000 --> 01:34:37.000
el caso de eso yo, ahí las meten un view controller y ya está, o sea,

01:34:37.000 --> 01:34:40.000
porque es que va a ser una pasas a ser cuatro líneas y de la otra manera

01:34:40.000 --> 01:34:47.000
tienes que hacer diez doce líneas.

01:34:48.000 --> 01:34:56.000
Que si mañana lo amplío, lo saco, o sea, no pasa nada, una arquitectura es algo una arquitectura como una aplicación es algo vivo.

01:34:56.000 --> 01:34:57.000
Sí.

01:34:57.000 --> 01:34:58.000
No está en piedra.

01:34:58.000 --> 01:35:00.000
Entonces una clase y esa clase no está en piedra.

01:35:00.000 --> 01:35:03.000
De hecho, probablemente si haces una clase y a los dos meses de una

01:35:03.000 --> 01:35:06.000
aplicación que sigue actualizándose, vuelves a pasar por esa clase, se

01:35:06.000 --> 01:35:09.000
te ocurren cuatro cosas que recibiste en su día, que antes no tenía

01:35:09.000 --> 01:35:14.000
sentido que ahora se la tire.

01:35:19.000 --> 01:35:26.000
A lo cual se añade no copies IP que simplemente sin entender y no sigas ciegamente las estrategias de otros.

01:35:29.000 --> 01:35:35.000
Busca tu propia solución claro si no entiendes lo que estás copiando y

01:35:35.000 --> 01:35:41.000
pegando pues no puedes encontrar tu propia solución y aquí viene el la

01:35:41.000 --> 01:35:48.000
regla de oro don five de framework No te pelees con el framework.

01:35:50.000 --> 01:35:52.000
Porque cuanta gente se pelea con el framework.

01:35:54.000 --> 01:35:57.000
¿O cuántas arquitectura se pelean con el framework?

01:35:57.000 --> 01:35:59.000
Porque ¿qué es TCA?

01:36:04.000 --> 01:36:06.000
A ver, es que eso y la y la gente lo confunde.

01:36:06.000 --> 01:36:08.000
Es que toda la gente vive muy bien.

01:36:08.000 --> 01:36:13.000
las arquitectura valen para Todd, quiero decir saca una arquitectura view

01:36:13.000 --> 01:36:18.000
modelo del view vale para todo te da igual saca mañana un lenguaje de no

01:36:18.000 --> 01:36:24.000
sé qué para bueno al ser view tienes que tener un algo algo gráfico.

01:36:24.000 --> 01:36:27.000
Pero sacas cualquier cosa para programar cualquier lenguaje, para programar

01:36:27.000 --> 01:36:30.000
cualquier cacharro que tenga una pantalla, y claro, view modelo del view

01:36:30.000 --> 01:36:35.000
va a funcionar, como no va a funcionar si es una arquitectura.

01:36:37.000 --> 01:36:42.000
Si hay un libro, o sea un libro no muchos libros sobre eso, como a funcionar en este nuevo lenguaje.

01:36:43.000 --> 01:36:46.000
Pues eso es lo primero que tenéis que entender.

01:36:47.000 --> 01:37:05.000
Aplicar vamos a poner m v v m que sabemos que puede ser aplicado a m v c y a m y a sweet UI vale No se aplica de la misma forma ni es igual.

01:37:05.000 --> 01:37:12.000
Porque lo estás aplicando sobre el funcionamiento nativo de la librería y

01:37:12.000 --> 01:37:19.000
Por mucho que tú quieras poner capas Por muchas víboras Por muchas

01:37:19.000 --> 01:37:26.000
letras Por muchos interactors por muchas mierdas que le quieras meter Una

01:37:26.000 --> 01:37:33.000
aplicación en UAKID No funciona si no tiene outlet y acciones Y te puedes

01:37:33.000 --> 01:37:40.000
poner como te dé la gana Pero tiene audlesdiaciones o aquello no funciona

01:37:40.000 --> 01:37:47.000
Y eso es lo que la gente no termina de enterarse Entonces cuando les dice

01:37:47.000 --> 01:37:55.000
que que sí, que quieren usar vaiper, vaiper pinky, winky, o cancamusa?

01:37:58.000 --> 01:38:00.000
Si para ti es una solución, úsalo.

01:38:00.000 --> 01:38:07.000
Pero no dejan de ser Capa sobre capa, sobre capa, sobre capa, sobre capa,

01:38:07.000 --> 01:38:14.000
sobre capa, de MVC porque Joekee funciona en MVC y no funciona si no es

01:38:14.000 --> 01:38:22.000
MVC y te reto a que hagas funcionar UI y Kip sin usar MVC porque no lo vas a conseguir.

01:38:23.000 --> 01:38:24.000
Eso sí es simple.

01:38:29.000 --> 01:38:34.000
Pero como tú dices, corren sangre a ese respecto.

01:38:37.000 --> 01:38:48.000
A ver es que ya te digo lo que de que no que yo creo que hay que o sea el caso de x vamos a poner un ejemplo claro es que se me uve c.

01:38:48.000 --> 01:38:53.000
Luego por encima puedes hacerlo mejor o peor o puedes inventar sesenta capas.

01:38:53.000 --> 01:39:01.000
Y luego puedes hacer variaciones, pues bueno, pues yo tenía, se lo tenía apuntado por aquí, a ver, problema de UIKID y de su MVC.

01:39:01.000 --> 01:39:05.000
Los más view controles, ¿vale?

01:39:05.000 --> 01:39:09.000
Tenemos este problema, te lo comp, pues nos podemos inventar.

01:39:09.000 --> 01:39:15.000
Yo en mi caso me invento una cosa, que le llamo yo así, que le podría, seguro que hay otro que le llamo de otra manera.

01:39:15.000 --> 01:39:19.000
Pues yo hago managers, models, que me ayudan a hacer esas cosas, lo único

01:39:19.000 --> 01:39:23.000
que hacen es quito lógica de un sitio y la paso al otro no tiene más o

01:39:23.000 --> 01:39:27.000
comparto pero es que el otro es el modelo que llamo es el modelo, o sea,

01:39:27.000 --> 01:39:31.000
me refiero la lo que creo nuevo, digamos, la entidad que creo nueva, que

01:39:31.000 --> 01:39:35.000
yo le llamo manager, simplemente es coger una parte de una funcionalidad

01:39:35.000 --> 01:39:41.000
que tiene un view controller y sacará el view controller.

01:39:41.000 --> 01:39:45.000
Ya está, punto, para organizarlo un poco mejor y y ya está, pero claro, y

01:39:45.000 --> 01:39:49.000
esto en principio te quita un problema pero luego te empieza a meter otros

01:39:49.000 --> 01:39:53.000
vale mientras más capas es lo malo que tienen las capas las creas para

01:39:53.000 --> 01:39:57.000
quitarte un problema y te metes diez.

01:39:57.000 --> 01:39:58.000
Exacto.

01:39:58.000 --> 01:40:00.000
Yo en este caso, ¿qué pasa con los mayores?

01:40:00.000 --> 01:40:02.000
Pues ya tienes que hacer inyección de dependencias.

01:40:03.000 --> 01:40:08.000
Pues es pues al final andas con single to recordad los single to por favor

01:40:08.000 --> 01:40:13.000
meterlos en los init, tienes un problema porque cuando haces un link

01:40:13.000 --> 01:40:18.000
personalizado de view controller ya empiezas a tener jaleos, o sea te

01:40:18.000 --> 01:40:23.000
quiero decir que es que no no es tan sencillo de venir aquí y le o sea no

01:40:23.000 --> 01:40:28.000
por meter más capas vas a acabar haciéndolo mejor es que muchas veces

01:40:28.000 --> 01:40:33.000
que al revés, si, de hecho, si es que si tienes que hacer una aplicación

01:40:33.000 --> 01:40:38.000
y con MVC logras no caer en los más y view controles estos que estamos comentando.

01:40:38.000 --> 01:40:39.000
Ole.

01:40:40.000 --> 01:40:41.000
Sé feliz con eso.

01:40:41.000 --> 01:40:42.000
¿Lo has conseguido?

01:40:43.000 --> 01:40:45.000
No necesitas una mierda de que te sirva por encima.

01:40:45.000 --> 01:40:55.000
Sé feliz, si consigues hacer una aplicación tuya de aquí y solo metes lo que dice MVC, pues perfecto, perfecto.

01:40:59.000 --> 01:41:05.000
De hecho, yo como estructura UAKIT vale primero a mí a día de hoy no se

01:41:05.000 --> 01:41:11.000
me ocurre crear una aplicación en UX si no uso fuentes difusas de datos

01:41:11.000 --> 01:41:19.000
para tablas o para colecciones, ¿vale?

01:41:19.000 --> 01:41:26.000
Estamos en el año dos mil veintitrés, está a punto de salir a los diecisiete y las fuentes difusas están disponibles desde a ellos trece.

01:41:27.000 --> 01:41:31.000
Lo que yo creo que ya ha pasado lo suficiente como para dejar de tonterías.

01:41:33.000 --> 01:41:39.000
Las fuentes difusas de datos convierten el view controller en un chiste, ¿vale?

01:41:40.000 --> 01:41:46.000
Porque la el el lo que es la fuente de datos, ¿vale?

01:41:46.000 --> 01:41:50.000
Te la llevas fuera y eso además te va a permitir aislar la lógica de los

01:41:50.000 --> 01:41:54.000
modelos y la lógica incluso de la propia vista te la puedes llevar fuera

01:41:54.000 --> 01:42:00.000
a una clase aparte.

01:42:00.000 --> 01:42:02.000
Eso es, ¿vale?

01:42:03.000 --> 01:42:08.000
Entonces, yo lo primero que hago siempre es crear los datos.

01:42:10.000 --> 01:42:12.000
Todos los strtruts con los que voy a trabajar.

01:42:14.000 --> 01:42:20.000
Entonces, yo, Cojo y digo, vale.

01:42:21.000 --> 01:42:26.000
Creo el strut, y el strut es, por ejemplo, mis datos de, empleados, mis

01:42:26.000 --> 01:42:31.000
datos de departamentos, mis datos de proyectos, mis datos de lo que quiera

01:42:31.000 --> 01:42:36.000
utilizar dentro de la estructura.

01:42:36.000 --> 01:42:44.000
Todos, strut, sin sin código, perdón sólo datos conformado con codavol y

01:42:44.000 --> 01:42:52.000
con hashavol de acuerdo en el momento que tengo eso los anos también los

01:42:52.000 --> 01:43:00.000
hago tipificados a string, también los hago codeutable y también los

01:43:00.000 --> 01:43:08.000
hago case y table para poder iterar cuando quiero sacar un listado de

01:43:08.000 --> 01:43:16.000
selección, ¿vale?

01:43:16.000 --> 01:43:21.000
Entonces cuando ya tengo definidos todos los datos que voy a utilizar que

01:43:21.000 --> 01:43:26.000
son strugts preparados para trabajar serializadamente con Jason's e

01:43:26.000 --> 01:43:31.000
insisto no tiene dato ninguno solo tiene los elementos.

01:43:31.000 --> 01:43:42.000
Y punto, entonces lo que hago es crearme a través de un patrón, ¿Singleton?

01:43:45.000 --> 01:43:50.000
Lo que yo denomino la persistencia del modelo, que esta persistencia es el

01:43:50.000 --> 01:43:55.000
componente que se va a encargar de cargar y grabar los datos del modelo,

01:43:55.000 --> 01:44:02.000
es decir, a persistirlos.

01:44:04.000 --> 01:44:11.000
Partimos de la base de una aplicación que no está usando con edad vale

01:44:11.000 --> 01:44:18.000
esos datos pueden venir de la nube de una api propia o poder estar el

01:44:18.000 --> 01:44:25.000
local grabados en Jason el local vale Entonces, este modelo de

01:44:25.000 --> 01:44:32.000
persistencia utiliza vale inyección de dependencias a través de

01:44:32.000 --> 01:44:39.000
protocolos para poder tener una persistencia sobre datos de test y otra

01:44:39.000 --> 01:44:46.000
sobre datos en de producción, ¿vale?

01:44:46.000 --> 01:44:50.000
Si quiero usar Unitesteen, ¿vale?

01:44:50.000 --> 01:44:54.000
Si no quiero usar Unitesteen, pues no no hace falta, ¿vale?

01:44:55.000 --> 01:44:56.000
Ok

01:44:58.000 --> 01:45:00.000
y Julio dime dime.

01:45:00.000 --> 01:45:02.000
Te voy a abrir ahí debate.

01:45:03.000 --> 01:45:08.000
A mí los protocolos me gusta pero no demasiado porque porque también yo a

01:45:08.000 --> 01:45:13.000
veces hago otra cosa que no utilizando un protocolo utilizó la misma la

01:45:13.000 --> 01:45:18.000
misma estructura bueno si necesita algún algún estado pues pongo una

01:45:18.000 --> 01:45:23.000
clase luego del modo en que hace Apple el persistence man, el persistence

01:45:23.000 --> 01:45:28.000
controller que hace de de corredad, en el cual lo que hace es una Saret al

01:45:28.000 --> 01:45:33.000
singleton, digamos, de producción, y un preview al single ton pues de las

01:45:33.000 --> 01:45:38.000
pre views o y luego te haces otro single ton de test no siempre funciona

01:45:38.000 --> 01:45:43.000
está claro, depende mucho de la de la responsabilidad que tenga la

01:45:43.000 --> 01:45:50.000
entidad, ¿vale?

01:45:50.000 --> 01:45:53.000
Hay veces que tienes que recurrir a los protocolos, pero a mí siempre que

01:45:53.000 --> 01:45:56.000
puedo, utilizo esto, vuelvo y no te evitas pues andar con el protocolo de

01:45:56.000 --> 01:46:01.000
no sé qué, type, que se le se le se le suele poner, ¿vale?

01:46:01.000 --> 01:46:04.000
Luego te haces un mo, para los test te haces un mo, no sé que no sé

01:46:04.000 --> 01:46:07.000
cuántos, que se conformes el protocolo y ya le la haces los que quieres,

01:46:07.000 --> 01:46:10.000
pero a mí esa esa manera de de hacerlo, de hecho yo no lo voy a estar las

01:46:10.000 --> 01:46:13.000
previews de si os fijais, si alguno En cuanto, de hecho, creo que cuando

01:46:13.000 --> 01:46:16.000
creas un proyecto, no sé si es con quince, pero por lo menos es con

01:46:16.000 --> 01:46:19.000
catorce, el proyecto por defecto, si le has metido corre data, eso te crea

01:46:19.000 --> 01:46:27.000
un persistence controller, ¿vale?

01:46:27.000 --> 01:46:31.000
Que tiene un un single subject y

01:46:31.000 --> 01:46:32.000
un punto previo.

01:46:32.000 --> 01:46:33.000
¿Vale?

01:46:33.000 --> 01:46:34.000
Sí, tiene dos estatilet.

01:46:35.000 --> 01:46:43.000
En ese caso, bueno, es una forma también de usar constructores que devuelvan distintas instancias.

01:46:43.000 --> 01:46:44.000
Es otra forma completamente.

01:46:44.000 --> 01:46:47.000
Total, lo que te hace eso es por si necesitas testear algo o previews de

01:46:47.000 --> 01:46:50.000
algo que solo cambia el sobre todo previos da igual, porque sí que

01:46:50.000 --> 01:46:53.000
premios son datos, pero si necesitas testear solo cambiando el

01:46:53.000 --> 01:46:58.000
inicializador, ¿vale?

01:46:58.000 --> 01:47:04.000
Porque lo que hace esto es precisamente cada single ton te hace un inicializador distinto, ¿vale?

01:47:04.000 --> 01:47:12.000
Si ya necesitas testear, si ese, digamos, ese controlador, ese control tiene varias funciones, ¿vale?

01:47:12.000 --> 01:47:15.000
Eso ya para amoquear las tienes que hacer un protocolo.

01:47:16.000 --> 01:47:28.000
Incluso yo he hecho protocolos también de se puede hacer de user default si los quieres moquear una vez del contact store CN con TACStore ¿vale?

01:47:28.000 --> 01:47:31.000
Que digamos que es la la función principal para acceder a la a la agenda

01:47:31.000 --> 01:47:34.000
de números del teléfono, pues eso, porque de hecho me surgió el

01:47:34.000 --> 01:47:37.000
problema y no tardé mucho en entrar con la solución, pero eso lo que te

01:47:37.000 --> 01:47:40.000
haces es conformas eso al protocolo, a un protocolo que te inventas tú

01:47:40.000 --> 01:47:43.000
con las funciones precisamente que tiene este contact store, que ya existe

01:47:43.000 --> 01:47:50.000
en el sistema o este user de folds.

01:47:50.000 --> 01:47:54.000
Las funciones que tenéis users default que utilizas, las protocolizas

01:47:54.000 --> 01:47:58.000
dices que users default, conforma ese protocolo y que tu MOOC también

01:47:58.000 --> 01:48:02.000
para los los test conforme a ese protocolo.

01:48:04.000 --> 01:48:08.000
Pues sí, es una es una es una muy buena opción.

01:48:08.000 --> 01:48:14.000
O sea quiere decir que este modelo de persistencia podríamos usarlo, o

01:48:14.000 --> 01:48:20.000
bien inyectando un protocolo con distintas instancias una para producción

01:48:20.000 --> 01:48:27.000
y otra para test o como ha dicho Arturo podíamos tener un final class ¿vale?

01:48:27.000 --> 01:48:32.000
Porque por favor usar siempre Final Class en todos lados, ¿vale?

01:48:32.000 --> 01:48:36.000
Porque no vais a usar herencia, lleváis años sin usarla, ¿vale?

01:48:37.000 --> 01:48:39.000
No, y mirar sobre todo si podéis hacerlo truco.

01:48:39.000 --> 01:48:42.000
Primero primero probar si podéis si no tiene un estado y se puede utilizar

01:48:42.000 --> 01:48:45.000
nuestro y luego ya si no vale si conserváis algún estado que necesitáis

01:48:45.000 --> 01:48:49.000
ya final class.

01:48:49.000 --> 01:48:50.000
Exacto.

01:48:50.000 --> 01:48:55.000
Entonces Si haces la persistencia del modelo, pues la otra opción que no

01:48:55.000 --> 01:49:00.000
es inyectándote desde protocolo sería con dos estaticlet, con dos

01:49:00.000 --> 01:49:05.000
inicializadores, que uno sería el shared del inicializador init que es

01:49:05.000 --> 01:49:10.000
conveniente poner en privado para que así no pueda ser usado para crear

01:49:10.000 --> 01:49:15.000
la instancia desde fuera y creáis un otro otro staticlet que sería el de

01:49:15.000 --> 01:49:20.000
preview que usaría el parámetro por defecto del init que en el caso del

01:49:20.000 --> 01:49:25.000
shed coge los datos de producción en el caso de la preview cogería los

01:49:25.000 --> 01:49:30.000
datos de prueba, ¿vale?

01:49:30.000 --> 01:49:35.000
En el caso del persistente controller, de Cordata en Sub UI lo que hace

01:49:35.000 --> 01:49:40.000
Apple es tener un parámetro que se llama in memory que por defecto es igual a false.

01:49:41.000 --> 01:49:46.000
Cuando llamas al share y cuando llamas al preview es true.

01:49:46.000 --> 01:49:50.000
Y entonces pues así consiguen que que cambie la forma en la que inicializa

01:49:50.000 --> 01:49:54.000
el contenedor de persistencia hacia defnur, que al final es anularle el

01:49:54.000 --> 01:49:59.000
almacenamiento, ¿vale?

01:49:59.000 --> 01:50:01.000
Entonces ese sería el siguiente paso, ¿vale?

01:50:01.000 --> 01:50:02.000
Crear.

01:50:02.000 --> 01:50:03.000
Y te viene Julio.

01:50:03.000 --> 01:50:07.000
Perdona, y te viene el puritano, de las arquitectura y del código

01:50:07.000 --> 01:50:11.000
olímpico te dice, me estás metiendo la preview de y al lado del código

01:50:11.000 --> 01:50:16.000
de producción anda vete por ahí.

01:50:20.000 --> 01:50:21.000
Vete para ella abre

01:50:21.000 --> 01:50:22.000
porque claro el problema.

01:50:22.000 --> 01:50:23.000
Ahí.

01:50:23.000 --> 01:50:25.000
Que si tú tienes lo di

01:50:25.000 --> 01:50:29.000
privado o sea, si haces el link privado, solo puedes hacer este otro este

01:50:29.000 --> 01:50:33.000
otro staticlet para los previos dentro de la misma definición de

01:50:33.000 --> 01:50:37.000
producción, entonces claro no te lo puede llevar fuera, si te lo quieres

01:50:37.000 --> 01:50:41.000
llevar fuera a una, a un fichero que tengas con pilados solo para los test

01:50:41.000 --> 01:50:45.000
pues tienes una de las dos que podrás hacer es ponerlo como el límite

01:50:45.000 --> 01:50:53.000
público pero ya no restringes el uso de

01:50:53.000 --> 01:50:55.000
Bueno, hay una forma de arreglar, ¿vale?

01:50:55.000 --> 01:51:05.000
A ese, a ese, a esa persona puñetera, le vamos a decir que se cree un fichero de swift dentro de la carpeta preview content.

01:51:08.000 --> 01:51:17.000
Y ahí ponga una extensión de la clase de la persistencia añadiendo ahí el staticlet del premio.

01:51:18.000 --> 01:51:25.000
Entonces todo lo que haya en la carpeta de preview content no va a la App Store ni se compila en producción.

01:51:28.000 --> 01:51:39.000
Y diré bueno pero es que preview content no está en UAKIT bueno sólo hay que venirse a los a lo que es los datos generales, ¿vale?

01:51:39.000 --> 01:51:43.000
A la pestaña general de los targets, y abajo del todo tenemos un lugar que

01:51:43.000 --> 01:51:47.000
pone development assets vale entonces ahí le damos a más en nuestro

01:51:47.000 --> 01:51:51.000
proyecto de UI Kit le damos una ruta de una carpeta física dentro de

01:51:51.000 --> 01:51:55.000
nuestro proyecto y automáticamente todo lo que haya en esa carpeta no se

01:51:55.000 --> 01:52:01.000
va a subir a producción.

01:52:03.000 --> 01:52:04.000
Por lo que asunto arreglado.

01:52:04.000 --> 01:52:10.000
Yo es donde meto todos los datos de preview de las del de las de Suic UI,

01:52:10.000 --> 01:52:16.000
todos los datos de las previos de Suic UI de prueba, lo meto en esta

01:52:16.000 --> 01:52:22.000
carpeta a través de extensiones y así no amplío tontamente el código

01:52:22.000 --> 01:52:28.000
de producción pero funciona exactamente igual ¿vale?

01:52:28.000 --> 01:52:34.000
Y sabes que cuando lo pongas en modo release, la carpeta de preview content no va a incluirse.

01:52:37.000 --> 01:52:41.000
Por lo que no va a haber en producción nada que sea en ese sentido.

01:52:42.000 --> 01:52:43.000
Entonces bueno pues ahí tenemos ¿no?

01:52:43.000 --> 01:52:46.000
Esa esa opción vale.

01:52:46.000 --> 01:52:52.000
Entonces cuando ya tengo la persistencia del modelo vale, lo que hago es

01:52:52.000 --> 01:52:58.000
coger y generarme la lógica del modelo, es decir, toda la lógica del

01:52:58.000 --> 01:53:04.000
modelo a nivel de los datos que entran, los que carga a través de la

01:53:04.000 --> 01:53:10.000
persistencia, la inyección o no de la persistencia a partir de la

01:53:10.000 --> 01:53:19.000
instancia de test o la instancia normal de producción, ¿vale?

01:53:19.000 --> 01:53:27.000
Y bueno pues intentar poner pues toda esa información dentro de ese de esa lógica del modelo.

01:53:27.000 --> 01:53:34.000
De esta manera, pues en la lógica del modelo tengo todo lo que sea referente a datos secundarios.

01:53:35.000 --> 01:53:40.000
Datos calculados, filtrados, elementos de borrado, elementos de devolución

01:53:40.000 --> 01:53:45.000
de datos, todo lo que Suponga la información que requiere el view

01:53:45.000 --> 01:53:50.000
controller está todo en el model logic, por lo que el view controller que

01:53:50.000 --> 01:53:55.000
es el siguiente paso, lo que tiene es la instancia del share, porque esto

01:53:55.000 --> 01:54:00.000
también es un singleton.

01:54:01.000 --> 01:54:06.000
De la lógica del modelo, de forma que todas las preguntas que hacen los

01:54:06.000 --> 01:54:11.000
Delegados D del view controller, en caso de que los usemos, son

01:54:11.000 --> 01:54:16.000
contestadas por un método del model lógico que tiene un shear que al ser

01:54:16.000 --> 01:54:21.000
compartido me permite poner el mismo shear en distintos view controller y

01:54:21.000 --> 01:54:26.000
que todos estén sincronizados con la misma funcionalidad de forma que

01:54:26.000 --> 01:54:35.000
puedo obviamente reutilizar ese model logic.

01:54:36.000 --> 01:54:41.000
De acuerdo y entonces desde ahí tendría ese funcionamiento porque el

01:54:41.000 --> 01:54:46.000
model logic es el almacén de los datos que van a ser utilizados para

01:54:46.000 --> 01:54:51.000
mostrarlos a través del view control y a eso adicionalmente que también

01:54:51.000 --> 01:54:56.000
se puede hacer le puedo crear una persistencia una lógica de la vista

01:54:56.000 --> 01:55:01.000
donde todo lo que yo vaya a hacer de la vista como por ejemplo el fell for

01:55:01.000 --> 01:55:06.000
robot como por ejemplo el get score for segway como por ejemplo las

01:55:06.000 --> 01:55:11.000
imágenes como por ejemplo pues en fin el get search bar vale todo eso son

01:55:11.000 --> 01:55:16.000
elementos que yo voy devolviendo desde un singleton externo para que el

01:55:16.000 --> 01:55:21.000
view controller reciba todos esos todos esos elementos de lógica de vista

01:55:21.000 --> 01:55:26.000
ya construidos y por lo tanto puedo usar los mismos elementos de lógica

01:55:26.000 --> 01:55:40.000
de vista en distintos view controles.

01:55:43.000 --> 01:55:46.000
Esa es la arquetipo que yo uso para Eiquid.

01:55:46.000 --> 01:55:49.000
Además ahí te estás quitando los más Sibri controles.

01:55:49.000 --> 01:55:56.000
Está creando lógica del controlador, está reutilizando código, como hemos visto si utilizas protocolos.

01:55:56.000 --> 01:56:01.000
Tienes testing al final lo estás cumpliendo y estás, a ver, estás

01:56:01.000 --> 01:56:06.000
añadiendo capas, bueno no sé, estás añadiendo algunas abstracciones yo le llamaría,

01:56:10.000 --> 01:56:11.000
pero vamos.

01:56:12.000 --> 01:56:13.000
Sí.

01:56:13.000 --> 01:56:14.000
Exacto.

01:56:15.000 --> 01:56:20.000
Y entonces así de esa manera pues lo tendríamos resuelto, ¿vale?

01:56:22.000 --> 01:56:26.000
Pues muy bien ya ves Julio y yo, nos todavía conservamos nuestra amistad.

01:56:30.000 --> 01:56:32.000
Esto probablemente depende que

01:56:32.000 --> 01:56:36.000
os he contado más o menos una base, ¿vale?

01:56:36.000 --> 01:56:42.000
Pero bueno, pero en julio nos ha contado cuatro o cinco cosas que hace diferente, yo os he contado otras cosas que hago diferentes.

01:56:42.000 --> 01:56:44.000
¿Cuál está mal, cuál está bien?

01:56:44.000 --> 01:56:50.000
Pues no lo sé, pues cada uno al final tiene un poco poco su manera, o sea es que la arquitectura tiene que ser la de cada uno, está claro.

01:56:50.000 --> 01:56:53.000
Pero esto al final también te tienes que amoldar a donde trabajes, a lo

01:56:53.000 --> 01:56:56.000
mejor estás en un proyecto en el que tienes que hablar con los otros

01:56:56.000 --> 01:56:59.000
desarrolladores a todo, me ha tocado muchas veces eso por lidiar con

01:56:59.000 --> 01:57:02.000
alguna arquitectura que no me gustaba, y que tampoco se puede cortar y

01:57:02.000 --> 01:57:05.000
empezar con la mía, lo tienes que hablar con el equipo, lo tienes que

01:57:05.000 --> 01:57:13.000
llegar a un consenso, luego depende del proyecto, lo hemos dicho al principio.

01:57:13.000 --> 01:57:18.000
No todos los proyectos pueden tener la misma arquitectura y ni ni el mismo

01:57:18.000 --> 01:57:23.000
proyecto en diferentes momentos tiene que tener la misma los mismos patrones.

01:57:24.000 --> 01:57:29.000
Pero al final es la forma de organizar, la forma de organizar y esto que

01:57:29.000 --> 01:57:34.000
hemos hablado tanto la versión de Arturo como la mía al final es MVC

01:57:34.000 --> 01:57:39.000
organizado para evitar el problema de los masivo controller y ya está, y

01:57:39.000 --> 01:57:44.000
no tiene mayor mayor misterio, ¿vale?

01:57:44.000 --> 01:57:57.000
Entonces de esa manera, pues bueno, consigues organizar este elemento y sigue siendo MVC porque es cómo funciona su, cómo funciona Yoiqui, vale.

01:57:58.000 --> 01:58:04.000
Y al final insisto, es que cualquier cosa que hagamos aparte de esto

01:58:04.000 --> 01:58:10.000
cualquier elemento porque seguro que llega alguno me dice no Oscar si ahí

01:58:10.000 --> 01:58:16.000
es la la vista lógica, entonces es el es el presenter del interactor del

01:58:16.000 --> 01:58:22.000
Review Ser del Damn.

01:58:22.000 --> 01:58:27.000
Llámalo como que llama lo pipí y carzan larga me da igual vale lo

01:58:27.000 --> 01:58:32.000
importante no es el nombre lo importante es que entiendas la organización

01:58:32.000 --> 01:58:37.000
vale yo en este caso lo llamo de una manera muy clara es decir lo llamo

01:58:37.000 --> 01:58:42.000
lógica del modelo lógica de la vista modelo persistencia del modelo

01:58:42.000 --> 01:58:49.000
definición del modelo de datos y view controller

01:58:52.000 --> 01:58:56.000
ayer justo hablando con un amigo me dijo que había estado en el desarrador

01:58:56.000 --> 01:59:00.000
y estuvo haciendo entrevistas dice claro tú le hablas a veces le hablas a

01:59:00.000 --> 01:59:04.000
alguien de algo que tú das por hecho que le ha llamado toda tu vida de

01:59:04.000 --> 01:59:09.000
una manera dice el otro se te queda con cara de poker y luego lo sabe perfectamente.

01:59:10.000 --> 01:59:13.000
Pero de primero dice, ¿qué me estás contando?

01:59:14.000 --> 01:59:18.000
Entonces si queréis darle un nombre a esto, podíamos darle un nombre que

01:59:18.000 --> 01:59:22.000
fuera pues una especie de aproximación arquitectura limpia Klear arquitectos.

01:59:23.000 --> 01:59:29.000
Que al final es un proceso una organización, ¿no?

01:59:29.000 --> 01:59:32.000
De de que intenta separar las responsabilidades.

01:59:33.000 --> 01:59:44.000
Entonces bueno pues eso sucede un poco el tema vale y ahí sería como lo tendríamos montado vale no tiene mayor mayor misterio.

01:59:45.000 --> 01:59:53.000
De hecho, es Uaikit permite una mejor arquitectura y una mayor división.

01:59:54.000 --> 01:59:55.000
Subió ahí no.

01:59:56.000 --> 02:00:03.000
Subió ahí es más restringido a la hora de dividir responsabilidades, ¿vale?

02:00:04.000 --> 02:00:08.000
Sí, pues ya, mira, pues ya que lo has has mencionado la bicha, Julia.

02:00:10.000 --> 02:00:17.000
Pues entramos en su UI y si quieres te cuento yo un poco cómo lo ¿Cómo lo trabajo?

02:00:17.000 --> 02:00:19.000
Básicamente soy UI.

02:00:19.000 --> 02:00:23.000
La verdad es que proyectos se ha hecho muchas partes, ¿vale?

02:00:23.000 --> 02:00:27.000
Pero proyectos enteros más allá de algún precio mío pequeño personal.

02:00:28.000 --> 02:00:32.000
He hecho muy poco y además se ha evolucionado.

02:00:32.000 --> 02:00:36.000
Porque claro, yo ahora hace su UI como de el primer día y luego me fui

02:00:36.000 --> 02:00:40.000
dando cuenta de algunos algunos errores que cometí al principio bon

02:00:40.000 --> 02:00:46.000
errores o algunas prácticas que no me que luego no me parecieron tan lógicas.

02:00:46.000 --> 02:00:56.000
Entonces, muchas mucha gente asoció enseguida cuando salió, sobre todo al principio ahora ya empieza a haber más controversia que su yoga era MVM.

02:00:58.000 --> 02:01:06.000
Pero he de aquí que yo no he visto ningún ejemplo de Apple en el que nada se llame PQ Mother.

02:01:07.000 --> 02:01:08.000
No lo he visto todavía.

02:01:09.000 --> 02:01:18.000
Entonces para mí es algo quizás basado en m v v m, pero no es exactamente.

02:01:19.000 --> 02:01:23.000
Entonces fijándome al principio yo empecé con él siempre pues cada cada

02:01:23.000 --> 02:01:27.000
vista tenía su su view model, pero me me pasaba un problema que cuando

02:01:27.000 --> 02:01:31.000
quería algo que orquestase todo eso vale pues ya me tenía que ir a otra

02:01:31.000 --> 02:01:35.000
digamos a un modelo vale por llamarle de alguna manera o como el por

02:01:35.000 --> 02:01:39.000
ejemplo el Princess es control este que llamó, y tenía cuál era el

02:01:39.000 --> 02:01:43.000
problema de esto, la inyección de dependencias y sobre todo que lo bueno

02:01:43.000 --> 02:01:52.000
de su UI es el el binding que tiene, ¿vale?

02:01:52.000 --> 02:01:55.000
Él cambia algo aquí y y se cambia en el otro lado.

02:01:55.000 --> 02:01:58.000
Y con esto me lo estaba cargando, porque si cada view tiene su view módem,

02:01:58.000 --> 02:02:01.000
Luego esos view modelos tengo que comunicar pero claro ya no tengo ese

02:02:01.000 --> 02:02:06.000
binding ¿vale?

02:02:06.000 --> 02:02:08.000
Sino que me tengo que crear yo pues con notificaciones ¿vale?

02:02:08.000 --> 02:02:14.000
Ya me tengo que buscar cargue un poco las gastar y entonces dije espérate,

02:02:14.000 --> 02:02:20.000
y si intento hacer que unos modelos en b de view model, digamos ligados a

02:02:20.000 --> 02:02:26.000
cada vista ¿vale?

02:02:26.000 --> 02:02:29.000
Y de esta manera sí que he visto que se me aligeraba bastante.

02:02:30.000 --> 02:02:31.000
Pero, ¿cuál es el problema?

02:02:31.000 --> 02:02:37.000
Que toda esa lógica que yo antes metía en el view model ¿La tengo que meter en algún sitio?

02:02:37.000 --> 02:02:38.000
¿Dónde la meto?

02:02:38.000 --> 02:02:48.000
Pues en el view, en la view vale, porque es que estas views las llamamos views pero en el, no son las views de BBC, ¿vale?

02:02:48.000 --> 02:02:49.000
En este caso soy UI.

02:02:50.000 --> 02:02:51.000
Y ¿qué pasa?

02:02:51.000 --> 02:02:59.000
Pues que vuelvo a tener el problema de los lo que antes se llama Massivview controller ahora se llama Massivview ¿vale?

02:03:00.000 --> 02:03:05.000
Para esto pues pues muchas veces me hago digamos, pues la misma me hago con

02:03:05.000 --> 02:03:10.000
extensiones de estas vistas, me hago distintos ficheros para dividirlo,

02:03:10.000 --> 02:03:15.000
también intento meter más lógica en estos models, sobre todo si es

02:03:15.000 --> 02:03:20.000
compartida, luego intento mucho hacer este extensiones de las clases que

02:03:20.000 --> 02:03:25.000
me aligeren, yo que sé, pues utilizo mucho los modificadores, estos de

02:03:25.000 --> 02:03:34.000
estilo de botones, lo de de estilo de de las labels, ¿vale?

02:03:34.000 --> 02:03:37.000
Intentó como pasar todo lo que pueda, ¿vale?

02:03:37.000 --> 02:03:38.000
Para quitármelo de ahí.

02:03:38.000 --> 02:03:44.000
Pero no hay algo tan claro como sacarlo a otro sitio, porque si no sacas otro sitio, tienes que optar y es un poco rollo, ¿vale?

02:03:44.000 --> 02:03:46.000
Pero está más o menos por hacer resumen ha sido mi evolución.

02:03:46.000 --> 02:03:50.000
Empecé con MVVM muy claro, ¿vale?

02:03:50.000 --> 02:03:56.000
Y me pasé a este y es que un día leí cómo cómo podías llamar esta

02:03:56.000 --> 02:04:02.000
arquitectura pero bueno lo que dice es que estos view model, en lugar de

02:04:02.000 --> 02:04:08.000
hacerlos específicos de cada vista, hice algo más general.

02:04:08.000 --> 02:04:11.000
Que nos llamo model, vale, de hecho Apple utiliza la esta misma

02:04:11.000 --> 02:04:14.000
nomenclatura, les llamo model, me sirve para varias y así aprovecho que

02:04:14.000 --> 02:04:18.000
tengo ese bandit.

02:04:18.000 --> 02:04:22.000
Y luego, como decía, pues intento aligerar la lógica de los viewpack, no

02:04:22.000 --> 02:04:26.000
se se hagan enormes, pues eso, o dividiéndolo en ficheros para

02:04:26.000 --> 02:04:30.000
organizarlo mejor, aunque si sigan siendo grandes los tengo mejor

02:04:30.000 --> 02:04:34.000
organizados, o como decía pues eso utilizando extensiones utilizando

02:04:34.000 --> 02:04:38.000
creando propiedades y los propios componentes de Sugi UI, ¿vale?

02:04:38.000 --> 02:04:46.000
Ya me busco un poco las vueltas, pero más o menos ese sería a grandes rasgos la arquitectura o el patrón que yo sigo en su UI.

02:04:49.000 --> 02:04:51.000
Has tocado un tema muy interesante.

02:04:53.000 --> 02:04:55.000
Aquí a lo mejor Julio y yo dejamos de ser amigos.

02:05:00.000 --> 02:05:01.000
A ver.

02:05:06.000 --> 02:05:16.000
Solamente ha habido un vídeo que ahora mismo sería incapaz de decirte cuál es Pero lo he visto, ¿vale?

02:05:16.000 --> 02:05:18.000
He visto cosas que no creerías.

02:05:19.000 --> 02:05:21.000
¿Nabas más allá de Orión?

02:05:22.000 --> 02:05:23.000
Y un Air Power.

02:05:24.000 --> 02:05:25.000
Un Air Power.

02:05:29.000 --> 02:05:30.000
Más allá de la puerta de Tanhauser.

02:05:33.000 --> 02:05:36.000
Y he visto un vídeo donde Apple decía MVM.

02:05:38.000 --> 02:05:39.000
Vale.

02:05:41.000 --> 02:05:48.000
Pero es obvio y de hecho yo lo pongo en mis formaciones, que lo que apelase

02:05:48.000 --> 02:05:55.000
no es porque cada versión de MVM está adaptada al framework para el que

02:05:55.000 --> 02:06:02.000
da servicio y MVVM para Apple no es el MVVM de el original que fue creado

02:06:02.000 --> 02:06:10.000
para Windows presentation Foundation, ¿vale?

02:06:11.000 --> 02:06:14.000
Foundation, perdón, ¿de acuerdo?

02:06:14.000 --> 02:06:19.000
Entonces, ¿Qué es MVVM o lo que podemos llamar MVVM?

02:06:21.000 --> 02:06:27.000
Por llamarlo de alguna forma, porque de hecho incluso ahora ha cambiado en años diecisiete.

02:06:28.000 --> 02:06:32.000
Por lo que, en fin, en años diecisiete ya no funciona exactamente igual no

02:06:32.000 --> 02:06:36.000
es que no funciona exactamente igual es que añade una posibilidad que

02:06:36.000 --> 02:06:40.000
ahora que antes no tenía, que es una de las cosas que vamos a comentar de

02:06:40.000 --> 02:06:46.000
los problemas que tiene uno u otro, ¿vale?

02:06:46.000 --> 02:06:51.000
Entonces, Lo que Apple intenta es resolver el problema de la UI

02:06:51.000 --> 02:06:56.000
declarativa, una UI que no es mutable pero que tiene que declarar que

02:06:56.000 --> 02:07:02.000
cosas van a ser mutables para reaccionar al cambio de esa mutabilidad.

02:07:03.000 --> 02:07:04.000
Eso es lo que intenta.

02:07:04.000 --> 02:07:11.000
Por lo tanto, lo que busca Apple es una arquitectura que resuelva un problema de una API reactiva a través del concepto del estado.

02:07:12.000 --> 02:07:21.000
El estado es una propiedad que cuando cambia provoca que la interfaz refleje, ya está, y eso es lo que Apple intenta.

02:07:21.000 --> 02:07:28.000
Entonces, en base a eso, yo lo que hago con swift UI hasta años dieciseis

02:07:28.000 --> 02:07:35.000
es igual me creo la capa de modelo los strutch con la capa de modelo, con

02:07:35.000 --> 02:07:44.000
los datos que voy a manejar.

02:07:45.000 --> 02:07:51.000
Y en este caso, estos datos ya no son sólo Codafol y Hazleball, también son identifyable.

02:07:53.000 --> 02:07:58.000
Porque necesitamos el identifyable para enumerar los datos en una vista.

02:07:59.000 --> 02:08:00.000
Sino no puedes hacer un foreach.

02:08:01.000 --> 02:08:02.000
Vale.

02:08:02.000 --> 02:08:11.000
Por lo que tengo un modelo con strutch Solo con los datos que es Co-Dable Identi-Falleable y Hasseable.

02:08:12.000 --> 02:08:16.000
Co-Dable, para trabajar con serialización Jason, identifievole para

02:08:16.000 --> 02:08:20.000
enumerar en una vista con Forest, un array de este modelo y Jashable para

02:08:20.000 --> 02:08:24.000
poder usarlo en el maestro detalle que se construye con Navigation Stack a

02:08:24.000 --> 02:08:30.000
partir de años dieciseis.

02:08:32.000 --> 02:08:35.000
Si no, no es necesario que sea hashed.

02:08:36.000 --> 02:08:37.000
¿Ok?

02:08:39.000 --> 02:08:45.000
A partir de ahí vuelvo a repetir la estructura que ya te comenté de UAKIT

02:08:45.000 --> 02:08:51.000
es decir me creo un protocolo de persistencia, que aquí, según el

02:08:51.000 --> 02:08:57.000
patrón de Clean architecture, sería el interactor.

02:08:59.000 --> 02:09:07.000
El interactor es el que se encarga de cargar los datos desde su fuente de

02:09:07.000 --> 02:09:15.000
datos cargar y grabar enviar o recibir de una API o cargar y grabar el local ¿vale?

02:09:15.000 --> 02:09:17.000
Lo que sea, o las dos cosas, ¿de acuerdo?

02:09:18.000 --> 02:09:30.000
Entonces, aquí crearía un protocolo de interactor Que podría permitirme, que podría no que me permite inyectar a la instancia clase Interactor.

02:09:30.000 --> 02:09:37.000
De la persistencia, producción y testing preview.

02:09:38.000 --> 02:09:43.000
Porque yo sí creo datos de preview para SuipJue.

02:09:45.000 --> 02:09:46.000
¿De acuerdo?

02:09:48.000 --> 02:09:57.000
Cosa que por ejemplo por hasson pasa olímpicamente de ello porque crear datos de preview para twitch UI lleva su trabajito ¿vale?

02:09:57.000 --> 02:10:03.000
Luego es muy práctico, pero te lo tienes que currar, sobre todo si es un modelo que es importante.

02:10:03.000 --> 02:10:04.000
Entonces yo

02:10:04.000 --> 02:10:09.000
engancho, mira, aquí te voy a te voy a hacer un un contar una pequeña cosa que -- Eso

02:10:09.000 --> 02:10:14.000
también se puede hacer, como tú has comentado antes, con los dos static, ¿vale?

02:10:14.000 --> 02:10:19.000
Con el staticlet share y con el staticlet preview igual que hace Apple con Cordata en Subi.

02:10:20.000 --> 02:10:25.000
Yo muchas veces cojo para por ejemplo los servicios web pues cojo llamo al

02:10:25.000 --> 02:10:30.000
servicio, copió el JSON de, bueno el JSON de la respuesta, lo meto en

02:10:30.000 --> 02:10:36.000
estas en este en esta carpeta, ¿vale?

02:10:36.000 --> 02:10:40.000
Que luego no no va compilada y luego me creo unas una extensión digamos

02:10:40.000 --> 02:10:44.000
bueno en el protocolo que tengo de los modelos con los que decodificó los

02:10:44.000 --> 02:10:50.000
datos del servidor me cree una extensión que me lo recupera, ¿vale?

02:10:50.000 --> 02:10:53.000
Por nombrecillo, bueno, o hay algún truquillo, lo he hecho de varias

02:10:53.000 --> 02:10:56.000
maneras, o le cree una propiedad estática con un nombrecillo que luego es

02:10:56.000 --> 02:10:59.000
el que le doy al JSON, ¿vale?

02:10:59.000 --> 02:11:01.000
Y así de esa manera los puedo importar súper rápido.

02:11:04.000 --> 02:11:09.000
sí sí algo parecido vale o sea al final yo con el tema de los tests lo

02:11:09.000 --> 02:11:14.000
que hago es igual bajo JSON el local lo meto en preview content y lo que

02:11:14.000 --> 02:11:19.000
hago es que la función de carga pues siempre, o sea, si si lee de una API

02:11:19.000 --> 02:11:26.000
esa since rose, aunque cargue el local, ¿vale?

02:11:26.000 --> 02:11:31.000
Y si no cae y si no le dé una API pues entonces será solo Frozen y ya está.

02:11:31.000 --> 02:11:41.000
Lo que sí hago siempre es que todas las funciones de carga y grabación de la persistencia son frows ¿Para qué?

02:11:41.000 --> 02:11:48.000
Para propagar los errores hacia el view model de forma que me permita mostrar en la interfaz el error

02:11:50.000 --> 02:11:53.000
vale eso es, es otra cosa del de donde, o sea, que si puedo, o sea,

02:11:53.000 --> 02:11:56.000
propongo el error todo lo que pueda para que sea la última capa el que

02:11:56.000 --> 02:11:59.000
Exacto, que la ONG y sobre todo si precisamente si son, o sea, si son

02:11:59.000 --> 02:12:02.000
errores que la interfaz da igual, pues bueno, lo puedes dejar antes y ya

02:12:02.000 --> 02:12:08.000
obras en consecuencia.

02:12:09.000 --> 02:12:12.000
Pero claro, esos errores que necesitan mostrar hay que hay que propagarlo

02:12:12.000 --> 02:12:15.000
así, pues, como dice Julio, con los con los singleton, me hago un

02:12:15.000 --> 02:12:20.000
singleton de Steview model, de la de la preview, ¿vale?

02:12:20.000 --> 02:12:24.000
Y lo que hago es, lo inicializo, cojo, decodificó el JSON este con la

02:12:24.000 --> 02:12:28.000
respuesta que lo que que es lo primero que voy a hacer, porque voy a

02:12:28.000 --> 02:12:32.000
llamarla, sabes que la llamo al inicializar pero me cojo el servidor, se

02:12:32.000 --> 02:12:36.000
lo se lo meto yo del JSON este que tengo, entonces ya cuando la preview de

02:12:36.000 --> 02:12:40.000
de su issue ya directamente me muestra la preview con datos.

02:12:40.000 --> 02:12:43.000
De hecho muchas veces yo me hago una que es preview y otra preview en ti

02:12:43.000 --> 02:12:46.000
vale para ver para estimular el estado de que tengo datos y el estado de

02:12:46.000 --> 02:12:49.000
que no tengo datos para ver si la pantalla que he puesto del place hold

02:12:49.000 --> 02:12:54.000
verde no hay datos vale funciona y

02:12:54.000 --> 02:12:56.000
Sí, es una opción interesante.

02:12:58.000 --> 02:13:02.000
Entonces una vez tengo la clase del interactor que es la asistencia del

02:13:02.000 --> 02:13:06.000
modelo que es el que se encarga de los datos de producción y de testing y

02:13:06.000 --> 02:13:10.000
que trabaja además como ya hemos visto con un patrón single ton Entonces

02:13:10.000 --> 02:13:14.000
y aquí está la pega de SWIFT hasta iOS dieciseis, género el view model

02:13:14.000 --> 02:13:19.000
¿Por qué género el view model y no creo como en UIKit?

02:13:20.000 --> 02:13:25.000
Una un model lógico que a su vez esté unido a un view controller en este

02:13:25.000 --> 02:13:30.000
caso a un view model pues básicamente porque en SWI necesitas que el

02:13:30.000 --> 02:13:35.000
almacén de los datos sea publish dentro de un observable objeto para que

02:13:35.000 --> 02:13:41.000
la interfaz reaccione los cambios de la misma.

02:13:41.000 --> 02:13:46.000
Por lo que eso te impide llevarte el almacén de los datos a un sitio distinto.

02:13:47.000 --> 02:13:49.000
Y alguno diría, no, pero puedes hacerlo.

02:13:49.000 --> 02:13:50.000
Sí.

02:13:50.000 --> 02:13:51.000
Puedes hacerlo.

02:13:51.000 --> 02:14:03.000
Puedes hacerlo a través de combine utilizando un sujeto de paso, un pass through subject, ¿vale?

02:14:03.000 --> 02:14:09.000
Si usas un pastly subject que reaccione y envíe de un model logic hacia un

02:14:09.000 --> 02:14:15.000
view model, el cambio del almacén puedes hacer que el bio model propague

02:14:15.000 --> 02:14:23.000
ese cambio del almacén a través del publish directamente sobre la interfaz.

02:14:23.000 --> 02:14:27.000
Pero se queda muy feo el código.

02:14:28.000 --> 02:14:31.000
O sea te cargas la belleza de Surview.

02:14:34.000 --> 02:14:39.000
Y tampoco puedes poner el model lógico fuera y enviar y recibir de manera

02:14:39.000 --> 02:14:44.000
constante el array con el almacén de datos porque no tiene puto sentido

02:14:44.000 --> 02:14:49.000
vale por lo que al final hasta ellos dieciseis El problema es que dentro

02:14:49.000 --> 02:14:54.000
del bi-model vas a tener toda la lógica del modelo.

02:14:55.000 --> 02:15:05.000
Por lo que al final lo que Apple recomienda es que tengas distintos viewmodels por cada fuente de datos principal que tengas en la app.

02:15:05.000 --> 02:15:08.000
Que lo comentaba yo que le llama model.

02:15:08.000 --> 02:15:13.000
En lugar de llamarle view model, le llama model y en lugar de asociarlo a una vista lo asocia al modelo.

02:15:14.000 --> 02:15:18.000
Exacto, entonces eso es una instancia, eso es una clase observable object

02:15:18.000 --> 02:15:22.000
que va instancia dada en el strug de turno como una arroba observador bien

02:15:22.000 --> 02:15:26.000
y a partir de ahí lo usas.

02:15:27.000 --> 02:15:32.000
O si lo que quieres hacer es usarlo, con fin, con los cambios de, con los

02:15:32.000 --> 02:15:37.000
cambios de, o sea, propagando a través del stake up yet, desde el

02:15:37.000 --> 02:15:43.000
principio de la app, ¿vale?

02:15:43.000 --> 02:15:46.000
Pues haría lo mismo pero sería un empirón menuject, ¿vale?

02:15:46.000 --> 02:15:48.000
Eso sería su UI.

02:15:48.000 --> 02:15:52.000
Pero en años diecisiete la cosa cambia.

02:15:54.000 --> 02:16:09.000
Porque ahora tenemos Observable Y Observable Si funciona a distintos niveles Por lo que ahora, en años diecisiete, sí puedes tener un model lógico.

02:16:12.000 --> 02:16:15.000
Y ese model logic va a ser el almacén de los datos.

02:16:16.000 --> 02:16:20.000
De forma que tienes la misma estructura que acabo de contar, Model Stroot

02:16:20.000 --> 02:16:24.000
de tipo Codeable Identity Fire y Cashable Protocolo Interactor Interactor

02:16:24.000 --> 02:16:28.000
de persistencia clase producción y testing en modo Singleton y este

02:16:28.000 --> 02:16:32.000
engancha con una clase de tipo observable que es el model logic y

02:16:32.000 --> 02:16:39.000
almacenamiento.

02:16:40.000 --> 02:16:44.000
Almacén de datos con los que vamos a trabajar.

02:16:45.000 --> 02:16:50.000
Por lo que meto dentro de cada model logic toda la lógica de cada una de

02:16:50.000 --> 02:16:55.000
las fuentes de datos con su almacén Esto me permitiría usando el patrón

02:16:55.000 --> 02:17:00.000
staticlet que ha dicho antes, Arturo, hacer que el bio model, el nuevo bio

02:17:00.000 --> 02:17:05.000
model, que ya no es observable object, ahora es también observable, por

02:17:05.000 --> 02:17:10.000
lo que tenemos un model logic que es arroba observable y un view model que

02:17:10.000 --> 02:17:17.000
también es arroba observable.

02:17:18.000 --> 02:17:22.000
Y al arroba observable del view model le inyecto la dependencia de los

02:17:22.000 --> 02:17:26.000
distintos model logics que vaya a utilizar de forma que el view crea la

02:17:26.000 --> 02:17:32.000
instancia stade del view model.

02:17:33.000 --> 02:17:40.000
Clase observable y a la hora de enumerar solo tengo que pasar por el model

02:17:40.000 --> 02:17:47.000
logic, que es decir haría view model punto model logic punto almacén y

02:17:47.000 --> 02:17:55.000
eso va a reaccionar y me va a permitir aislar en distintos niveles la estructura.

02:17:55.000 --> 02:17:57.000
Eso, a partir de años diecisiete.

02:17:59.000 --> 02:18:03.000
Pues es que al final aquí, de hecho, aquí Sí que coincidimos plenamente

02:18:03.000 --> 02:18:07.000
porque era el problema que exponía yo que que el MVVM tradicional tenía

02:18:07.000 --> 02:18:11.000
el problema antes de ellos dieciseis de que la magia esta de los bandings,

02:18:11.000 --> 02:18:15.000
de que cambias algo del viewmobile y se cambia si tienes luego un model

02:18:15.000 --> 02:18:19.000
por encima con los datos, con el almacén de los datos, te tienes que

02:18:19.000 --> 02:18:23.000
sacar que buscar la las, o sea que buscar la vida para comunicar ese view

02:18:23.000 --> 02:18:27.000
model, ese model de manera chula, y por eso decía que yo últimamente

02:18:27.000 --> 02:18:31.000
tendía a absorber ese model vale y ligar cada model a los datos vale y

02:18:31.000 --> 02:18:35.000
poder utilizarlo en varios en varias vistas eliminando el view model

02:18:35.000 --> 02:18:39.000
intermedio, pero como cuentas en Newell's Diecisiete precisamente el

02:18:39.000 --> 02:18:43.000
arroba Observoable quita eso y te permite separar y tener las dos

02:18:43.000 --> 02:18:47.000
instancias, es decir tener un view modem que entre otras cosas te aligera

02:18:47.000 --> 02:18:51.000
la view para no tener los mashi viewe de los que hablaba que que se

02:18:51.000 --> 02:18:55.000
cometen en un problema y por otro te permite comunicar de manera elegante

02:18:55.000 --> 02:19:11.000
el view model con el model.

02:19:14.000 --> 02:19:16.000
Así que bueno, pues esto es lo que hemos ganado, ¿vale?

02:19:17.000 --> 02:19:28.000
Si ahora consiguiéramos sobre esta estructura que los el model fuera también observable?

02:19:29.000 --> 02:19:35.000
Lo que ganaríamos es que, en una inyección maestro-detalle, Yo

02:19:35.000 --> 02:19:41.000
inyectaría la instancia del almacén de datos del model login que pasa a

02:19:41.000 --> 02:19:48.000
través del biomodel y que llega a la vista Como un Bindavo en el detalle.

02:19:49.000 --> 02:19:53.000
Por lo que al ser inyectado como un Bindavo, yo podría desde el detalle

02:19:53.000 --> 02:19:57.000
directamente mandarle a los test field el valor del dólar instancia punto

02:19:57.000 --> 02:20:01.000
propiedad y que se editaran directamente desde la vista detalle pasando

02:20:01.000 --> 02:20:05.000
por la view pasando por el view model hacia el almacén de datos y que se

02:20:05.000 --> 02:20:12.000
actualizará solo

02:20:15.000 --> 02:20:16.000
Vale que el problema es.

02:20:16.000 --> 02:20:17.000
Ya lo has entendido ¿verdad?

02:20:18.000 --> 02:20:23.000
Claro claro claro claro además de ser feo claro el problema es la vuelta.

02:20:23.000 --> 02:20:30.000
O sea, la ida está resuelta, o sea, esto te resuelve la comunicación de bajada, pero no la de su vida.

02:20:33.000 --> 02:20:38.000
Efectivamente, no tengo que conservar el byte ni nada hacia arriba, ¿vale?

02:20:40.000 --> 02:20:45.000
pues hay que jugar ahí un poco con el tema, ¿vale?

02:20:46.000 --> 02:20:50.000
Y bueno pues ver cómo se cómo se haría.

02:20:57.000 --> 02:21:03.000
Y bueno Julio yo creo que la verdad es que coincidimos bastante, No.

02:21:05.000 --> 02:21:09.000
Tenía miedo, digo, estará en peligro nuestra amistad, donde tenemos con la arquitectura, ¿no?

02:21:09.000 --> 02:21:13.000
A ver si no se refleja los oyentes y mañana -- No, mañana dices a veces.

02:21:13.000 --> 02:21:16.000
Solamente te habría negado el saludo si usaste fea.

02:21:19.000 --> 02:21:24.000
Para que se pregunte qué es TCA, TCA básicamente es destruir su UI.

02:21:24.000 --> 02:21:28.000
De hecho, TCA lo que hace en iOS diecisiete es cambiar completamente, o sea

02:21:28.000 --> 02:21:32.000
que sepáis que si estáis usando TCA los creadores han hecho cambios de

02:21:32.000 --> 02:21:36.000
des compilación en la nueva versión de TCA porque han reestructurado

02:21:36.000 --> 02:21:43.000
todo TCA aprovechando precisamente el observable, ¿vale?

02:21:43.000 --> 02:21:47.000
Porque ahora puedes, como hemos comentado, pasar las instancias de un

02:21:47.000 --> 02:21:51.000
observable al otro y que las vistas reaccionen retroactivamente en en el

02:21:51.000 --> 02:21:55.000
árbol de jerarquía de esos observables, ¿vale?

02:21:55.000 --> 02:22:03.000
Entonces eso lo han aplicado ellos y por lo tanto TCA en años diecisiete va a ser totalmente distinto a como es en años dieciséis.

02:22:03.000 --> 02:22:06.000
Y vais a tener que cambiarlo todo si queréis adoptarlo.

02:22:06.000 --> 02:22:07.000
Obviamente.

02:22:07.000 --> 02:22:08.000
¿Qué es TCA?

02:22:08.000 --> 02:22:22.000
TCA es aplicar un patrón, o sea, es aplicar el funcionamiento de redux de Java Script de Rignative en Suge UI.

02:22:22.000 --> 02:22:27.000
O sea, es montar la estructura organizativa de Redux dentro de Suge UI.

02:22:28.000 --> 02:22:32.000
Y para eso lo que hacen es, insisto, destruir la belleza de Suip UI porque

02:22:32.000 --> 02:22:36.000
lo que hacen básicamente es crear todo tipo de instancias que van

02:22:36.000 --> 02:22:40.000
inyectadas desde la vista y la vista tiene código de instancia de los

02:22:40.000 --> 02:22:44.000
modelos y luego el tal él no sé qué.

02:22:44.000 --> 02:22:50.000
O sea, es es un dolor de de de de vista, os invito a que lo busquéis, ¿vale?

02:22:50.000 --> 02:22:54.000
Os invito a que lo busquéis y lo y lo y lo veáis por vosotros mismos, ¿vale?

02:22:54.000 --> 02:22:59.000
Me parece un auténtico espanto vale porque al final una de las cosas que

02:22:59.000 --> 02:23:04.000
yo comento en este en este en este elemento vale que he comentado antes

02:23:04.000 --> 02:23:09.000
como reglas de oro vale una de ellas es el código debe ser entendible y

02:23:09.000 --> 02:23:15.000
simple en un vistazo.

02:23:17.000 --> 02:23:22.000
Si tu ves tu código en un vistazo y no eres capaz de entenderlo, algo estás haciendo mal.

02:23:24.000 --> 02:23:25.000
Es así de simple.

02:23:26.000 --> 02:23:30.000
Pues sí, es que al final la cosa que hacen todas las secretturas es te

02:23:30.000 --> 02:23:34.000
digo meter un o sea intentar solucionar un problema pero muchas veces

02:23:34.000 --> 02:23:38.000
meten más problemas de los que solucionan y de hecho aquí lo cuando

02:23:38.000 --> 02:23:42.000
estamos contando las cosas, ¿cómo hacemos nosotros las cosas?

02:23:42.000 --> 02:23:49.000
Hemos puesto también sobre la mesa, algunas veces mira hago esto pero también puede tener puede tener esta esta serie de problemas.

02:24:00.000 --> 02:24:01.000
¿A cuántas?

02:24:01.000 --> 02:24:03.000
que algo hapañado, ¿no?

02:24:04.000 --> 02:24:05.000
Sí, sí, sí.

02:24:05.000 --> 02:24:13.000
Yo entiendo que la parte de arquitectura en podcasts puede ser algo de encita, ¿vale?

02:24:14.000 --> 02:24:21.000
Pero bueno, si tenéis interés en el tema, estar atentos a nuestras redes, ¿vale?

02:24:22.000 --> 02:24:24.000
¿Cuáles son nuestras redes?

02:24:24.000 --> 02:24:27.000
Pues, ¿cuáles son tus redes, Arturo?

02:24:28.000 --> 02:24:32.000
La mía es Joe, estoy un poco oxidado en julio.

02:24:34.000 --> 02:24:35.000
La tienes ahí abajo.

02:24:36.000 --> 02:24:40.000
En todo, en todo el verano, donde más estoy es en x.

02:24:40.000 --> 02:24:45.000
Es la es la primera vez que estamos, que hablábamos en x, no sé.

02:24:46.000 --> 02:24:59.000
Es arroba Arturo Rivas A luego también podéis encontrar más todo como arroba punto cloud, ¿vale?

02:24:59.000 --> 02:25:02.000
Que está todo el mundo en el punto social, pero yo estoy en el punto

02:25:02.000 --> 02:25:05.000
cloud, pero de todas maneras si solo os acordáis de mi nombre es Arturo

02:25:05.000 --> 02:25:08.000
Rivas punto com y allí estar mi currículum y tal y y y las redes donde

02:25:08.000 --> 02:25:11.000
podéis encontrarme.

02:25:12.000 --> 02:25:21.000
Y a mí pues podéis encontrarme en equis, mastodon, blue Sky, también estamos, ¿no?

02:25:22.000 --> 02:25:33.000
Sí, pero Julio hay eco allí, ahí se inscrita bien, Pero solo escribe Stewart a Barredo a Mixio y solo en el timeline solo está él.

02:25:36.000 --> 02:25:46.000
Pues en todos lados me tenéis como arroba jcf monos las dos redes donde estoy más activo son en x, ¿vale?

02:25:46.000 --> 02:25:49.000
Jcf1 off y en LinkedIn.

02:25:50.000 --> 02:25:55.000
El linkkin.cominjfmunoff, ¿vale?

02:25:56.000 --> 02:25:57.000
Y en el post podéis seguirnos.

02:25:57.000 --> 02:26:01.000
Entonces, y luego si queréis seguir a Café Suite, que normalmente

02:26:01.000 --> 02:26:05.000
publicamos cosas aparte de él, toda la información del podcast,

02:26:05.000 --> 02:26:09.000
etcétera, también publicamos noticias y cosas así recursos y cosas

02:26:09.000 --> 02:26:13.000
chula que os pueden servir y lo tenéis todo en x, en arroba café swift

02:26:13.000 --> 02:26:19.000
con dos jefes café, ¿vale?

02:26:20.000 --> 02:26:21.000
Y ahí, ¿vale?

02:26:21.000 --> 02:26:26.000
Podréis estar atentos porque anunciaremos en breve una master class, que

02:26:26.000 --> 02:26:31.000
haremos en el canal de twitch, de Applecoding, que es donde normalmente

02:26:31.000 --> 02:26:36.000
grabamos en directo este podcast, donde haré una master class de

02:26:36.000 --> 02:26:41.000
arquitectura de suite UI en iOS diecisiete con observable.

02:26:42.000 --> 02:26:46.000
Los vamos a enseñar de una manera totalmente gratuita cómo crear una

02:26:46.000 --> 02:26:50.000
arquitectura nativa siguiendo el nuevo patrón observable de ellos

02:26:50.000 --> 02:26:56.000
diecisiete con Swiss UI en scope quince, ¿vale?

02:26:56.000 --> 02:26:58.000
La anunciaremos en breve.

02:26:58.000 --> 02:27:02.000
Así que pues eso, básicamente ese es el tema, ¿vale?

02:27:02.000 --> 02:27:08.000
Estar atentos a nuestras redes, que ahí estaremos informando de todo, ¿vale?

02:27:08.000 --> 02:27:12.000
Y ya sabéis que tenéis otros muchos episodios en Cuanda, ¿vale?

02:27:12.000 --> 02:27:18.000
Cuanda.com barra café con dos f sweet y también podéis contactarnos por

02:27:18.000 --> 02:27:24.000
correos y queréis contarnos cualquier cosa en café swift café con

02:27:24.000 --> 02:27:30.000
docefgmail.com ¿Y poco más?

02:27:31.000 --> 02:27:32.000
¿Y poco más?

02:27:32.000 --> 02:27:39.000
Iba a decir que que para ser la vuelta del verano nos ha quedado bastante bastante redondo.

02:27:40.000 --> 02:27:43.000
Yo perdonar por lo de las redes, me quedé totalmente blanco, Es de la

02:27:43.000 --> 02:27:46.000
vuelta a la marcha, pero bueno, la verdad es que nos ha quedado un un

02:27:46.000 --> 02:27:49.000
capítulo muy muy completo y yo creo que hemos, a ver, muy, este siempre

02:27:49.000 --> 02:27:52.000
lo decimos pero yo creo este más ha sido sobre todo la última parte de

02:27:52.000 --> 02:27:57.000
las escrituras.

02:27:57.000 --> 02:28:01.000
De cafetera pero algo que queríamos, llevamos tiempo queriendo traerlo

02:28:01.000 --> 02:28:05.000
porque siempre es un tema muy muy discutido en el que está claro que que

02:28:05.000 --> 02:28:09.000
prácticamente casi nadie tiene la misma opinión.

02:28:09.000 --> 02:28:14.000
Va a ser muy enfrentadas y gente que lo defiende lo suyo a capa de espada,

02:28:14.000 --> 02:28:19.000
pero bueno, os hemos contado pues que al final más que nada más que una

02:28:19.000 --> 02:28:24.000
arquitectura fija es coger la arquitectura recomendada de cada framework y

02:28:24.000 --> 02:28:29.000
darle tus, o sea, y darle tu fine tooning como a las seas, ¿vale?

02:28:29.000 --> 02:28:32.000
Para que para que se adapte a ti y a tu manera de trabajar, es siempre un

02:28:32.000 --> 02:28:35.000
poco de mesa abierta, o sea nada tiene que ser ahí meter las cosas con

02:28:35.000 --> 02:28:39.000
calzador porque eso nunca

02:28:39.000 --> 02:28:44.000
no no fight de freightway que decía que decía vulgares.

02:28:45.000 --> 02:28:50.000
Y recordad que el próximo día doce de septiembre a las siete de la tarde

02:28:50.000 --> 02:28:55.000
en realidad seis y media hora española que serán las once y media de la

02:28:55.000 --> 02:29:00.000
mañana hora en México DF que es bueno pues media hora antes del evento

02:29:00.000 --> 02:29:05.000
de Apple estaremos en directo Arturo y yo en el canal de twitch de Apple

02:29:05.000 --> 02:29:10.000
coding twitch punto tv papel coding con algún compañero barra compañera

02:29:10.000 --> 02:29:15.000
más, acompañándonos para hacer la cobertura de la presentación de los

02:29:15.000 --> 02:29:20.000
iPhones así que os invitamos a estar con nosotros ese día y bueno pues

02:29:20.000 --> 02:29:25.000
no es lo mismo ver pues a dos developers contando sus locuras y explicando

02:29:25.000 --> 02:29:30.000
desde el punto de vista del desarrollo todo esto vale así que pues ahí

02:29:30.000 --> 02:29:35.000
estaría un poco el té.

02:29:36.000 --> 02:29:40.000
Así que, poco más, muchísimas gracias por estar ahí.

02:29:41.000 --> 02:29:42.000
No oímos pronto.

02:29:42.000 --> 02:29:53.000
Si Jobs quiere y hasta entonces no olvidéis jugar con el código Ah, hasta pronto.

02:29:53.000 --> 02:29:54.000
Chau.