Oye Siri, hazme un nuevo Core Data

00:00 /1h57

Arturo y Julio cuentan qué han estado haciendo estas semanas y acabamos hablando de bases de datos, de Core Data, de las experiencias que Julio ha tenido con SQL y Oracle, bases de datos NOSQL y mucho más.

Un repaso por las noticias y actualidad del mundo de desarrollo Apple unido a unas cuantas experiencias, donde tocamos desde los Lambdas de AWS, Vapor (cómo no) para lado servidor y por supuesto hablamos del anunciado (rumoreado) nuevo IDE que se manejará con la voz creado por Apple para los nuevos entornos de Realidad Aumentada y Virtual.

Convierte en un Senior iOS Developer con el Swift Full Stack Bootcamp. Encuentra toda la información aquí: IV Swift Full Stack Bootcamp 2024.

Arturo Rivas

Julio César Fernández

Transcripción

Cuonda, la comunidad de podcast independientes en español. Bienvenidos a CAFÉ SWIFT, el podcast donde hablamos del lenguaje de programación SWIFT de Apple, solo no. Hablamos de programación, de herramientas para desarrolladores y de distintas experiencias, pero siempre desde el punto de vista de desarrolladores en entornos Apple y del lenguaje SWIFT. Y esos desarrolladores somos Arturo Rivas y Julio César Fernández.

Comenzamos. Hola, hola, hola. Qué tal? Bienvenidos a un nuevo capítulo de CAFÉ SWIFT con una regularidad pues regular. Valga la redundancia, efectivamente. Y como siempre, no estoy solo. Está al otro lado del micrófono y de la pantalla Julio.

Qué tal? Muy buenas. Pues nada, aquí andamos a altas horas de la noche, que son los únicos momentos que tenemos de paz y relax mental pues para poder sacar adelante estos estos cafés. Pero la verdad que merece la pena y quiero aprovechar también porque últimamente recibo un montón de feedbacks positivos de gente que escucha el podcast y que nos transmite pues que le gusta, que se ha convertido en un podcast pues habitual.

Incluso gente que nos cuenta que ayer nos decían, porque ayer empezamos la tercera edición del Bootcamp SWIFT Full Stack y nos decía uno de los alumnos que le encantaba el podcast, aunque no se enteraba muy bien de todo, pero le gustaba. Era como que él quería enterarse. Pero para eso está en el Bootcamp, ¿no, Julio? Precisamente está en el Bootcamp para enterarse.

Exacto. Es como he dicho, ya cuando acabes el Bootcamp te enterarás prácticamente de todo. El 90 por ciento. Esto es un Bootcamp hecho para entender este podcast. Exacto. Por eso SWIFT, CAFÉ SWIFT Full Stack Bootcamp. Efectivamente. Así que nada, pues aquí hablando un poco de todo lo que tiene que ver con el desarrollo en entornos Apple, con todas las novedades.

No, aquí no vamos a hablar de los nuevos equipos, ¿verdad, Arturo? Aquí nada de hardware, aquí solo software. Nos quitamos el disfraz del vestido de hardware y única y exclusivamente de programación. Pues sí. Aunque bueno, algunas pinceladitas vamos a dar con respecto a los nuevos equipos que Apple ha presentado y lo buenos o no que son para desarrolladores.

Eso sí que es algo que entiendo que os interesa. Entiendo desarrolladores en SWIFT, obviamente. Así que bueno, pues es una cosa que es interesante y nada, si le parece sin más, pues podemos ir a empezar con la primera parte, con lo que hemos hecho cada uno en estos últimos días, semanas, desde el último café. Así que pues si quieres, vamos a ello. Pues sí, si quieres empiezo yo contándote un poco cómo, porque bueno, pues ahora soy padre full time.

Totalmente. ¿Has hecho un bootcamp full stack? No, me ha faltado eso, pero a cambio tengo muchísima suerte. La verdad que se está portando genial y me ha dejado tiempo para hacer cosillas que quizás antes no tenía tiempo de revisarlas. Y bueno, siguiendo con lo que he contado en otros programas, pues primero estoy estudiando la manera de poder trabajar o ampliar la funcionalidad de estas landas que comentábamos en el último capítulo de AWS.

Tengo problemas de que hago llamadas a otros servicios y que son un poco lentas en el arranque y estoy preparando algo de landas, ya te lo he comentado a ti, Julio, porque bueno, aprovechando que estoy metiéndome en ese mundillo y que estoy utilizando varias, pero bueno, se hacían un poco lentas y en la fase de inicialización, la primera vez que la llamada se le arranca en frío, podríamos llamarle, entonces bueno, estoy experimentando a ver si soy capaz de trabajar con ficheros, porque al final lo utiliza sobre un runtime

de Linux, pero es un runtime un pelín especial y me está dando unos problemas y me estoy pegando con eso. Luego, como siempre lo sacamos aquí, siempre tiene que salir algo. Pues estuve también con Cordata, de una aplicación que tenía hace tiempo. Siempre acaba saliendo, siempre es algo donde te lo acabas encontrando y esto es una aplicación que tengo desde hace tiempo y he aprovechado para darle unos retoques y darme cuenta de que el Arturo de

hace muchos años tenía bastante menos idea sobre Swift y sobre Cordata de la que tiene ahora y bueno, pues estoy trabajando sobre todo con grandes cantidades de datos y si quieres lo comentamos para los oyentes. Hay lo que se le llaman las batch operations, que es decir, cuando no vas a cambiar un registro, o sea, no vas a cambiar solo un registro o unos poquitos, sino que es un cambio grande.

Tanto insert grandes como deletes grandes, pues en lugar de hacerlo uno por uno y hacer como el stack normal o regular, que sería primero pasar por la parte de memoria y luego ya ir a la parte de persistencia del contenedor en disco, pues esto directamente va contra el almacenamiento. Se salta esta parte de memoria, pero claro, el problema de esta parte... Se trata de la base de datos SQLite 3, que va asociada a lo que es el propio Cordata, entonces pues básicamente partiendo de la base de que Cordata es una, bueno, pues vamos

a llamarlo como una especie de modelo, ¿no? Una especie de modelo que está ahí puesto para que funcione de una manera en la que no tengas que tratar directamente con SQLite, pero efectivamente estas operaciones van directas contra SQLite, entonces, bueno, pues por un lado funcionan muy rápidas, pero por otro también hay que tener cuidado sobre que lo vamos utilizando, ¿no? Afinar Cordata es lo que se conoce como un ORM, un Object Relation

Model, es un modelo de relación de objetos que lo que hace es unir la parte de una base de datos SQLite 3, que es lo que hay detrás, con una parte de objetos, que en este caso serían objetos en Objetice, que corresponden, digamos, podemos llamar modelo lógico y modelo físico, ¿vale? Entonces, bueno, pues está bien la cosa. Efectivamente, y el problema que tiene aquí, que es el gran monstruo que es Cordata, que

tiene muchas funcionalidades, pero a veces te explota un poco la cabeza, porque el problema que me estaba encontrando era que una vez que tú has acabado, bueno, que has hecho la operación, digamos, directamente contra la parte de almacenamiento, tienes que decirle al contexto, que es la parte de memoria, oye, me ha actualizado, mira a ver si tienes que actualizar la interfaz o, vamos, tienes que como que notificar.

Hay varias maneras de hacerlo. Puedes coger, digamos, los IDs de los cambios, de los objetos que han cambiado y decirle, oye, mira, he cambiado estos IDs. Se puede hacer con notificaciones, se puede hacer con lo que le llaman los tokens de cambio, ¿vale? Que son como una especie de snapshots, ¿vale? Para decirle, bueno, he hecho estos cambios, vienen aquí empaquetados en esta captura, actualízate.

Pero al final es que es muy engorroso. O sea, yo he trabajado mucho con ello y cada vez que me pongo a hacer algo, me vuelve a costar. En este caso, lo que estoy haciendo, por ponerle el ejemplo, es coger datos de una API y refrescarlo, o sea, bueno, y guardarlo en el dispositivo, pues por eso. Si no tenemos conexión a internet, yo intento actualizarlo.

Pues de vez en cuando, cuando entro en la vista, llamo al servidor para intentar actualizarlo, pero puede ser que no tenga conexión de red. Entonces lo que hago es persistirlo. Pero claro, de hecho, lo que estaba haciendo antes, y aquí que me caigan todas las collejas que queráis porque me las merezco, borraba todo y volvía a almacenar los objetos nuevos, ¿vale? Entonces ahora estoy haciendo algo más sofisticado que es cargar los datos de la API, mirar los que cambian, ¿vale? Ahí también defino una

key que es la que no puede cambiar, ¿vale? La key básica. Actualizo los que ya existan, pero puede que tengan otros datos, por un lado, y luego miro los que tengo en la memoria, en la base de datos, pero que ya no me están viniendo de la API y eso los elimino, ¿vale? Pero como os digo, el problema viene que hago las operaciones en batch para poder hacer las operaciones directamente contra el almacenamiento, pero claro, el problema está cuando se lo

tengo que notificar, que es un poco rollo. Pero yo cuando he trabajado con el NSBatchInsertions y el BatchUpdates y esas cosas, NSBatchInserts, no NSBatchInsertions, creo que lo ha hecho solo, ¿vale? Tendría que buscar el ejemplo porque se lo hice a un cliente.

Lo que pasa es que el gran problema que tuve ahí era que yo tenía que refrescar un dato que, bueno, un dato que era que venía de una relación maestro detalle, ¿vale? Una relation, ¿no? Entre tablas, de forma que yo tenía un dato que era el dato general y luego tenía que actualizar, si no recuerdo mal, el centro donde estaba ese cliente o algo así, ¿vale? Entonces, claro, las relaciones no se actualizan con los batch, ¿vale? Entonces yo lo que tenía que hacer era lo que tú has comentado,

es decir, en la última implementación, ¿por qué? ¿Cómo lo estás haciendo? ¿Por closers o directamente por llamadas? Por closers. Hago eso, empiezo, hago el perform de una operación en background y luego ahí dentro ya hago el batch, el batch insert, creo que sí.

¿Pero el batch insert tiene un closer o lo usas directamente con una operación? Con closer, con closer. Con closer. Es que, para el que no lo sepa, el NSBatch, lo último que le puso Apple, no sé si fue hace un par de años, fue la posibilidad de inyectarle un closer donde le dices qué es lo que quiere que hagas con cada registro. Entonces, yo lo que hacía ahí era capturar cada uno de los IDs, justo lo que has comentado, de cambio dentro de la base de datos para luego hacer un proceso posterior que recorriera el array

de todos esos registros modificados y le pegara la relación con el dato de detalle. Entonces, funcionaba, era un parche parchoso, pero bueno, por lo menos para hacer la carga, que es una carga de 75.000 datos, pues iba a una velocidad prudentemente correcta. No tardaba demasiado en ese sentido.

Pero, a ver, no es el código más intuitivo y más bonito que he usado en mi vida. Es como un infierno, pero sin el cómo. Es que fijaros. Primero, hay que crear otro contexto distinto al que estás utilizando en primer plano, un contexto en background. Luego, en ese contexto en background tienes que hacer los inserts.

En esos inserts tienes que decirle que como resultado te dé los IDs de los objetos que haya insertado. Y luego, con esos IDs, vas y le dices al contexto que está en primer plano, que es el que está tirando por la tabla donde lo estoy mostrando, le tienes que decir que haga un merge de esos cambios. O sea, un poco de explotarte la cabeza y aparte de eso, de que necesitas saber hasta el fondo cómo funciona Cordata.

Hace no mucho estuve haciendo algunas pruebas con Real y madre mía, o sea, otro otro rollo totalmente diferente. Eso sí, también tengo que decir algo malo de Real, porque estuve haciendo esta parte de compartir contenedores y en Real no llegué a implementarlo porque era un rollo macabeo.

Y eso que en EOS también es bastante, vamos, con Cordata y con CloudKit también es bastante lío el que te invite un usuario a su parte de datos privada, ¿vale? Así que estoy me estoy saliendo ya del tema, pero bueno, ya que nos hemos enfrascado, vamos hasta hasta el final. Esta es la parte de CloudKit y yo creo que ya lo hemos comentado, en CloudKit está el contenedor público, están los contenedores privados o zonas creo que se llaman, la zona pública, la zona privada y la zona compartida.

Entonces tú, por ejemplo, las notas compartidas, si tú tienes notas compartidas con otra persona, con otro usuario, las tienes, las que creas tú, las tienes en tu zona privada, pero él las tiene en su zona compartida, pero digamos que apuntan al mismo sitio, ¿vale? Entonces la compartición es un poco rollo el empezar a compartirlo, por un lado, y por otro, capturar todas las notificaciones que te van llegando de los cambios que ha hecho el usuario, porque claro,

tú esos cambios los tienes que recoger y actualizar la interfaz en tu aplicación, lo cual es algo bastante complicado, porque además, ya os digo, como son distintos contenedores tienes que recoger las notificaciones de iCloud, o sea, de CloudKit, de las bases de datos de la zona privada, las de la zona compartida.

La verdad es que es un poco infierno. Espero, como muchas veces imploramos desde este podcast, que Apple saque una nueva librería. No sé si Apple, o quizás el proyecto Swift, no sé si sería algo que haga la propia Apple, o lo dejará para la parte open source, porque bueno, al final una base de datos no deja de ser trabajar con el disco, ¿vale? Es algo más sofisticado que guardar ficheros, pero al final como SQL y todas las bases de datos tienes que guardar ficheros en el almacenamiento,

una y otra. Entonces no sé, por esa parte, si será el propio proyecto open source, pero desde luego la parte de la nube, de sincronización con la nube, sí que tiene que ser Apple, porque tiene que ser una empresa la que esté detrás de ese servicio de sincronización. Claro, al final necesita una implementación en ese sentido, pero claro, yo, curiosamente, hablando con unos alumnos hoy, comentando la gran cantidad de cosas innovadoras que

Apple ha hecho y tal, más concreto en SwiftUI, que si la nueva API de navegación de SwiftUI y tal, no sé cuánta, que si todo lo que tal, y claro, de pronto me dice, bueno, ¿y no van a hacer nada con Core Data? Y claro, era como tuturú. Y a Julio le empieza a caer una lágrima.

Sí, sí, totalmente. Es que es una cosa bárbara. De hecho, yo tengo aquí ahora mismo el código de lo que he comentado y efectivamente es un NSBatchInsertRequest donde ponemos lo que es la entidad y directamente esa entidad recibe un closure que recibe el objeto y devuelve un bool y entonces ya a partir de ahí empiezas a hacer la carga y devuelves un true o un false, dependiendo de si realmente has podido o no hacer la inserción. Básicamente, bueno, de hecho, según pone aquí, sí, básicamente ese es el tema.

No, perdón, devuelves un false si no has terminado todavía lo que es la carga y devuelves un true cuando acabes la carga para que el closure deje de ejecutarse en modo batch. Es como, dios mío, o sea, es una implementación. Claro, volvemos a lo de siempre. Es que esto es Objective-C, ¿vale? Entonces es que se nota muchísimo que esto está en Objective-C y que por lo tanto, pues, en fin, es como, bueno, pues aquí está.

Hostia, de verdad, yo creo que ya va tocando. Y claro, el problema, lo hemos comentado, ya están hablando que iOS 17 va a tener menos cosas porque están centrados en el tema de lo de la realidad aumentada y virtual. Y luego también, también va a tener menos cosas porque tienen que hacer el tema de lo de las tiendas alternativas de aplicaciones para cumplir con la normativa europea.

Por lo tanto, pues, y no, obviamente, volvemos a repetir lo mismo. Esto no es cuestión de meter a más gente, porque ¿dónde encuentras gente con la preparación necesaria para poder realizar estos desarrollos? ¿Vale? Por lo tanto, al final, pues, estamos fastidiados, por no decir otra cosa, porque no hay forma de que esto se acabe y seguimos teniendo una base de datos que lo único más moderno que tiene es las implementaciones de consulta con SwiftUI, con el arroba first request y el section first request, que eso es muy bonito,

pero es que fuera de eso, realmente es que es súper tosco, súper feo, nada intuitivo, mogollón de código para cualquier cosa. O sea, de verdad, yo creo, de verdad, no creo que haya ni un solo desarrollador en entornos Apple al que no le preguntes qué crees que Apple debería mejorar y lo primero que te digan, o sea, córdata. Y es que, aparte, el Astra, tú estás, no, esto vamos haciendo aquí, la realidad aumentada

y tal, pero bueno, tenemos que persistir datos y utilizamos córdata. Claro, es que yo últimamente, si la necesidad de persistencia que tengo en una aplicación no es muy alta, pues lo siento, prefiero guardar ficheros JSON en segundo plano en la zona de documentos.

Me resulta más rápido y más cómodo. A ver, para guardar 75.000 datos, pues no, pero para guardar un registro que el JSON va a ocupar menos de un mega, pues tío, prefiero guardarlo en un JSON, tío, ¿qué quieres que te diga? Sí, sí, sí, es que es mucho más fácil y como decía, con Codable es súper sencillo. Luego también ahí creo que sacaron, no sé, este año o el pasado, también mejoraron la API de trabajo con ficheros.

Aparte, los equipos son bastante rápidos y no hay esa penalización que había hace 10 años en el acceso al almacenamiento. Entonces es lógico que si no es estrictamente, o sea, Codata es donde acabas cuando ninguna de las otras soluciones te valen. Y de penas voy a pasar a alegrías, porque como he tenido más tiempo he podido acabar el curso de Unity y me he venido súper arriba.

Porque todo esto del curso de Unity, yo creo que ya lo dije en su día, viene porque me estoy preparando para la nueva realidad de Apple. Y la parte esta que tenía de trabajo con 3D y este de animaciones y todo este tipo de cosas, pues la tenía un poco de lado. Nunca he tenido tiempo o ganas de ponerme con ello.

Y entonces, como me he venido arriba, me he puesto a hacer algunos experimentos con ARKit, pero más que con ARKit, con Reality Compose. Y lo que he visto es, lo primero, que se parece mogollón a módulos y partes de Unity. Es decir, tú pones objetos, le preparas animaciones, todo pero más bonito. Ya puedes poner sonidos a las animaciones, eventos, etcétera. Creas escenas.

De hecho, me he hecho una demo que he encontrado por ahí, que consistía primero en detectar las escenas. Puedes poner como el tipo de escenas, horizontal, vertical o detección de fotos. Que se desate la experiencia a raíz de detectar una imagen. Y lo he hecho con un libro. De hecho, no hace falta siquiera un proyecto de descombinada. Que detectaba la portada de mi libro.

Entonces, cuando ponía el libro, detectaba y ponía la escena de realidad aumentada encima. De hecho, eso se puede detectar y al final no es una aplicación ni nada. Es un fichero que puedes meter en una web. Es el típico que utiliza Apple en su web para las experiencias de realidad aumentada. Sí, es el fichero de Pixar y Adobe USDZ.

Eso es. Y con eso ya te desencadena la escena que quieras. Cuando detecta el libro, pues salen ahí como unas etiquetas con los precios de las distintas ediciones, el autor... Puedes ir como a un carrito. Estuve allí trasteando sin echar ninguna línea de código. Por eso luego se carga en Reality Kit. Se carga directamente la escena y luego ya es cuando lo unes.

Lo mismo que estuve haciendo en Unity, lo mismo que en Sprite Kit, Scene Kit, los desarrollos de juegos de Apple. Al final es eso. Volvemos a tener un poco lo que lo que teníamos con el interface builder que yo he de confesar que no llegué a utilizarlo. Ya venía unido Scope y los Storyboard. Yo sí llegué a trabajar con Scope antes de que estuviera unido.

Estuve un tiempo trabajando teniendo y era muy duro. Era muy duro tener que estar cambiando de uno a otro, tener las dos apps abiertas. Pues yo creo que al final esto va a ser un poco un poco similar. Vas a tener que tener la parte en la que con gráficos y con objetos lo vas moviendo, le creas animaciones y luego ya eso pues tiene su conexión, no sé cómo se llamarán, Outlet o como quieras llamarle.

Al final esto pues tienes etiquetillas que son las que importas en ARKit y en ARKit ya puedes manejar cosas de esa escena que has creado, digamos que has diseñado. Ya las puedes mover con código y bueno la verdad es que creo que ya por lo menos no parto de cero. Me queda mucho por recorrer porque no le he echado mucho tiempo pero sin duda interesante.

De hecho animo a la gente que no lo haya visto. De hecho les animo por dos razones. La primera que es súper entretenido la verdad y la segunda que es que es lo que viene. O sea yo creo que no nos va a quedar más remedio que ponernos con ello ya porque bueno es lo bueno y lo malo que tiene la programación que evoluciona muy rápido y si no estás atento, si parpadeas se lo van a perder. Al final si queréis probarlo Reality Composer, si tenéis instalado Xcode, que si estáis

aquí debéis tener instalado Xcode, Reality Composer se instala con Xcode. Simplemente en la parte de Xcode en Open Developer Tools, que es una de las opciones que hay en el menú propio de Xcode, donde pone la palabra Xcode, pulsáis ahí y tenéis una opción de Open Developer Tools donde podéis tener el acceso a Reality Composer o podéis usar el propio buscador del sistema para poder acceder a él.

Y en iPad se puede descargar. Eso iba a decir que además es la misma aplicación. Es exactamente la misma aplicación con los mismos formatos de ficheros, la misma opción de trabajo y tal. Funcionan además los formatos entre las dos plataformas y el fichero que generéis pues directamente lo podéis cargar en Reality Composer, que prácticamente es una línea.

Y como ha dicho Arturo, luego podéis etiquetar los objetos que vais utilizando dentro de Reality Composer y luego por código recuperar esos objetos y modificarlos a través de sus propias propiedades. Y la verdad que está realmente bien. Pues joer, creo que venía cargadito el Julio. ¿Ves? Es el problema de estar tanto tiempo. Bueno, tanto.

Esta vez no nos hemos retrasado tanto, pero es el problema de no grabar este podcast diariamente. Pues sí, que se va acumulando el trabajo. Pues yo la verdad que durante estos días, de nuevo para variar formaciones, muchas formaciones, pero también he estado por un lado preparando un proyecto que tengo que entregar a unos alumnos.

Un proyecto en lo que cometí un error, un error que en fin, os aconsejo que no cometáis porque por mucha experiencia que tengas al final cometes un error muy tonto y es que me ofusqué en utilizar una fuente de datos que yo había encontrado en Kaggle, que es una página web, en K-A-G-G-L-E. Kaggle es una página que, sí, sé que suena muy mal el nombre, pero es una página que tiene un montón de datasets preparados para inteligencia artificial.

Datasets que recopila la gente de todo tipo de servicios, de gente que se molesta en encontrar conjuntos de datos que luego sube a esta página y puedes encontrar ahí prácticamente de todo. Entonces me bajé un volcado de todos los mangas que existían de una base de datos de una página que se llama MyAnimeList.com o algo así, que es una página que es muy conocida, es como un IMDB de anime y manga.

Entonces me ofusqué en cargar esa información, pero ¿qué sucede? Que la información eran prácticamente todos los mangas editados desde el principio de los tiempos, eran decenas de miles de datos, y entonces quise hacer una API con esos datos, pero ¿qué sucede? Que cuando te enfrentas a decenas de miles de datos tienes que prepararte a que prácticamente todo lo que tienes ahí va a tener algún tipo de problema de dato opcional que no va a existir, elemento que está mal escrito,

cosas que tienen un formato inapropiado. Entonces lo que yo descargué era un formato CSV y lo que hice fue crear una aplicación de línea de comando en Swift que transformaba ese CSV en un JSON. Entonces ¿cuál era el problema? Que cuando se encontraba algún carácter raro o cuando en lo que era la función de valores separados por comas, que en este caso era con punto y coma, cuando encontraba un punto y coma en el resumen de cualquiera de

los elementos me cortaba el fichero, me lo ponía de mala manera, no sé qué. Total, que eran, ya no sólo por eso, sino por infinidad de pequeños problemas que tenían los propios datos en sí, hacían absolutamente imposible. Y no te puedes hacer una idea de la cantidad de días absurdos y estúpidos que perdí por querer cargar esa información ¿vale? Hasta que al final dije mira es que no se puede cargar esta información, es que por mucho

que lo intente siempre va a haber algún dato que esté mal, siempre va a haber algún dato que no se va a cargar, siempre va a haber un y con que haya un elemento del JSON que no vaya bien. Claro, estamos hablando de un JSON que generaba para cargar en batch en la API de aproximadamente 200 megas ¿vale? O sea, era una burrada que no tenía ningún sentido pero me ofusqué a hacerlo y al final pues me tuve que rendir porque efectivamente

luego ya que podía haberlo hecho al principio pues me puse a mirar bien los datos y me di cuenta de que aquello no había forma ¿vale? En un CSV que se lo come todo puedes hacerlo y te traga ¿vale? pero en un JSON aquello no había manera de ponerlo y menos para ser cargado en Swift ¿vale? Entonces al final me fui a un a una cosa un poquito más ligera a lo que sería una base de datos de libros de ciencia ficción y entonces bueno pues

he creado una API REST en... ¿a que no adivinas en qué? Seguramente en Vapor. Había que hablar de Vapor en el episodio y entonces... La cara amable de Core Data. Exacto y entonces pues nada con Vapor y con PostgreSQL pues nada ahí sí he podido cargar la información además me he sacado una cuenta de pago en Heroku porque ya sabes que ahora ya no se puede trabajar con cuentas gratuitas y nada y entonces pues he creado una nueva

API que estoy terminando de probar para dársela a los alumnos y que bueno pues tiene pues toda la información de distintos autores distintas tal relaciones no sé qué cuando te creas un modelo de datos que sea complejo donde tienes unos libros esos libros pueden comprarse cuando se compran además los usuarios pueden marcarlos como favoritos puedes pedir los pedidos saber qué libros ha pedido una persona en fin tienes que ir montando no todos

esos servicios luego tienes pues lo que es usar y contraseña tal etcétera el alta del usuario en fin todas esas cosas la verdad que luego queda queda muy muy muy bonito vale entonces bueno pues la verdad que he estado ahí liado con ese con ese tema y nada y a ver qué tal qué tal termina ya está prácticamente terminada sólo estoy haciendo las últimas pruebas pero pero bueno la verdad que es un trabajo yo todo lo que es el lado servidor

últimamente es lo que más me satisface cuando veo el resultado de lo que voy de lo que voy programando la verdad si yo tengo pendiente a ver si me da si me da tiempo una idea que tengo de vapor porque siempre que me he puesto he dejado cosas inacabadas pues eso pues hecho el típico login y registro la autenticación generación de tokens y todo eso un cruz súper sencillo para insertar cosas y tal pero nunca he hecho algo un poco un poco más

grande y sí que tengo ganas por eso porque el trabajo de puede ser lo mismo pero al final no lo es vale yo creo que cuando haces a una aplicación que la gente va a ver te tienes que centrar mucho porque no hay tiempo para todo en la parte visual y todo el modelo de datos de detrás sí que sí que lo dejas un poco un poco aparte aunque bueno de hecho en incluso en equipos grandes de programador la gente que trabaja en equipos grandes hay

mucha gente que es desarrollador de ellos pero sólo está en la parte de digamos del front de hecho dividen incluso las aplicaciones entre front y back porque hay gente que sólo se dedica a la lógica a la lógica del modelo de datos y todo eso que que si se hace bien y es una aplicación grande pues lleva tiempo pero yo lo que me he encontrado siempre es que en las aplicaciones móviles siempre está se presta mucha más atención a la parte

de la interfaz y los datos como que quedan atrás y al final el lado servidor te enfrentas a otros problemas te enfrentas a problemas de escalado de miles de millones de registros que es ahí donde tienes el cuello de botella de la autenticación de cosas que en las aplicaciones no ves y por suerte ahora tenemos tenemos vapor que es un framework de primer nivel que ya está demostradísimo su usabilidad y que tenemos digamos abierta la primera puerta

que es que está en el propio lenguaje que en principio dominamos no exacto no la verdad que se pueden hacer yo por ejemplo las las cosas más chulas que es que puedo hacer con los datos es trabajar con los siblings vale que son conexiones de relaciones n a n entre distintas tablas de forma que claro pues si tú tienes un libro y ese libro forma parte de un pedido en una compra hecha por un usuario pues tienes por un lado el dato del usuario

por otro lado el dato de los libros y tienes un elemento de unión entre ambos datos vale entonces pues esos siblings tienes que unirlos o quitarlos a la hora de crear los registros y entonces las consultas que se generan desde ahí la devolución y tal la verdad que genera un código bastante bastante chulo bastante intuitivo y luego sobre todo que haya ganado un punto cuando un punto no ha ganado mil puntazos va por al integrar asina wait vale

se puede usar con el modelo antiguo vale con el modelo de los de los futuros de los event loop future que era la forma antigua de devolver en un digamos en un formato de promesas y futuros pero ahora ya se puede usar directamente así await y el cambio telita es súper intuitivo y la verdad que es una es una gozada vale yo creo que es lo más y claro muchas veces uno piensa no pues será cosa mía y tal pero no no es que en el en la última edición

del del bootcamp precisamente va por fue una de las cosas que más le gustó a todo el mundo no fue además luego lo comentaban no como sorprendidos como diciendo no no es que no me esperaba para nada y de hecho incluso había algunos que decían como bueno aquí lo de vapor no porque claro yo estoy viendo core data estoy viendo su UI, estoy viendo TDD, estoy viendo un montón de cosas que son de trabajo sobre entornos apple vale

y de pronto el bootcamp te saca en un módulo a vapor vale y claro es como ahora me voy a salir al lado servidor nombre si yo soy desarrollador de aplicaciones tal pero de pronto la gente empezaba a ver que es el mismo código que conocen pero de una forma completamente nueva con una arquitectura completamente nueva de una manera muy intuitiva que puedes trabajar con los datos de una forma muy fácil que todo se ve muy bien en código de un primer

vistazo etcétera y terminaban diciendo que les había sorprendido muchísimo el tema de vapor y que vamos que les había ganado y de hecho todos terminaron por crear una un lado servidor para su propio proyecto de fin de bootcamp al final es difícil meter la pata la patita porque ya hay muchas empresas que tienen backends hechos en otras tecnologías entonces todas para bajar en una aplicación trabajar en eso sí que es más mucho más

complicado vale que trabajar pues haciendo al final aplicaciones para los sistemas los sistemas de apple y julio no no quiero desaprovechar esto esta oportunidad porque estuve ya no me acuerdo ya se me va se me va un poco la cabeza el mirando de esto de bases de datos y tú has comentado que lo hiciste en postgres yo soy muy pero bases de datos relacionales vale porque a mí me explota la cabeza porque estuve investigando un poco más sobre las

nacionales las ventajas las desventajas yo lo del no sql lo siento pero yo no lo entiendo o sea no a ver es que hay que tener mucho cuidado y ese cuidado recae en el propio desarrollador te pongo el ejemplo precisamente las bases de datos relacionales las bases de datos relacionales tienen relaciones es decir si yo cambio algo en un sitio se me cambia como la relación se relacionan los ideas imagínate pues que tengo una persona con sus objetos vale con

sus pertenencias pues yo si le cambio una propiedad a esa pertenencia ya está reflejado cuando pido las pertenencias del usuario me va a venir ya con ese cambio porque el usuario tiene una relación a los ideas de esas de ese objeto de esos objetos de esas pertenencias pero en una base de datos no se cuele no relacionar lo que te dicen es que cada vez que cambia tienes que ocuparte tú de en el usuario que va a tener todo no va a tener ideas sino que

va a tener todo actualizar esa propiedad con lo cual si no te das cuenta si no estás utilizando un framework a ver lo bueno es que hay framework por encima que te quitan esa parte y digamos que se hace por detrás y tú no te das ni cuenta vale pero yo he tenido problemas realmente en aplicaciones de producción de a no claro es que cuando haces es x operación claro es que se me olvidó actualizarlo digo madre mía se te olvidó actualizarlo pero es que

es normal o sea el primer día te acuerdas el segundo día te acuerdas pero al cuarto día que toques ahí se te olvida actualizar un contador lo mismo hay que hacer contadores porque el problema que tienen las bases de datos no relacionales es que tienes que ir guardando todos esos datos contadores y demás porque las consultas son muy caras vamos a llamarle para hacer consultas cruzadas esas yo estuve tiempo trabajando con un back en

en php en la base de datos era era sql no nos recuerda yo creo que la msql y unas queries para los informes diarios y mensuales que te mueres o sea unas queries que harían vomitar un cerdo para flipar las queries pero es que luego si las hacías bien y ahí eres donde entra y tú julio trabajaste años de eso era la diferencia entre un tío como yo que pues lo tenía que hacer las cuales esas para salir del paso alguien que sabía hacerlas

y es que te las optimizaban y procesos que duraban yo lo hacía y duraba una hora venía el tío que sabía lo cambiaba cuatro cosillas y hacía cuatro o sea cambiaba las play mariquís y cosas cosas que contaba que yo le miraba con cara de que está diciendo este señor pero el caso es que de una hora que tardaba luego tardaba cinco minutos vale pero podías hacer unas burradas que no te permite una base de datos no relacional y sobre todo que

lo tienes todo ahí en una relacional y no te tienes que andar fijando fijando en ese tipo de cosas yo es que de hecho el verdadero poder de la api que estoy haciendo y de lo que son los datos en sí se basa en su relacionalidad pero efectivamente también he de reconocer que yo peco de fanboy de las bases de datos relacionales porque yo antes de entrar en el mundo apple estuve trabajando durante 12 años como como administrador de base de datos

oracle y también pues haciendo aplicaciones con plsql consultas etcétera de hecho era una cálida tarde de verano en la antigua grecia cuando pues tuvimos vale un un cliente vale es decir esto bueno como ya no estoy pues tampoco igual lo puedo contar no creo que pase nada a ver ya no te pueden despedir ya no efectivamente ya no pueden tal a ver yo he trabajado durante siete años en la entonces dirección general de aviación civil

del ministerio de fomento ahora agencia estatal de seguridad aérea de acuerdo de hecho cuando empezó a hacer la a esa fue cuando cuando yo fui invitado a abandonar la academia vale entonces bueno pues está simplemente pues de hecho la empresa para la que trabajaba a los pocos meses de perder ese proyecto pues se fue a traste vale o sea que fue una cosa que en fin era como la crónica de una muerte anunciada pero independientemente muchos años

antes vale cuando yo estaba porque en esa en ese proyecto ya tenía 15 personas a mi cargo haciendo pues bastantes aplicaciones bastantes proyectos con oracle developer 2000 que era una herramienta que tenía oracle para desarrollo de frontends que utilizaba una plate java para ejecutar una parte de frontend sobre base de datos a través de disparadores a través de triggers que lanzaban eventos a partir de los campos y de las tablas

de base de datos relacionales y entonces pues generabas ese trabajo no e incluso luego tenías que hacer también reports con una aplicación se llamaba reports developer que que bueno pues que también era como muy vamos ríete tú de las cosas las constraints de UIKit eso es gloria comparado con lo que era hacer un informe en reports vale total que en esa época antes de tener a toda esta gente todo este equipo etcétera etcétera pues estaba

yo solo estaba yo solo manteniendo una serie de cosas y de pronto pues el jefe que tenía en aquel momento vale pues me el jefe del misterio vale un tío que es vamos yo creo que es el mejor responsable con el que he trabajado en mi vida era un tío absolutamente excepcional y curtido en todo tipo de marrones de todo calibre vale esa increíble no y me llevaba muy bien con él entonces este tío pues me llama y me dice oye mira tengo aquí

un problema no sé si me puede echar una mano tengo una aplicación para la gente de medicina aeronáutica que pues que no funciona que es toda fatal que la empresa que lo ha hecho dice que la culpa es nuestra porque el servidor va muy lento que en su servidor va estupendo y que en el nuestro no funciona claro que tener muchos datos claro es que los cachondos de la otra empresa estaban trabajando con datos de prueba que tenían 9 o 10 pacientes la aplicación de producción no tenía

9 o 10 pacientes tenía a todos los pilotos que tienen licencia de vuelo en españa a todo el personal de vuelo azafata etcétera o sea que me estás contando tenían miles de cientos de miles de datos entonces claro no era comparativo no entonces no no la culpa de vuestro servidor que está mal configurado claro el servidor está configurado por mí vale entonces era como hola qué tal cómo está la cosa total que llegó a comprobar la base de datos y resulta que efectivamente

hay un proceso de una aplicación en java que conectaba por spring a oracle y lo que hacía era pues hacer una consulta entonces cuando tú le dabas a generar un informe el informe tardaba aproximadamente unos si no recuerdo mal unos 10 minutos una cosa así más o menos vale en generar un informe de lo que era la parte del informe de medicina oráutica vale y entonces claro pues me dice este hombre mira a ti no te importa echarle un ojo y tal y miro lo que hay y tal y luego pues

vienes en una reunión y me dices que es lo que has encontrado vale pues me pongo a auditar esa base de datos y resulta que la base de datos de oracle básicamente era una base de datos access que habían migrado a través de un odbc de microsoft vale los objetos de conexión que tiene microsoft entre distintas objetos de base de datos a través de windows pues tú pones una conexión odbc a access y una conexión odbc a la conexión de base de datos y entonces puedes a

través de esos odbcs desde el propio access hacer una migración directa desde access a oracle vale pasando a las tablas que sucede que las tablas se pasan sin claves primarias sin claves foráneas es decir sin relaciones sin claves sin restricciones únicas nada o sea es un volcado como el que vuelca un excel vale de forma que los datos que había ahí no tenían ninguna primary key ninguna foreign key ninguna unique key no tenían constraint ninguna de ningún tipo eran datos colgados

ahí a choflón donde había datos de una tabla que tenía si no recuerdo mal 40 o 50 campos donde había hasta 100 registros que tenían exactamente el mismo exacto valor en todos los campos de forma que la aplicación tomaba como el valor correcto el de fecha más nueva imagínate lo que era mover lo que era hacer cualquier consultas a base de datos sin ningún tipo de índice sin ningún tipo de nada o sea entonces claro tenían una vista que hacía varias consultas anidadas entre distintas

tablas para generar resultado concreto vale una vista para el que no lo sepa una view en oracle viene a ser básicamente pues como una variable calculada en swift vale es decir es algo que no tiene un almacenamiento sino es como una consulta que está montado a base de consultar distintas tablas de hacer joints entre distintas tablas etcétera y que te devuelve un único resultado que parece que te devuelve una tabla pero en realidad es una consulta digamos un poco más

trabajada y entonces bueno pues esa vista era la responsable de que se tardaran esos 10 minutos en hacer todo este elemento entonces yo hice un informe lo presenté y claro después de que la gente empezara a decir no porque tal porque esto no es porque no sé cuánta porque vuestro servidor porque a nosotros no funciona bien tal y cual pum saque el informe y claro esto no tiene prima decay no tiene coste y no tiene no sé qué no tiene no sé cuál esta vista está mal hecha esto no sé qué

esto no sé cuál al comercial se le cayó el alma a los pies y ojo nos dijeron o sea nos pasaron el proyecto a nosotros la empresa se retiró se rindió nos cedió todo el código fuente que ellos habían hecho y dijeron para vosotros y salieron corriendo y fue como perdona es claro yo estuve unos cuantos días creando todas las prima de que es limpiando los datos temporales dejando los datos bien creando

las for in case apropiadas para cada uno de los elementos y reconstruyendo la vista a una vista bien montada que aprovechará las relaciones que hiciera porque una de las cosas primordiales que puede que tienes que hacer en oracle es que si tú tienes una primary key o un índex que tiene una serie de campos en un web de una consulta tienes que respetar el orden de ese índex para que lo recoja y automáticamente vaya buscando por esos índices de campos múltiples no y que luego

pues las for in case también tengan un contexto lógico en el que vayas por distintos niveles en función de si son padre hijo la tabla o si es una relación de 1 a n dna en fin dependiendo de lo como estuviera total que configuro de nuevo toda esa vista y qué pasó pues que de los 10 minutos que tardaba la vista una vez limpiada toda la base de datos pues tardaba de cronómetro 1,9 segundos que madre mía la que tiene que haber liada para para que esos órdenes de magnitud

así que imagínate y estamos hablando de una base de datos con decenas de miles de personas que a su vez esas personas tienen informes médicos un histórico de informes datos médicos asociados a esos informes etcétera etcétera vale o sea que era un montón de información que estaba relacionada en una base de datos cargadita vale y pues pues está sin ningún tipo de primer y que es ni nada y pues tratar pues claro era un infierno y yo al final pues la arreglé y la verdad que quedaron

bastante bastante contentos así que bueno una anécdota como otra cualquiera ya ha estado de tengo entendido creo que grandes plataformas pues yo creo que una vez leí un poco sobre cómo está estructurado facebook lo que hacía digamos que tienen una capa primero de hecho hay todo con una especie de caché vale y luego ya la voy recogiendo y estructurando vale tener una caché no relacional en la que bueno si estás pidiendo algo que se acaba de producir punte lo chuta muy

rápido pero luego esa información se iba se va estructurando en una base de datos relacional pero no lo sé porque también voy a contar yo también otra anécdota una creo que fue no la primera pero de las primeras empresas en las que trabajé y esto seguro que los más jóvenes alucinan cuando lo cuente el backend consistía de hecho llegaban de dos maneras una era un paquete ip o sea es que ya no te hablo de servicio res ni api res no no era un paquete ip con que se lean los

bytes vale de hecho los yo trabajaba en la parte de los equipos que había distribuidos y mandábamos bytes o sea mandábamos digamos luego lo que hacíamos un string que los convertía bytes y ahí iba el significado de todo lo que queríamos mandar porque porque se recibían de dos maneras o paquetes ip o sms vale y lo que había en el backend era un programita en c que se había encurrado hace muchos años y eso mejor no tocarlo porque podría explotar y luego la lógica del

backend una vez que recogía los mensajes era un lenguaje llamado transax SQL que analizaba la trama y guardaba en base de datos todo lo que todo lo que se necesitaba era y de hecho iba súper rápido eso sí que es verdad iba iba súper rápido pero cuando había que tocar algo en cambio toco también en ese transax SQL en esa época tuve que implementar en oracle una capa de conexión con con soap una

capa con lo que son llamadas que era el anterior no al api res con llamadas en xml y el xml yo en oracle lo trataba como texto y lo parseaba como texto a mano porque no había una librería de xml en oracle y aún así yo era el más rápido de todos o sea mi solución de parseo de texto a lo cutre salchichero buscando la subcadena y buscando el fin de la de la llave xml etcétera etcétera era mucho más rápido que ninguna librería que usaban otras soluciones basadas en java sobre los mismos

servicios me decían oye y cómo lo haces tú tan rápido y llena todo parseo de cadena a lo burro y aquello digo madre mía el día que alguien le dé por cambiar aquí algo es que ahora lo que lo que vemos gracias a que las tecnologías ha evolucionado un mundo saque así estamos hablando de hace 10 o 15 años o sea la tecnología ha evolucionado un montón pero es que hay un montón de capas de cómo no te llega que al final lo que se manda a día de hoy más o menos son jasons pues hay un

montón de capas intermedias de control de reenvíos y de un montón de cosas que antes no no la sabía es como os digo es que eran llegaban bytes y si el primero era 5 o sea los dos primeros bytes era un 5 y un 3 pues con esos dos significa que era una un mensaje de tipo no sé qué iba aquí a esta tabla era era un poco locura pero bueno la verdad es que que bastante bastante divertido porque seguro que estamos hablando de esto pero alguien que haya programado hace más años dirá eso era

todo un lujo de aquellas un lujo asiático totalmente y para no largarnos más julio si te parece vamos vamos a entrar con las noticias que una tiene que ver con el futuro de la programación pues sí porque el otro día de pronto llega lo que es bueno pues el medio de información que ya de por sí ha comentado históricamente cosas sobre lo que apel va a lanzar con las nuevas lentes de realidad aumentada y virtual y nos contó algo que

nos dejó bastante sorprendidos a todos que yo lo conté en el podcast de apple coding daily y que desde luego pues si realmente pasa va a ser algo impresionante y es que se supone que apple estaría preparando un sistema de creación de aplicaciones no code es decir sin codificación pero claro no serían aplicaciones serían algo así como servicios basados en 3d elementos que tienen que ver con objetos 3d con crear experiencias es decir algo parecido a lo que

hemos comentado de reality composer pero hecho con una nueva herramienta cuya característica clave es cuál es arturo que sería controlada con nuestra voz que no habría que echar ni una sola línea de código básicamente sería como hablar con jarvis es como si fuéramos tony stark y esto como funcionaría pues imaginad que yo quiero generar una escena vale porque además esto por lo que parece ser según comenta de information estaría unido a un modelo de generación de objetos 3d

realizado por apple como un stable diffusion pero que generaría objetos 3d de forma que yo podría decirle a este sistema y además sería con siri a siri para que no salte hazme un cohete de color rojo y blanco así con ajedrez como el de tintín viaje a la luna donde pueda poner un pequeño muñequito que abra una puerta en la parte de abajo y el muñequito puede entrar dentro de escribirle una escena 3d y teóricamente siri pintaría o dibujaría eso y generaría la experiencia no sé

hasta qué punto hasta el punto de que le puedes decir génerame el cohete no sé qué hay házmelo más grande ahora con un ala más pónmelo con la punta más fina la punta más gruesa en vez de dos motores ponle tres y lo iría cambiando insisto igual que jarvis es decir tony stark no programa la mark 2 en iron man 1 tony stark le va diciendo a jarvis ahora pon menos de que ahora no sé cuál aprieta esto más ponte aquí no sé qué ahora calcula la cantidad de combustible que tienes que poner

ahora no sé qué tal eso es lo que hacía con jarvis entonces se supone que haría eso tú hasta dónde ves que esto pueda ser plausible a ver yo creo que todo depende más que de que creen un id en base a esto de la parte de matching learning que es que avance porque sí que es verdad que con todo esto que ha salido este tipo de fusión de chat gpt ha habido con mucho hype pero de repente se ha visto que

hoy espera esto sí mola mucho y mola porque esto llevaba tiempo ya y lo hemos liberado ahora y estáis flipando pero claro decían que la versión de chat gpt 4 que hoy no te esperes nada del otro o sea un salto tan grande porque la gracia fue que al liberar la versión 3 flipasteis porque no habías visto nada de lo anterior vale pero está la evolución va va muy lenta y además estamos viendo que tiene problemas como que te dice cosas pensando siempre que son ciertas vale ahí tiene

ciertas limitaciones pero luego también ha habido otros movimientos que se han enfadado ha habido empresas que nos han enfadado como creo que fue google que dijo a ver esta gente lo ha liberado ahora pero nosotros en nuestro laboratorio tenemos cosas que le dan 100.000 vueltas vale por lo que no me extrañaría que apel también en sus laboratorios ha salido es un dar picha y ha dicho yo he visto cosas que no creeríais de hecho han llamado a bill larry page y no sea uno de los

fundadores de google para que les ayude a lanzar la parte de inteligencia artificial que quieren liberar cosas no sé si forzados porque como open ahí está está empezando a liberar cosas tan rápido y está causando ese revuelo pues han llamado a uno de los fundadores de google que ya estaban desligados de la compañía para que les ayude en la estrategia para lanzar esto porque yo creo que la parte está de inteligencia artificial aunque sí que es más fácil conceptualmente de vender que la

realidad aumentada y fijaros lo que estoy diciendo es un reto muy grande la parte de vendernos la realidad aumentada sí que es complicado o sea aunque no entonces yo leo estas noticias y es que veo o sea me da la impresión de que vamos a llegar a ello pero como de rápido y además apel que precisamente la que la que no va por eso pero apel es la que no va a sacar un algo que no esté bien hecho pero teóricamente este es el motivo del retraso por el que no se han presentado las

lentes en enero y se presentarán en mayo porque el software no está todavía terminado al 100% entonces qué pero esto es para los desarrolladores o sea te quiero decir el problema de la relación aumentada no es vendértela a ti o vendérmela a mí que vamos cállate y toma mi dinero exacto es vendérsela al público general a la gente que decía hace 15 años que jamás tenía un smartphone y ahora no se separa él y yo creo que eso la realidad aumentada va a ser complicado

de hecho entre otras cosas porque tenemos smartphones es decir no claro con esto puedes ver experiencias más inmersivas dice me da igual si es que yo te hago una videollamada y sabes se lo dices a mi abuela que está viendo a su bisnieta dice para mí es que comer ya estoy flipando de que la puestas en madrid y la puedo ver a través del móvil hay un casco claro es que ahí la forma de entrar es básicamente a través del mercado profesional que es un poco lo que lo

que facebook ha visto vale es decir ahora ya se ha implantado el modelo al menos en determinados sectores como el del desarrollo se ha implantado el modelo de trabajo en remoto vale entonces ese modelo de trabajo en remoto con unas lentes de esas características hostia mejora muchos puntos la productividad entonces claro hay que tener presente ese tipo de cambios ese tipo de cosas que pueden proporcionar algo muy especial pero desde luego si va a ser todo un reto que algo

que no es práctico de por sí porque al final las lentes que va a sacar apple si hacemos caso a los rumores van a tener dos horas de autonomía y van a tener una petaca tipo max safe que se pegará en la parte de atrás para que yo pueda cambiar esa petaca antes de que se le acabe la pila al cacharro y poder seguir trabajando es decir que cada dos horas voy a tener que estar cambiando la batería para poder tener una experiencia de más tiempo no claro esta es la primera cuestión julio eso es

cuestión de tiempo claro es un problema que es que es cuestión de tiempo que que se soluciona pero no es algo para sacar a la calle que es el principal problema entonces no lo sé yo creo que va a ser complicado vale a ver al final hasta nuestras madres padres usan teléfonos móviles vale mi suegra con más de 70 años va a comprar o a para tomar algo en un restaurante y come y tal y saca su móvil y paga con apple pay con su huella y es más feliz que nadie la la gente la mira como hoy

de verdad maripili que está usando el móvil para pagar hoy que le ve y es que me han enseñado mis hijas se puede presumir el smartphone nos ha conseguido ser súper masivo incluso atraer a gente que no había tenido lo anterior que se supone que es un ordenador y eso gente que no había tenido pero es algo que por ejemplo los smartwatch no han conseguido no no con se están en la pirámide arriba de los smartphones y a mí me ha complicado pensar pero esto va a ser complicado

como tú dices a ver mucha gente que va a entrar vale pero va a haber otra mucha que entonces claro esta herramienta que teóricamente permite una algo tan sencillo y que permitiría crear experiencias que cualquiera podría hacer sin necesidad de conocimiento de desarrollo con entornos 3d con objetos 3d con generar elementos que luego podamos usar en nuestras casas etcétera pues hombre a ver tú ves a google presentar como por ejemplo hace poco presenta music lm una inteligencia artificial

capaz de generar música a partir de descripciones de texto la demo que pone que pone google es bastante impresionante pero luego no hay chicha detrás es decir no se puede probar la gran novedad de gpt3 es que nos dejaron probarla a ti a mí a quien quisiera igual que chat gpt entonces será mejor o peor pero por lo menos podemos probar y eso ha permitido que por ejemplo pues apareciera stable diffusion que es código abierto y eso ha permitido que pueda haber más soluciones

que serán más o menos óptimas vale pero por lo menos la gente normal puede trabajar con ello pero apel hasta donde yo tengo entendido si ha funcionado ha trabajado en un sistema de creación de entornos 3d generativos vale apel es capaz de cuando te falta una parte de la habitación por ver dentro de las lentes de realidad aumentada en el modo pastrú es capaz de generar de forma automática con una red generativa lo que no ven esas lentes para presuponer cómo es el resto de

la habitación de forma que si yo estoy en un pasillo y me aproximo a un salón y sólo se ve una parte del salón porque la puerta no permite que se vea nada más el sistema es capaz a través de una red generativa con lo que está viendo completar el total de ese salón para luego ir haciendo por por afinación el lo que es el propio entorno vale porque al final tú necesitas que las lentes vean todo el entorno donde estás para que lo generen si no llegan a ver una parte de la

habitación tienen que ser capaces de completar dicha habitación de forma generativa para que tú puedas tener una buena experiencia aunque hay una parte concreta que no tú no hayas visto nunca y que cuando llegues ahí la parte esa de habitación que el sistema aún no ha visto ya esté pre generada tenga un ajuste mínimo y permita que la experiencia no se rompa porque por lo que sea como ese trozo

no está no está generado no está escaneado no digamos pues lógicamente hay una parte en la que los elementos virtuales no se pueden mover vale entonces bueno pues en esa esa parte si la tiene publicada apple en su web de machine learning punto apple punto com pero el tema de una red generativa de objetos 3d ojo estamos hablando de el top del top del super top de lo que hoy día pueden hacer las inteligencias vale que es la generación de objetos 3d y aún así objetos 3d de

aquella manera vale entonces que de pronto no salgan con esto a mí me parece cuanto menos curioso vale oye que me apunto vale pero como hemos dicho antes de entrar al programa le vamos a pedir a siri que no es capaz de encender una luz con el reloj o sea entiéndeme que le dice enciende la bombilla te dice no encuentro bombilla no sé qué es bombilla pero he encontrado esto en internet te va a ayudar a hacer un programa no sé en fin esto a ver es que me parece tan distinto

esto sea esto como reto y ahora personalizando en apple me parece tan distinto a como fue el iphone porque esto de eso estaba hecho justo mi profesora de inglés me ha puesto esta mañana un vídeo de mark gorman contando lo de las gafas contando lo de las gafas no porque dice como siempre me estás hablando de estas cosas hoy me pasaron una noticia y tal en una página que solemos consultar para para eso para sacar temas de la conversación se le entiende bastante bien te lo

digo por experiencia y hablaba de que de hecho le dije pues conozco a un tío que habló con él sí sí y decía decía que que más o sea llevaba más de mil personas trabajando durante siete años en esto y luego tenemos en otro lado que además hace poco también me he leído un no sé si era un libro o un artículo de sobre la creación del iphone que es que el iphone fue al revés fue dos años 10

personas en una sala es tan distinto el reto que no sé si apple en este caso mira que confío en apple por para muchas cosas pero no sé si en este caso va a tener algo y o sea también confío en la parte de confío en apple en que si saca algo es porque lo tiene porque lo que comentamos bueno que no lo hemos comentado lo que comentan en muchos medios que hablan sobre apple lo del apple car vale apple no ha sacado el coche porque no ha dado con nada donde pueda imponerse a los demás

porque según ellos pues siempre siempre se dice que apple va a sacar un producto donde tenga alguna ventaja si ellos si se ponen a generar un producto a intentar lanzar un producto y no tienen nada que le diferencie a la competencia no lo van a sacar de hecho es que bueno el apple car por si alguien se lo pregunta vale yo ya se lo confirmo el apple car una de sus principales conceptos a nivel de diseño es que sería el primer coche de producción masiva sin puesto de conductor

claro a ver al final ellos tenían esa idea lo que pasa es que claro pues la conducción autónoma y bueno nos podríamos estar hablando horas tiene sus problemas todavía que además no están resueltos pues por eso es una de las empresas que tiene licencia en california para probar coches de conducción autónoma porque lo que apple te podría sacar un tesla o algo parecido antes la ya seguramente pero pero no no quieren por eso porque no quieren sacar luego podríamos debatir sobre que

ciertos servicios de apple no tiene la calidad que se espera gira a la derecha no conozco derecha pero he encontrado esta página de internet y además me he tenido el otro día hablando con un amigo me tengo que tragar mis palabras porque siempre dije para qué apple se mete en televisión en general en general en hacer series y películas y tal y es al revés porque parece que tv plus la verdad yo se la estoy disfrutando como como un enano y me parece que sí que tiene más calidad

media la calidad media de las producciones son muy buenas pero sí que es verdad comparado con netflix es como el día y la noche o sea es una cosa a veces cuando le sale algo bien es un poco como casualidad de pronto miércoles adams no es como o dios mío merlina para la gente que es de latinoamérica curioso se ha dado 200 cosas como es como samsung sacó 200 móviles y alguno tiene que ser el mejor en su en alguno tiene que ser el mejor en su sector el mejor hasta la fecha

pero la cojo no quería hablar de los nuevos samsung que no sé qué tienen de nuevo si los nuevos samsung spider no que parecen como un en fin es pero ya no es sano sacará mismo pero eso es que no tienen nada más que ofrecer pero ni samsung ni apple ni nadie efectivamente entonces no sé todas las cosas que salen de realidad aumentada de y esto tiene un poco de las dos es para generar experiencias de realidad aumentada y por voz o sea tiene más in learning y realidad

aumentada que son justo las cosas que se supone que están destinadas a ser la siguiente de next big thing que dicen pero que no lo sé que es que mira que quiero creer julio pero no soy guón tuve lista me cuesta me cuesta un montón esto como diría como diría tezla sonó el señalando arriba al cartel de billy pues lo mismo grandísima serie o sea fíjate lo buena que este lazo que estoy yo viendo una serie que

es de fútbol o sea eso indica lo buena que este lazo mi mujer y yo ojo sea que eso tiene tiene tela apel tibia está llena de apel tibia plaza está llena de grandísimas series y de buenos productos pero efectivamente a ver yo personalmente personalmente creo que lo que apel presente nos va a romper cual elige la parte del cuerpo que tú quieras esa te la va a romper el cerebro el orto de todo lo que sea o sea yo creo que cuando salga vamos a decir what the fuck pero qué es esto pero que

has hecho pero va a ser de verdad repito me puedo equivocar obviamente me puedo equivocar pero yo tengo la impresión de que igual que cuando este job salió e hizo así con el móvil y vimos el scroll inercial y dijimos qué brujería es ésta y dijimos este jobs debe ser de griffindorf hola skif bienvenido a hogwarts pues esto es un poco así vale entonces yo tengo las insisto es una intuición mía personal que no sé si es por intuición por ganas por ilusión por no lo sé

pero tengo una como un algo que me dice que cuando apel presente esto vamos a decir hemos viajado al futuro y no nos hemos dado cuenta creo que apel va a presentar cosas que automáticamente nos van a ser no van a hacer pensar que nos están tomando el pelo que eso no es verdad y que eso no se puede hacer y cuando lo veamos cómo se hace vamos a decir pero qué puñetas es esto pero esto que ha pasado es un poco lo que lo que pasa con chat gpt no que la gente que realmente le saca habla

con oliver vale yo cada vez que hablo con oliver está emocionado del uso de chat gpt y como tal y cómo funciona y cómo corrige cómo hace los resúmenes y tal y lo ves que está usando la herramienta de manera constante etcétera y está realmente emocionado porque dice es que a mí me dicen hace dos meses literal o tres meses que voy a ser capaz de sacar todo el trabajo que estoy sacando gracias a una inteligencia artificial y me río en tu cara o sea de pronto me veo en el futuro

me veo pues eso tony stark diciendo jarvis ponme a ti no sé qué tal si ahora génerame el lazo de no sé qué tal y cual sí sí yo creo que ahora el núcleo el reactor stark ahora ya está perfectamente y tal pues en ese plan o sea entonces yo creo que vamos a ver algo que nos va a romper la cabeza directamente insisto es mi llámalo pues no lo sé a lo mejor es ilusión por lo que podemos llegar a

ver pero yo creo que va a ser algo muy muy heavy que no estamos preparados para ver ya no esperamos vamos a ver ojalá tengas razón ahora se me ocurre y que lo presentará será el propio team cook y ya va a ser aumentada de este jobs con voz generada a través de una inteligencia generativa que va a reproducir la voz de este jobs no sé si es un poco creepy si se atreverá pero lo que coge lo presenta o sea y que nos va a ver eso nos pula la cabeza y coge

y tira las gafas dice ellos que el mejor ya sabes que el mejor maestro de ceremonias que apel tiene ahora mismo ya sabemos tú y yo quién es el gran jefe de mí me mola mucho el de los apel silicon que por cierto en los últimos nos salió en la presentación de los m2 no ya no se juega yoni surugi si no hay ese tío se ese tío se merece se merece presentar las las apel glass se lo merece porque es el que mejor lo ha hecho en la última presentó john ternus que es

el sbp de ingeniería de software de hardware perdón de hardware y bueno que es el de ingeniería de software ya sabemos que es que el federico entonces pues vamos yo un tío que es capaz de hacerse ahí un una animación de flash y luego a cámara lenta hacer así con el flequillo y tal y que se ríe de sí mismo y que se pone a hablarle a un memo y de una gallina y hacerle ahí con el chándal ese que salió en una presentación hostia verdad yo quiero ese chándal el chándal de

suif de color así naranja hortera de eso yo lo quiero vaya gimnasio y eso que no voy a gimnasio pero lo quiero fue lo primero que dijimos cuando vimos el chándal todo dijimos yo quiero es que eso ves somos como somos de hecho yo por ejemplo tengo alguien por ahí en cupertino y la niña ya tiene un body he comprado directamente allí en la tienda de empleados de apple y también tengo pedido una camiseta para mí digo que es eso de regalar cosas de apelar a la niña y dejar a su

padre sin nada pues sí pues una camiseta de suif o algo yo tengo camisetas de suif pero claro las hacemos nosotros para apple coding entonces pues en fin tenemos ahí esa opción pero la verdad que yo creo que puede ser puede ser algo algo interesante vale seguimos un poco vale por ir avanzando y y por ejemplo pues tenemos ya la primera versión estable del plugin de suif para visual studio code tenemos ahí esa versión 1.0.0 tú lo has estado probando pues la verdad es que

la ha probado un poquito porque claro como sólo o la mayoría del trabajo que hago es en sistemas de apple pues estoy con con escudo a tope y aparte la parte está de las landas también la hago la hago en scott y pues es así de estudio code sí sí te genera el proyecto y bueno claro si es que tiene plugin se puede hacer lo que no se puede hacer es como es lo mejor de lo peor que están hechas en electrón si hay cosas que me chirrían un montón la interfaz los iconos es que abro es abro visual

studio code y abro al lado es code y uno se parece a las ventanas que tengo en mac y otro no sé y visual studio con no se parece absolutamente a nada y eso me chirría eso sí están el electrónico lo queráis pero va muy bien es súper rápida súper completa y tú julio que me consta que sí que lo has estado probando a fondo podríamos decir que tiene muchas cosas mejor que el propio scott es más estable en cuanto al auto completado también tiene sus cositas y también se le va un poco la

olla de vez en cuando y tal pero es algo más estable con el auto completado etcétera al final lo que apple pretende con este plugin de visual studio code es proporcionar un entorno de desarrollo integrado lo más parecido que puede ser un editor de texto para entornos linux vales es decir yo puedo montar un ubuntu por ejemplo centos y poder tener un entorno de escritorio y dentro de ese entorno de escritorio tener un editor que me permita trabajar directamente con swift que

es capaz de encontrar el intérprete o sea el compilador de swift es capaz de conectar las tareas es capaz de realizar tareas básicas de build de run es capaz de hacer debug de una ejecución vale podemos ejecutar directamente de visual studio code y obtener las salidas de depuración e incluso crear breakpoints y que podamos ver el volcado en memoria etcétera etcétera todo eso con swift pues hombre se agradece bastante el poder acceder a la capa de low level debugger

el ldb en fin pues al final que sí que en mac tenemos scott pero en linux o en windows no tenemos scott y entonces pues es una ayuda interesante y luego por mi parte se mezcla con que yo si estoy pagando el plugin de github copilot el plugin de inteligencia artificial y entonces bueno pues ese plugin me ayuda en los proyectos que estoy haciendo como por ejemplo el que estoy haciendo ahora de vapor donde no siempre acierta en el autocompletado pero por lo menos es

una ayuda que te evita tener que ir a la documentación para recordar cómo se hacía un sibling o cómo se hacía una consulta a través de un sibling o cómo se cargaba una tach a través de la propia relación cuando quieres unir en la relación en a n a partir de uno de los puntos de entrada de la propia relación en fin que son cosas que requieren una implementación muy precisa y que pues normalmente

lo que haces es ir a buscarlas a la documentación y con github copilot pues te ahorras esa parte porque él ya te crea la estructura de inicio y luego ya pues simplemente si se ha equivocado en alguna parte algún nombre de variable alguna cosa puntual pues lo puedes cambiar o lo que es la propia estructura pero en principio pues la verdad que funciona bastante bien en ese sentido o sea que yo os invito a probar visual studio code y a instalar este plugin de lo que es swift que es el

plugin oficial que ya está en la versión 1.0.0 y que bueno pues te va a permitir coger todo lo necesario para que pues puedas trabajar a ese respecto. A ver lo bueno de visual studio code que tiene esta opción de los plugins y a mí por ejemplo me salvó una vez la vida pues estaba colaborando en un backend en node.js no lo sé ahora mismo no sé bien qué es framework que es tal ahí me pierdo un poco entonces yo tenía que hacer algunas partes y retocar y pequeños cambios porque

yo estaba haciendo las aplicaciones pero bueno también la pila tocábamos entre todos y me bajé un plugin y con ese plugin directamente configuradas cuatro cosas y podías correrla al local sin tener que instalarte que si con dock en una máquina y otro por cientas cosas simplemente era poner un plugin y ya está te decía que añades a tu proyecto un ficherillo de configuración con cuatro cosas y ya está ya tenías ese plugin luego también utilice plugins que ahora creo que ya está

ya está metido en el propio editor para markdown cuando hacía documentación con markdown pues para ver en tiempo real para que me sugiriese el auto completado y bueno una serie de vitaminar digamos el editor de markdown pues también también lo tenía y luego también lo uso mucho para visualizar json porque bueno seleccionas que es un json y le das a formatear y te lo formatea bonito y es que si os ponéis a buscar hay pero una pila de plugins enorme que seguro que algo que hacéis como esto

que os cuento de dejar bonito un json pues antes ibas a hay una web que se llamaba json parser.fr creo que era francesa que yo la estoy utilizando mucho tiempo eso que te descomponía bueno te lo ponía te lo ponía bonito y eso pues la verdad es que visual studio code tiene un montón además eso tiene una comunidad muy grande si utilizáis determinados frameworks seguro que tenéis plugin para para esos framework y os puede ayudar así que yo me voy a aplicar el cuento yo

julio y si me pongo y tengo que investigar a ver si puedo crear el entorno de desarrollo para estas landas porque un editor de código aparte de lo que comentas del autocompletado y bueno de la facilidad a la hora de escribir y de las sugerencias también el entorno de desarrollo el poder con un botón como hacemos en scope con un botón corro la aplicación vale tengo diferentes puedo generar diferentes configuraciones rápido para para entorno de pruebas y bueno una serie de flags

puede hacer muchas cosas porque también eso es tiempo que te ahorras porque si queréis nos remontamos a los sistemas que había que había antes a mí me pasó de coger cambiar una línea de código tener que mandar ese fichero a un cacharro y en ese cacharro arrancarlo de cero y que a lo mejor tardaba en comprobar lo que así si una línea de código estaba bien o mal pues cinco minutos y eso claro si lo tengo que hacer no sé al final te eternizas a veces nos parece que hacer

com and r para ejecutar aplicación la aplicación en iphone en scope es un coñazo pero es que de lo que venimos entonces la importancia también de estos ideas ya no es sólo la parte de escribir código sino es crearte un entorno de desarrollo en el que puedas cambiar una línea del código y en dos mil y bueno en 10 segundos tener la aplicación ejecutada y ver si ese cambio hace lo que tú esperas es decir que nos digamos que antes utilizaban windows notepad plus plus que era

yo creo que es de los primeros que editores que había que sólo editaba o sea olvídate de darle a un botoncito y que te arrancase nada porque porque no lo había pero bueno tenía ciertas ayudas y pero eso era un editor al uso un editor de código un editor de texto al final que utilizadas para código pero ahora mismo tanto como hemos hablado de scout como visual studio code son ids completos en los que puedes generarte un entorno de desarrollo pues sí la verdad que

pues yo fíjate el notepad plus plus también lo usé en su día curioso a lo mejor que había ahora como editor de texto en el en el mac el que uso es el es el sublime sublime text que la verdad que va bastante bien pero lo bueno que tienes que tiene un montón de plugins tiene un montón de hecho es con lo que he trabajado por ejemplo con los jasons vale cuando quiero hacer un un pretty file y poner bonito el jason pues hay un plugin que te lo hace también directamente de

hecho tiene también plugin para ponerle colorines a los ficheros en su y entender lo que son y tal bueno ojo que es que hoy estamos de historietas que trabajo con un chico de hecho yo creo que no nos escucha pero si no escuchas a mí un saludo a llamar café cebolleta su y que utilizaba el de hecho habrá gente que ni lo conozca el famoso bv y que es el editor de texto que venía con las distribuciones de digamos por defecto hoy pues luego salía un bim que era este como vitaminado

al que le podías poner plugins y poner un montón de cosas y este tío era se encargaba del baquet en php a luci nas como pero usaba bien que yo pero tú sabes que es code se puede poner con los atajos de teclado de bim sí sí sí a ver es la clave que tenía que tú con atajos de teclado te sitúas antes o después añada inserta a ver la verdad es que tenía yo es que ahora cuando hago algo de yo que sé pues cuando estoy con la raspberry o cosas así en terminal de comandos

uso el nano que era algo más es menos potente y tiene menos menos magias menos hechizos pero es mucho más sencillo de mucho más sencillo de entender yo en la raspberry el que suelo a ver he usado nano he usado bim pero al final en la época volvemos de nuevo en la época de oracle tuve que hacer muchísimas instalaciones de hp wiki del unix de hp que ya no existe de solaris de sistemas unix de todo tipo y tal y claro al final editar un fichero de texto editar un tal

era esencial entonces yo me terminé acostumbrando a los atajos de b y hoy día entro con la raspberry pi y uso b y pongo una máquina en digital ocean y uso b para poder hacer los textos porque había acostumbrado perfectamente al atajo del insert de la doble de para borrar el 2.1 claro es que eso eso es lo que te explota la cabeza para borrar no se da con el elite el botón que borra siempre texto no no no no no hay que dar dos veces a la de sí entonces te va a hacer un borrado de línea

y luego que tengas el modo edición y el modo moverte por el texto obviamente bueno eso es claro es que esto es claro es línea de comando no tienes un ratón para ir cambiando el cursor a otro sitio sino que tienes que estar moviendo por el texto con las flechitas pero yo me acostumbraba a eso igual que también me acostumbrado en el mac a usar el ítem en vez del terminal normal y la verdad que no tengo ningún problema a ese respecto de hecho ese puntito de la línea

de comando así tal a mí me mola me mola el hacer cosas por línea de comando y no sé es una cosa un poco más me hace sentir que soy más experto a ver yo de hecho hace justo antes de navidades compré una raspberry porque tenía tenía corredores de suerte porque está la cosa complica ahora claro de segunda mano de segunda mano pues cuando me deshice del mac studio tenía ahí varios servidores corriendo y ahora como iba con un portátil pues no era plan de tener el

portátil con ahí con servidores y entonces pues claro tuve que pasar esos servidores a otro sitio y la verdad es que me sí que me divertí bastante por levantar es que además ahora se pueden hacer una cantidad de cosas con con la raspberry incluso con swift sí sí sí con su hijo yo tengo montado en la raspberry es una raspberry pi 4b con 4 gigas de ram y tiene montado pues eso swift tiene dos instancias de vapor que están corriendo a la vez en distintos puertos tiene una base de datos

por sql tiene una instancia de de cómo se llama esto de redis de lo que es la caché pues de que básicamente lo utilizo para para works para para para jobs de servidor no que se programan y se van lanzando de con determinado tipo tiene una instalación de jenkins que hace de integración continua de forma que está conectado con github y cuando subo el proyecto directamente lo descarga lo compila reinicia el servidor tiene montado supervisor stl para poder hacer el control de

los servicios de las aplicaciones de vapor y que se ejecuten cuando se arranca el de este y normalmente no pasa del 20 30 por ciento de uso de cpu se ha contado lo que pasó con jenkins menos mal que salió es code cloud porque tenía montada una integración de dos aplicaciones pero bueno con tres entornos distintos cada aplicación un jenkins pero además no con plugins para que los plugins son para cobardes tenía me tenía hecho un script con su línea de comandos de scope build

un montón de o sea para hacer el archive hacía absolutamente todo luego también ejecutaba pues esto de subir los símbolos a subir los símbolos de firebase para craslitics incluso tenía un ejecutaba en esa integración continua un script bueno no escribiendo un programa de swift que preguntaba al app store si ya estaba procesado el binario porque así se quedaba esperando y comunicaba en canales de slack que ya estaba disponible para pruebas o sea que tenía tela pues

de repente el ordenador donde estaba corriendo se murió y alguien muy listo no tenía ninguna copia de seguridad madre mía madre mía en mi vida y esas cosas de hecho me dio tanta pereza luego volver a hacerlo todo lo que tenía montado que esperé hasta que me dejasen entrar en scout cloud que además justo en la empresa en la cuenta de la empresa fue la de las otras estaba como en tres o cuatro cuentas distintas de apelides o sea cuentas de desarrollador de apple y en todas me

habían dicho ok a entrar en la beta menos en la de la empresa que era la que necesitaba para para generar esta esta integración continua madre mía estamos ya si quieres hilamos y ya el jueves no julio cada día avanzamos menos en logramos avanzar menos el río si vamos a hacer un récord en el que sólo nos contemos lo que hemos hecho y ya sí yo creo que este paso pero bueno a lo mejor así conseguimos grabar con más con más frecuencia pues no te estaba diciendo que

el que la noticia del plug inestable para visual studio code la dio nuestro amigo team condom vale que es uno de los integrantes del proyecto suite del proyecto de vapor de hecho yo creo que fue el creador de vapor no pues la verdad es que no lo sé sé que es uno de los ingenieros que más ha tocado de hecho toda la conversión de asina weight la ha hecho él principalmente más de todo lo que es el transformar vapor para que soporte asina weight y tal o con la ayuda de la comunidad

pero digamos que el proceso más complejo lo hizo él y la verdad que trabajó excelente de hecho ahora mismo team condom forma parte de él del suite service world group del ss wg antes trabajaba ahora ya no como responsable en raivenderlik.com ahora codeco que sabemos que ha cambiado de nombre lo que era raivenderlik que ahora se ha cambiado de nombre a nivel corporativo él era el responsable editorial de la parte de suite de lado servidor de los tutoriales etcétera dejó eso

y ahora está encargado de la parte como digo de junto con ingenieros de apple de llevar el tema del grupo de trabajo para suite de lado servidor vale y bueno pues la verdad que está haciendo un trabajo totalmente encomiable de hecho tiene es el responsable de la de la conferencia donde se anunció el tema de la apertura de código de la librería foundation vale es una conferencia que se desarrolla en londres en el que estuvo también ted kremenek el principal responsable de swift

y que es la swift server conf si no recuerdo mal o conference o algo así que la organiza él con sus patrocinadores y tal y cual y que es una conferencia 100% swift de lado servidor con todas las soluciones que incluso al final consiguió invitar a la persona responsable del proyecto de los lambdas que se encargan de los aws lambdas de swift que se encargan de que cuando tú eliges una peli en amazon prime video busque el servidor de cdn donde servirte la

película y te la envíe si efectivamente pues este el bueno de team a tratarle de tú a tú ha creado una una página web que si no me equivoco se llama tres subes dobles punto argüis server jet punto org vale donde ha recopilado todos los paquetes librerías y frameworks del lado servidor para swift que hay actualmente y así bueno pues por comentar unos pocos bueno primero habla de que los grandes fringos son vapor y habla de otro tal smoke

que yo la verdad que quiero lo probado es el de amazon ok pues no habla de esos dos como grandes sistemas con los que puedes crear digamos el backend entero y luego ya nos habla pues empieza por las bases de datos nos dice fluent que es bueno tú seguro que lo has utilizado en va porque es la manera de conectarte con bases de datos otro tal mongo mongo quiten que para mongo db luego también drivers nativos de la propia mongo db de secular y de postres de mysql también

tenemos de hecho el de mongo db oficial lo estaba usando yo y luego a raíz de esta noticia vi el mongo kit en este que es bastante mejor que no puede salir nada de algo que se llama mongo lo siento en el alma ya no lo pensaron muy bien también hay integraciones con digamos con servicios de terceros como soto de aws de hecho la librería soto yo la he utilizado para llamar al s3 de amazon vale digamos el servicio de almacenamiento de amazon puedes llamarle para

google cloud también para redis que lo has comentado tú antes para el asti search que es creo que también es de aws perdón y sistemas casandra luego también luego también nos habla de algunos paquetes pues para login para autenticación generación de templates no me sale la plantilla de la palabra en español como live que digamos que es la librería oficial para generar html de vapor o plot que es con la que yo hago mi página web del gran john sundale y

job que use pues para crear que use de trabajo en los backends y nada pues es como una página web que nos cuenta un poco como el estado bueno el estado no los framework y los recursos disponibles de suite de lado servidor además creado por él que probablemente sea la persona que más sepa de suite de lado servidor en el mundo y promete que lo que lo va a tener actualizado y nada lo dejamos como como recurso luego además justo abajo del todo también nos dice cómo empezar el

getting started de toda la vida que nos dice por los recursos tanto de la wdc de codeco que lo ha comentado antes julio de la parte de vapor y vamos a algunos sitios por donde donde empezar si te quieres iniciar entonces siempre lo recomendamos pero bueno aprovechamos esta esta vez ya para saber dónde dónde tenéis que ir se llama tres subes dobles argwiserverjet.org vale y ahí el el bueno de team como decíamos antes tiene un montón de recursos pues eso se ha picado el

gusanillo que esperamos que sí o ya tenéis por dónde empezar no digáis que nos decimos dónde ir de hecho una de las partes que comenta porque curiosamente hoy me lo ha preguntado un alumno del bootcamp si vapor soportaba o si suite de lado servidor soportaba web assembly y pues lo que pone aquí es que sí que soporta web assembly que hay varias varios proyectos que trabajan con ello y varias librerías y además hace referencia a una librería que se llama tocamac que ojo es

una librería es un framework compatible con swift ui para construir aplicaciones a través del navegador con web assembly y de hecho tienes aquí código que efectivamente swift ui y lo que hace básicamente es generar pues eso a través de web assembly páginas web portales web donde puedes inyectar código dinámico html código estático javascript y luego pues partes de la nomenclatura swift ui se llama tocamac la librería o sea que lo que pasa que esto me refiero o sea porque estoy viendo

que utiliza por ejemplo el protocolo view me imagino que es un view que han creado ellos a la manera de de su joy porque funciona un poco de hecho en la librería está de plot de johnson dell empezó no siendo así pero luego con la salida de su joy pues se le ocurrió y hay otras parecidas que son que son con esa sintaxis vamos que parecida a su joy porque también en su día cuando salió el propio el propio su joy claro se habló de que no debería de ser tan difícil

conseguir que con que la librería su joy la pudiese se enganchar a drivers le llamaríamos o otras librerías otros paquetes otros renders básicamente es precisamente porque ahora mismo digamos que el su joy tiene el render para sistemas de apple pero ese ren se podría hacer o escribir sólo una parte del render pero claro ahí está uno de los problemas que yo que te ha salido a colación en este podcast habría que hacer su joy de código abierto o ahí ya me pierdo

o a lo mejor con una parte quizás valdría pero no es que es la parte aparte funciona todavía cada vez menos julio pero funciona también con joy kit con lo cual entiendo que hasta que no se despegue es lo mismo que pasó con su y y objetice de hecho el otro día os contamos que la librería de fundación precisamente se quiere separar totalmente porque uno de los problemas que tienes que seguía teniendo muchas partes de los ytc pero su joy uno de los problemas que tienes

que sigue enganchando muchas veces con joy kit con lo cual lo primero que tiene que hay que hacer es separar ambas partes y que sea su joy más un render por medio ese es el kit de la cuestión es que su joy y yo lo comento en mis formaciones su joy es estructura de código cuando lo digo la gente dice como estructura claro su joy es una serie de clases que generan una estructura en este caso una serie de struts pero son una serie de struts que generan una estructura vale

entonces si yo separo esa estructura y lo que obtengo es una serie de órdenes si eso lo engancho a un render puedo conseguir cualquier cosa entonces ahí es donde está la diferencia es decir la capa de renderizado apel no la va a liberar pero la estructura del propio suite y hoy ya no creo incluso ni siquiera que haga falta que apel la libere porque yo creo que cualquiera que sepa cómo funciona la librería podría directamente crear él pero bueno que estaría bien que apel

pudiera liberar esa parte pero fíjate lo que pasó con combine cuando apel sacó combine nosotros vimos clarísimamente que combine venía a cubrir una parte muy importante de una buena API de asincronía para para entornos apel yo fui el primero que dijo oye apel debería de liberar combine para que sea una librería de código abierto porque no hay una API de asincronía buena en swift y efectivamente

lo que hizo fue pues no liberar combine sino hacer async await es decir crear una API de concurrencia y asincronía que formara parte del propio lenguaje entonces es que estaría muy bien porque si al final tienes una API que te permita lo que es la estructura de SwiftUI eso aplicado a cualquier tipo de API de construcción de aplicaciones te permitiría hacer aplicaciones para linux para windows para android para lo que quisieras hacer pero claro obviamente todo eso

requiere de mucho trabajo de ingeniería de librerías y de frameworks y tal que pues en fin no creo que todo el mundo esté dispuesto a hacerlo. A ver, la que utiliza es la de plot de johnson delft, tiene el código liberado de hecho y puedes ver un poco cómo funciona y cómo es capaz de renderizar hizo no sé si la liberó o hay un plugin o alguien lo intentó hacer esa parte de css vale pero bueno ya se les está complicando un poco pero claro es una un html que no es animado

vale si luego nos metemos ahí por ahí que un día me puse a rebuscar gente intentando mejorar este tipo de librerías creo que no partían de la de johnson delft partían de otra intentando hacer pequeñas animaciones que lo que hacen es generar javascript por detrás o renderizar javascript vale para hacer dinámico el propio código pero claro es muy complicado pero como decíamos la base de su UI ya la tenemos entonces no sé hasta dónde, también es lo de siempre o sea por poder se

puede vale pero hay que querer o sea apple tiene que querer y lo que yo creo que lo primero que quiere hacer apple también por su propio interés es quitar la parte de UIKit cada vez cada vez que van vamos avanzando va quitando van quitando componentes de UIKit y haciéndolos que enganchen directamente con el render en su UI sin pasar por UIKit pero bueno van poco a poco si de hecho si queréis hacer la prueba por por curiosidad en s-code mirar pausar la aplicación que tengáis

y mirar en la jerarquía de vistas y ahí veréis que la mayoría de veces os encontráis con componentes que se llaman UI algo que significa que vienen de UIKit bueno y aparte que hay cosas componentes básicos que todavía no los hay en su UI sino que tienes que hacer un wrapper por cierto julio en ARKit si empiezas un proyecto lo haces con su UI pero tienes un UIViewControlRepresentable de la escena vale porque la escena está solo en UIKit pero ya te viene escrito bueno poco a poco

en fin pues yo creo que al final no sé hemos tocado un montón de temas distintos y puede ser interesante así que creo que al final ha quedado un programa curioso espero que os haya gustado vale entonces bueno pues a ver si ya estas horas ya tengo que ir cerrando porque mañana me toca día intenso y ya habiendo comenzado el bootcamp tengo que ir poco a poco y ya estoy mayor para estas cosas así que pues nada muchísimas gracias a todos por pasaros por aquí y nada y como

siempre pues podéis encontrarme en redes sociales como jcfmunoz o en cuonda el resto de podcast a parte de este de cafe swift también en youtube.com barra arroba apple coding igual que este podcast está colgado en youtube.com barra arroba apple coding academy por lo tanto pues no olvidéis suscribiros un like etcétera o si estáis en el podcast pues dejarnos algún comentario lo que sea porque siempre nos gusta bastante escucharlo y nada pues muchas gracias como siempre hoy hemos

aprovechado para contaros historias de abuelos cebolleta porque aparte esto es como un sitio donde venimos julio y yo a descensar y a contar los problemas y las cosas malas y las cosas buenas que nos pasan en el día a día porque nos estamos todo el rato escribiendo pero la mayoría de las veces no tenemos tiempo para sentarnos con un café no porque son normalmente solemos grabar altas horas pero pero bueno yo creo que es interesante al final lo que buscamos en este

podcast contar historias del día a día más que ponernos a enumerar cosas de características del lenguaje a mí podéis encontrarme en www.arturoribas.com ahí está mi página web toda la información suelo estar bastante activo en twitter como arturo ribas a también ahora en más todo como arroba arturo ribas a arroba más todo un punto cloud elegido ese servidor no me preguntéis por qué y también en mi otro podcast que grabo con con un par de amigos sobre tecnología más

más más usuarios más de la presencia del usuario que se llama vidas digitales pues yo también estoy en más todo donde al final nuestro amigo pero aznar me dijo oye qué tal que no sé qué bueno que esto como a pedro se lo he oído esta última semana en todos los sitios donde ha aparecido ha comentado lo demás todo sí pues me mandó a mí la información de cómo funcionaba tal no sé cuánta al final me he sacado en él en el servidor global en más todo un punto social que es el

servidor global principal además no podía hacerlo porque si tú intentas ahora registrar en más todo un punto social te dice que no que no se puede sólo funciona por invitación pero encontré una invitación por ahí de no sé dónde y aproveché entre iba rápido así que podéis encontrarme igual también en más todo en como jcf munoz arroba más todo un punto social así que ahí también estaré

para lo que se llama el ester y si queréis cacharrear con alguna api la de más todo no está ahí que yo estuve cacharreando hice una un rato de aplicación lo más que no me da no me da la vida pero hice quería hacer mi propia aplicación de más todo pero ahí tenéis una pipa la para cacharrear sí porque además de hecho hoy he leído que sabéis que ha habido mucha polémica porque twitter ha cerrado todas las apis de terceros y tweetbot y chip y un montón de aplicaciones que

funcionaban directamente contra twitter y que bueno pues pues él o más las ha cerrado pues hoy se ha sabido que en realidad no es que las haya cerrado es que va a ofrecer un modelo de negocio monetario vale es decir que si quieres usar las apis de twitter vas a tener que pagar para que él pueda recibir una conversación una conversación por el hecho de no poder poder publicidad a través de las apis motivo principal por el que las ha quitado o sea que bueno

en fin yo los designios de lo más son inescrutables entonces bueno hay realmente desde mi punto de vista no ha acertado mucho pero bueno entiendo por qué lo ha hecho porque ahí tiene que ser una ya no el gasto que supone la propia api de mantenimiento de coste de servidores de etcétera etcétera que es algo que se tienen que comer ellos sino el hecho de que bueno pues que si tú estabas usando tweetbot pues no veías publicidad y entonces la publicidad es el medio por el que

ellos pueden sacar adelante la compañía a nivel de beneficio no podemos olvidar que él o más compra twitter con unas pérdidas millonarias porque el inútil de su anterior ceo pues no era que no fue capaz en diez años de hacer que twitter fuera ya actor sino se llamaba si no fue capaz de sacar adelante un modelo económico que sostuviera la red social que ya hay que tener valor para con la cantidad de usuarios que tienes no ser capaz de encontrar una forma de monetizarla de hecho

y con esto cerramos la historia cebolleta me ha salido ya un par de veces en el entorno de web twitter blue una pestaña de twitter blue con la información de twitter blue aunque no me he podido dar de alta porque no hay ningún botón para darse de alta pero ya me ha parecido un par de veces en la web de twitter o sea que tiene que estar deben estar haciendo pruebas de interfaz o de tal o sea que veremos a ver también el tema de la de la suscripción que es lo que es lo que ofrece

pues si no sé si acabaremos todos allí julio o dónde pero bueno lo que lo que nosotros prometemos es volver a grabar más cafés que es lo que está en nuestras manos exacto así que nada hasta entonces pues nos vemos pronto y como decimos siempre no olvidéis jugar con el código hasta luego bye bye chao i y puedes escuchar más episodios en cuando.com la comunidad de podcast independientes en español

Episodios recientes

Programas relacionados