4.Abr.24

¡Hoy Apple me ha aprobado la app para su publicación!

Es una satisfacción tan grande, que provoca una alegría, un sentimiento de realización, de logro que genera felicidad. Porque creo que la felicidad no es un sentimiento es el producto de algo, y ese algo es ahora mismo el haberlo conseguido.

Se suma a que he por fin, por fin, por fin, conseguido solucionar el bug del daily del día. Estaba convencido de que el error era minúsculo, pero provocaba que la pantalla no se refrescara y por tanto no actualizaba el Daily que tocaba ese día.
Cuando la aplicación volvía de inactiva y llamaba a la función que creaba los dailies hasta el día actual, este leía una propiedad que llamada today que daba la fecha del día. Lo que no tenía en cuenta es que esa propiedad no se calculaba cada vez que era llamada, sino solo una vez, cuando se abría la aplicación y quedaba almacenada esa fecha. Al cambiar la propiedad de un closure a una calculada, todo ha funcionado.

Ha sido una alegría el haber descubierto la solución a ese bug que llevaba dándome vueltas la cabeza yo creo que dos semanas.

Primero me dieron la aprobación para publicarla y después para hacer el TestFlight a externos. Que fue ya por la tarde, tenía 2 correos dados de alta así que por la noche añadí los 3 restantes.

3.Abr.24

Hoy he recibido 2 llamadas de empresas Sngular y Innotest como primera toma de contacto de cara a 2 entrevistas que podré tener la próxima semana.

Algo ha hecho Jon de Apple Coding Academy, porque fue el quien me dio el aviso por la mañana de que estuviera atento al teléfono. Y antes de las 3 de la tarde ya me habían llamado.

Hoy es el día que he enviado mi app a revisión. Después de rellenar todos los formularios, hacer las previews y demás, por fin!! 👏🏼

2.Abr.24

He terminado de hacer las previews. He hecho tanto del iPhone 15 como del 11.

1.Abr.24

Ha sido un día de avances.
He añadido las descripciones de la app, palabras clave, las notas para la revisión. Y estoy ya haciendo los previews de las pantallas con su descripción para la App Store. Espero terminarlos mañana.

He tenido que meterle prisa porque para hacer el TestFlight externo tienen que revistarte la app. Para lo cual tiene que estar todo cumplimentado.

Eso me ha “presionado”, me ha hecho decidirme y dejar de dudar en pensar en la descripción “perfecta” para pensar en la “mejor” descripción que puedo hacer yo ahora en este momento.

También le he pedido a Nic tener una reunión 1 a 1, donde me haga de couch, de mentora, para abrirme un poco a todo lo que podría hacer en esta búsqueda y publicación en la que me encuentro un poco atascado.

Ha estado bien para ser la primera. Una relación un poco rara entre pareja y laboral. Me ha dado esa motivación, ese impulso para lanzarme sin detenerme demasiado a pensar.

30.Mar.24

Sigo sin poder solucionar el problema del refrendo del Daily cuando viene de inactivo.
He visto que no se añaden nuevos dailies. Se ha quedado con el de hace dos días. Y ni ayer ni hoy se ha refrescado o se han añadido a la base de datos.

28.Mar.24

Hoy he estado afinando detalles en mi cuenta de Developer en Apple. Formularios sobre cuestiones de impuestos básicamente. Al principio parecían demasiado imponentes, luego poco a poco leyendo detenidamente y con ayuda de los documentos de ayuda que los acompañan ha sido más fácil. También me ha tranquilizado hablar don Paco, que me ha dicho que él había tenido que hacer lo mismo. Así que me animé a rellenarlos y todo ha ido bien.

También me hacía falta el certificado de distribución. Que hay que generar desde el llavero del Mac para subirlo.
He rellenado las compras integradas de la app.
Y lo último que hice después de ver errores de compilación de los que no tenía muy claro como resolver. Porque eran únicamente al generar el archivo ipa. La compilación que hay que subir.
Limpié los derived data, reinicie. Era un error con las previews, con los viewContext de prueba que había generado y puesto en todas las Previews. Los tenía en la carpeta PreviewContent, luego los cambié fuera de ahí. Pero seguí dando el mismo error. Me di cuenta al final de que en las carpetas de Xcode estaba fuera, pero la ruta en el Finder seguía en la carpeta PreviewContent. Así que cambiando la ubicación del archivo se ha solucionado.

27.Mar.24

He dado a probar a dos personas la app, y debería cambiar una cosa:
Ocultar las categorías y los encuentros que no estén disponibles. Porque la imagen de la categoría invita a pulsar. O bien llevar a una pantalla en la que se filtren esos elementos.

He generado las imágenes faltantes. Voy a reemplazar las insignias que generé originalmente para el proyecto final con números, por otras tipo medalla y paisajes.

Añadidas al proyecto están las imágenes de las categorías y las insignias.

También he añadido a la que será la base de datos maestra los dailies, quotes, categorías, tags y actividades.

He terminado de categorizar y etiquetar las actividades, primero en el archivo de Numbers para poder exportar (como el resto) a un csv importable desde la bbdd.

No logro solucionar el problema de que se refresque la vista del daily al día siguiente, después de que se ha quedado en segundo plano.

26.Mar.24

He actualizado el iPhone a la versión 17.4.1 y ahora en Apple podcast están las transcripciones de los episodios del podcast. Me hubiera gustado poder copiado para conservarlo todo en archivos de texto, pero no deja. Los pega como una cita y no el texto completo. De todas maneras siempre estarán ahí.

Me da gusto ver que aparece en las primeras posiciones con las palabras Swift, Próxima y Parada.

He estado obteniendo las imágenes de las categorías. He conseguido tener 20, además de imágenes de placeholder. El logo me ha gustado mucho como ha quedado, como se ve respecto a las demás apps.

También he terminado de re-escribir las actividades. Ahora toca asignar categorías, precio, recompensa y tags. Que espero terminar mañana.

Sigo haciendo pruebas respecto al bug de que se actualice al volverse activa la app. Porque no refresca el daily del día.

Cambiaba la fecha del iPhone, pero eso me llevaba a otros errores con lo cual no se generaban más dailies, o se generaban con la misma fecha. Así que he decidido resolverlo o bien automáticamente o bien cuando el usuario pulse el botón de la pantalla de dailies. Esa sería mi última opción.

25.Mar.24

Hoy me he suscrito de nuevo a midjourney. Con la suerte de que el servidor entró en mantenimiento después de generar mi primera imagen.

Había hecho un listado con las imágenes que necesitaba. Sobre todo la del logo, que no genere la que finalmente quedará (el corazón) y no la tenía centrada ni en la resolución correcta.
Así que fue generarla, duplicar su resolución y hacer que estuviera centrada al recortarla.

Luego generar las imágenes de las categorías. Que aún que siendo el mismo prompt ya no las genera igual. Aún así he podido sacar unas 12 fotos.
También generar imágenes de placeholder para las previews.

He también probado una solución para el refresco del daily cuando se va a inactiva la pantalla.

22.Mar.24

He soñado con un posible bug en la app. Que pasa cuando añada otros idiomas? La descripción de los encuentros y dailies está guardada en bbdd, así que tendría que modificar los datos ya guardados. Cogiendo el archivo con el idioma seleccionado.
Nic ha encontrado un bug que al mandar la app en modo inactivo no se recarga el nuevo daily al día siguiente.

Episodio Y: Yuxtaponiendo Program
2.562 reproducciones en total

21.Mar.24

He hecho optimizaciones de código.

Primero componentizando vistas y rediseñando alguna que no me terminaba de convencer, porque no encajaba con el diseño global. Ahora parece que si. 

Me había dado cuenta de que la memoria y la CPU del simulador se incrementaban cuando iba a ciertas pantallas y no volvían a bajar. Eso significaba que algún clase de quedaba en memoria. 

Así que mire y tenía varios StateObject donde debería haber ObservedObject. Cambié todos. Los StateObject solo deben estar como environmentObjects. Después para el cálculo del saldo de puntos ejecutaba una función para calcularlo en cada vista. Así que lo he puesto como una variable @Published y que el saldo se actualizará al iniciar y con cada movimiento de puntos. 

Otra optimización fue la vista anual de los dailies. Al entrar en ma vista la CPU se ponía al 100%, para luego bajar, un pico muy alto de procesos. Porque la vista por cada día del año calculaba lo siguiente: Comenzaba con las fechas, del uno de enero al 31 de diciembre del año en curso. Después hacía una consulta a la bbdd para ver si el día solicitado estaba incluido en esa consulta, si estaba devolvía si se había hecho o no. 

Así que modifique lo siguiente:

Las fechas serían del 1 de enero al día actual, puesto que a partir de mañana y hasta final del año los dailies es imposible que estén completados. Luego almacenaba en la clase los días que si estaban completados. Por cada día que me devolviera el primero que coincidiera por fecha, luego comparaba con una función nativa de Swift las fechas y si coincidían devolvía que estaba hecho, sino falso. 

Eso bajo el trabajo de la CPU a menos del 40%. Lo que ya es un gran avance. Seguro que en un futuro podré optimizarla a un más.  

20.Mar.24

¡Hoy es el día que he alcanzado los 500 contactos en LinkedIn!

Toca ponerse con la parte de diseño y de copywriting. He buscado alguna app que me permita generar los screenshots que hay que subir. Entre 5 y 10. Quizá la app la pondré para 17+, tampoco me interesa menores, está más enfocado a  adultos, ese es mi nicho de mercado.

También tengo que concentrar en un solo sitio, una sola base de datos todos los ítems. Por ir añadiendo más y después poderlos exportar a la app de una manera fácil. 

Comencé por hacerme archivos csv y json. Pero creo que lo mejor será ponerlos en una base de datos. Quería hacerlo directamente, pero la exportación a json de las actividades que anida categoría y tags me iba a complicar todo el trabajo y no puedo hacerlo desde un Excel. 

Así que he tenido que recurrir al proyecto de Vapor en el que con postman podré visualizar el json con las demás datos anidadas y así copiar y pegar a la app cuando sea necesario.

19.Mar.24

Estoy ya afinando los puntos de la app.
He unificado los colores de fondo de las preferencias, que por alguna razón cada uno tenía alguno diferente. Asi que he refactorizado, sacado a un componente y reutilizado en todos.
También he añadido a la web del podcast los apartados de Condiciones de uso, descarga de responsabilidades y política de privacidad. Primero utilicé algún servicio gratuito web, pero con esa información se lo pedí después a ChatGPT y lo he puesto como post en WordPress, aunque no quisiera que se vea el encabezado. Cosa que arreglaré mañana.

He añadido también la opción de enviar sugerencias por correo electrónico. He tenido que implementar de UIKit UIViewControllerRepresentable para mostrar un Controller al pulsar el botón. Me ha llevado menos tiempo del que creí que te tomaría implementarlo. Me di lo que quedaba de la tarde y en una hora lo pude resolver, buscando en internet y viendo la clase del bootcamp en la que se implementó con un PhotosPicker

15.Mar.24

Hoy he avanzado poco, sigo refactorizando vistas y ajustes pequeños en el diseño.

14.Mar.24

Bueno, me han enviado un correo de la consultora con la que tenía el proceso de selección. Me han descartado. Parece una plantilla, aún así es de agradecer la respuesta. Me ha dado un bajón, porque creía que lo tenía.
Me ha recomendado añadir mi curriculum a la web circular.
No he querido contestar nada, hasta mañana.

He modificado algunas vistas, sobre todo quitar el gris que había puesto para algunos contenedores, el del daily, categorías y tags. Dejando el mismo color de fondo y añadiendo un efecto de sobra.

Le he instalado la app a Nic. Para que la pruebe estos días. De entrada me ha mostrado un error y la recomendación de poner las instrucciones en el onboarding.

He añadido 100 dailies que son los que incluirá la versión gratuita.
He pensado también en la posibilidad de comprar corazones (saldo) para que puedan descubrir los encuentros.

13.Mar.24

He terminado lo que son las instrucciones de la app. Una tabView con un título una vista del elemento que quiero resaltar y un texto explicativo.

Quería hacerlo genérico, y de la manera en que lo estaba enfocando no era la mejor. Así que hice individualmente las vistas. Ya tenía que refactorizar algunas para poder reutilizarlas aquí con datos ficticios. Era como hacer una preview pero en dispositivo real.

También tengo que lidiar al mismo tiempo que programo con el diseño. Ojalá me tuviera el bosquejo de cómo debe quedar, pero la verdad es que aún no soy capaz de prever cómo va a quedar. Va saliendo sobre la marcha.

He quitado la opción de la contraseña. Porque al tenerla debería tener la opción de poder recuperarla y no me decidía si con una palabra clave o con fechas. Con lo cual me iba a complicar más de lo necesario. Lo más fácil para esta primera versión es no tener contraseña.

12.Mar.24

He añadido un logger. Un log de registro de los errores que podría dar, lo he puesto en los catch. También cuando el usuario hace un daily o guarda un encuentro. Se guarda cuando la app se va a segundo plano, un archivo en la carpeta de caché. No es necesario conservarlo demasiado. Solo en caso de que en un futuro lo necesite.

He añadido mejoras a la navegación. Al completar un encuentro o hacer una compra además de mostrar una pantalla de feedback, se vaya a cierto tab.

He hecho algunas pruebas, como que se marque algún filtro, pero lo vi demasiado complicado y decidí no meterme en ese fregado.

Estoy ahora con la pantalla de instrucciones, quiero hacer un onboarding dentro de esa pantalla. Y que el usuario vea como “se juega”.

Quedan los textos y seguir pensando en actividades. Inicialmente pondré 4, para que pueda ganar una insignia, y luego un pack de 30 actividades. Aún no se el precio. 4,99€?

Quiero meterle turbo y tenerla lista este mes.

11.Mar.24

He completado las compras de la app. Solo con el primer archivo que se importará con 30 actividades. Además de haberla puesto en la vista de descubrir cuando se han canjeado todas las actividades.

Me gustaría refactorizar código. Organizar mejor los archivos y carpetas. Hacer los tests que faltan. Quizá eso cuando empiece a ver bugs cuando de la app a testear.

8.Mar.24

Episodio X: Xcodeando y Crsofiteando Publicado!
2.390 reproducciones totales
21 seguidores en Spotify

He avanzado poco en el proyecto. He puesto 2 actividades gratuitas que se añadirán en el onboarding. Añadido las frases célebres, un total de 180 más menos.

Tengo que definir los nombres de los paquetes. Me gustaría nombres poéticos: abrazo del corazón, ecos de almas entrelazadas. De momento solo tendría que pensar en uno realmente. Y me gusta el primero.

Debería incluir 4 para que consiga su primera insignia? O dos para sepa de que va?

Tengo que ponerme con el listado de actividades. Cuantas debe incluir? Por cuanto dinero?

Puede que la última semana del mes me suscriba al Apple developer program. Para comenzar a preparar la documentación de la publicación.

Quedan detalles que afinar, le tengo que instalar a mi mujer la app para que haga de tester.

————————

7.Mar.24

He publicado un post en LinkedIn, me ha llevado de nuevo más tiempo del que me gustaría. Ha quedado bien, después de añadir y quitar código hasta encontrar que estuviera satisfecho con lo que mostraba. Me gusta mostrar y explicar parte del código y otra que quede implícita. No demasiado, pero que demuestre que cierta parte la tengo más que asumida.

He implementado la nueva manera que tiene StoreKit para las compras integradas. La que explica Apple en uno de sus vídeos. La he dejado funcionando, falta que al comprar la aplicación dé al usuario lo que ha comprado en este caso Ideas de actividades por descubrir.
Eso será para mañana, que además toca grabar.

6.Mar.24

Me está dando muchos problemas Xcode. No sé muy bien porque. He tenido que desinstalar y volver a instarlo, desde la App Store. Puede que sea la versión 17.4.

Comencé una nueva rama del proyecto para realizar la feature de las compras integradas. Tengo dos versiones, la del curso de Udemy, que es una versión “anterior”, como se realizaban antes y una “nueva” de un vídeo y proyecto de Apple. Probaré hacer las dos, primero la anterior.

He definido cómo se hará. Agruparé los encuentros en packs. Los nombres tentativos son Aluminio, Encaje, Porcelana, Rubí, Zafiro. Y llevan cada uno un número cerrado de actividades.
Estarán en archivos json independientes que se irán llamando según la compra para importarse a la base de datos.

He recibido respuesta de la entrevistadora a través de LinkedIn. Le escribí el lunes diciéndole que había investigado y que podía hacer el esfuerzo de ir a Madrid durante el tiempo necesario para la formación. Me respondió que pasaría esa info al departamento correspondiente, y que agradecía mi interés por la oferta.

Me ha dado más fe en esta oportunidad.

5.Mar.24

Hoy he añadido con el framework TipKit. Una especie de onboarding para ciertos elementos: Daily y el encuentro. Lo he intentado añadir a más como elegir las vistas para categorías o filtros, pero hay algo que no funciona bien. Al final no estoy seguro si dejarlo o no.

4.Mar.24

Hoy he terminado de añadir la funcionalidad de exportar los encuentros completados a PDF. Era un “quiero tenerlo en mi app”. Que como usuario tenga la posibilidad de imprimir o guardar esos recuerdos.

Los he puesto en el apartado de Preferencias. Y está la posibilidad de exportar todos a un archivo, por categorías, por rating y una selección personalizada del listado.

He refactorizado código, porque veía como duplicaba para cada una de las opciones. Decidió esta vez tener todo y al final hacer le refactor . Ha quedado bien.

Me debatía ayer sobre añadir la funcionalidad de accesibilidad. Me gustaría mucho incluirla pero eso requiere bastante trabajo, es algo que no puedes hacer en una pantalla o dos. Es hacerlo para toda la app. Lo comenté con mi mujer y me dijo que ella lo pondría en una versión posterior. Con lo que tiene es momento de publicarla.

He decidido también que las compras integradas, serán por cantidad de encuentros. Quiero poner 2 encuentros incluidos, y un pack (inicialmente) con 50 actividades con coste, así podré añadir posteriormente más actividades como otro pack.

Eso me permite ser transparente en cuanto a lo que está comprando el usuario. Una suscripción me obligaría a sacar X número de actividades, y ¿cuántas deberían ser acordes al precio de la suscripción? Es ambiguo. Así que compras un pack con X actividades y es lo que obtienes.

1.Mar.24

He metido una oferta más, sin demasiado cariño. La página web de la consultora y sus redes sociales no decía mucho sobre ellos, ni sobre los proyectos. Con lo que es difícil encontrar algo que puedas decir que has visto en la carta de presentación.

Hoy he añadido la opción de compartir un encuentro a través de un PDF o imagen, para que el usuario pueda imprimirlo o guardarlo simplemente. Es lo que a mí me gustaría tener.

29.Feb.24

Ha sido la entrevista con una consultora tecnológica para el puesto de Beca iOS Developer para tvOS. He de decir que la entrevista ha ido bien. Quizá he tenido, que yo me he dado cuenta 2 o 3 fallos, en palabras, frases o algo que no quería decir.
De las preguntas que me preparé, solo me han hecho 3, una es mi presentación, lo que estoy haciendo en este cambio de profesión. Otra cuáles son mis hobbies, y la tercera como me veo desarrollándome profesionalmente. Éstas dos últimas me las han hecho en inglés, que fue más de sorpresa, aunque entre mis escenarios imaginarios previos a ésta entrevista fue que comenzara en inglés. No fui del todo fluido, pero creo que me he desenvuelto bien, un poco mejor que regular. Aunque me ha dado buen feedback.

Lo ideal es que viviera en Madrid, porque aunque no está muy bien definido (legalmente) debería hacer el 50% de las prácticas que duran 6 meses, a 40 horas, las tendría que hacer presencial. También me ha dicho que los temas que se han visto en el bootcamp son muchos más que algunos otros de los que ella sabe.

Todo va a depender de si puedo o no hacer las prácticas remotas o deben ser presenciales, podría incluso ir a Madrid, alquilar una habitación por 3 meses y volver los fines de semana casa. Con la remuneración de 1.200€ brutos podría hacerlo, pero dependerá de lo que diga la empresa.
Es una buena oportunidad y tengo la esperanza de que no se un motivo de descarte.

He añadido 4 certificaciones de los cursos de Udemy que hice de Julio César Fernández en 2021 y 2022. No sé porque no lo había puesto. Pero por recomendaciones de mis compañeros del bootcamp lo he hecho hoy.

28.Feb.24

He estado preparando la entrevista de mañana. Vi algunos vídeos sobre recomendaciones, preguntas que suelen hacer. Algunas me las he apuntado, otras se las he pedido a ChatGPT, incluso le he pedido que me diera alguna respuesta.
Pensando las respuestas a esas preguntas, que quiero que el entrevistador sepa de mi, que no debería decir, un poco imaginarme en el contexto.

Eso me debería tranquilizar, no estoy nervioso, en general las entrevistas anteriores creo que me ha ido bien. Y esta quiero que sea la mejor que he hecho hasta ahora.

27.Feb.24

He venido pensando si debo publicar un post en el que hable sobre el ultimo episodio del podcast. Me ha gustado y puede que de cara a la entrevista del jueves sea positivo. Al final he decidido que no, no estoy completamente seguro de que el podcast como tal lo quiero mostrar en mi perfil de LinkedIn. Está como proyecto, pero nada más.

He añadido a la base de datos las insignias ganadas. Para poder mostrarla cuando el usuario consiga 4 encuentros completados. Me ha costado menos de lo que hubiera pensado. Solo queda animar cuando se muestra la insignia.

26.Feb.24

Ayer recibí un correo de una oferta para Beca iOS para una entrevista. Me pedían que entrara al calendario y eligiera el día y hora de la entrevista. Ha sido un momento de alegría (y un poco pánico) y en seguida me puse a investigar más fondo sobre la empresa, en youtube, wikipedia, así como repasar un poco los requisitos técnicos que atañen al puesto. En este caso son contenidos multimedia para diversas plataformas.

23.Feb.24

Episodio W: Wishing, Waiting Sitting
Publicado!
2.310 reproducciones totales

22.Feb.24

He metido un par de ofertas. Una en la que buscaban a un desarrollador iOS Junior con un año de experiencia. He escrito la carta de recomendación y he contactado con la persona de RH de la empresa que publicó la oferta. Si no recuerdo mal éramos 22 inscritos.

La otra para otra consultora de la que nos ha pasado el contacto Apple Coding y a la que además de inscribirnos en su web, nos recomendó enviar un correo para decir que íbamos de parte de la academia.

He seguido mejorado la estética de la app y refactorizando código. Solucionando pequeños bugs, y asegurándome de que funcione. La ordenación ascendente y descendente y los filtros llevan bastante trabajo de lógica. Y juntos los dos en diferentes vistas lo complica más.
He llevado un “controlador” a una variable @EnvironmentObject en la que defino todas las propiedades de personalizaciones como ordenación y vistas seleccionadas con su persistencia. Así es más fácil acceder a ellas desde cualquier vista, en lugar de pasarla como dependencia como lo tenía.

21.Feb.24

Sigo mejorando la estética de alguna que otra pantalla de la app. Añadiendo detalles como:

Cuando estás en la pantalla del detalle del encuentro. Si previamente ya lo tienes completado, el botón de guardar que aparece en rojo normalmente, aparecerá en gris, con el texto Editar. Y no te permitirá cambiar ningún elemento. Lo pulsas y los elementos cambian a ser editables y el botón vuelve a ser rojo.

En la pantalla de Explorar, aparece una fila donde te muestra el conteo de los encuentros por rating. Si no tienes ningún encuentro hecho aparecen translucidos, si hay algún rating con el conteo a 0, el botón no aparece.

En la pantalla de recuento anual si quiero acceder a un mes en el que no se ha completado ningún encuentro al pulsar la pantalla se sacude, para dar a entender al usuario de que no hay nada ahí dentro.

Mejorar las apariencia y refactorizar el código. Son esos pequeños detalles en los que me estoy enfocando.

20.Feb.24

Hoy he mejorado mi CV, añadiendo una segunda página con mi experiencia laboral y un sobre mi. Tal como me recomendó Sergio. Unos pequeños arreglos en la tipografía y colores, y listo.

Después vi un post de una mujer que había conseguido su primer empleo como desarrolladora iOS. Le dí a conectar y le envié un mensaje pidiéndole alguna recomendación.
Busque la empresa que la había contratado, y después de leer un poco al respecto, les envié un correo electrónico con mi carta de presentación y currículum.

Metí otra oferta, a la consultora que en 2022 me había seleccionado para la formación de 2 semanas.

Publiqué un post en LinkedIn. Esta vez fue mucho más rápido que otros post, los que me lleva mucho más tiempo para preparar todo. Esta vez ha sido rápido. Intento que los post sean muy rápidos de leer y visuales.

También cambié, en la web del podcasts, los pantallazos de código de los posts que tenía publicados. Con el plugin de código creo que se ve mucho mejor.

En la app mejoré alguna su vista del apartado de explorar. Y refactorice algo de código.

Muy buen día hoy.

19.Feb.24

He terminado de modificar el apartado de explorar. La vista de las fotos con sus grids ha quedado como quiero. La de explorar con las estadísticas de la cantidad de encuentros realizados por mes la he puesto de un solo color.
Son detalles que mejoran la estética.
Aún me hace falta

  • mejorar la vista de los encuentros por rating
  • Debería dar acceso al encuentro, cuando el usuario seleccione alguno, y tener bloqueado a menos que el usuario quiera modificarlo.
  • Ya si se pudiera exportar a un PDF o de alguna manera estaría genial.
  • Tengo que generar una vista que muestre que el usuario ha ganado una insignia.
  • Corregir el bug de los encuentros completados en el listado, al volver. Que no se actualiza.
  • La función que actualiza los ítems que valide por el número de versión de la app.

15.Feb.24

He añadido más contactos en LinkedIn y a una persona le he pedido, que también hizo este cambio profesional, en su caso de psicóloga a desarrolladora iOS, un consejo.
Me ha dicho que gracias a una app que publicó en la App Store fue la que le ayudó a conseguir su primer empleo como desarrolladora.

He cambiado un poco mi CV. Los enlaces de los 6 repositorios que tengo los he enlazado a la web del podcasts. De la que he añadido una entrada por cada uno de ellos, dos las tenía ya.
Gracias a un plugin puedo mostrar código de una manera colorida y que resalte un poco más. Con lo que he añadido bloques de código, vistas previas de la pantalla y una descripción del proyecto.
Una mejora más.

Luego he seguido refscotizando el código.
He añadido la funcionalidad de actualizar los ítems de core data. Cuando genere una nueva versión, y agregue actividades, dailies y demás, se agregarán los ítems nuevos a la bbdd.

También me he decidido mejorar la vista de las fotos en Explorar, para que tengan la misma apariencia que el álbum de fotos, estén cortadas al recipiente que las contiene.

14.Feb.24

Hoy he puesto en práctica lo que me aconsejó Jon de Apple Coding. Poner en experiencia laboral el proyecto en el que estoy trabajando. CoupleCare. Así que he trabajado en los datos, para que muestre algo de información lo más parecido a la versión final, para obtener las capturas de pantallas. He añadido una descripción y he puesto aue llevo trabajando desde agosto del 2023. Lo cual es verdad.

También he recibido respuesta de una consultora a la que pedí hacer prácticas aquí en Zaragoza. Ha sido a la última que he escrito y la primera que me ha contestado. Muy amablemente y en el mismo tono que está descrita la web, desenfadada y amigable. No tienen un equipo de desarrollo especializado en iOS, lo hacen con Flutter, un framework multi plataforma. Pero que si estaba dispuesto a aprender algún otro lenguaje o desarrollo web aún les podría encajar un poco. Aún así he aceptado su invitación para ir a tomar un café (tal como lo ponen en su web), así que le he contestado que tengo total disponibilidad y que me diga cuando me puedo aparecer por sus oficinas.

13.Feb.24

He terminado el curso de iOS Structural Foundations.

El proyecto sobre el que va el curso es una app que recibe datos de la API de stack exchange una web de preguntas y respuestas, mismos de Stack Overflow que es especializada en desarrollo, esta es general.

Los usuarios postean preguntas y otros responden, mediante votos, se elige la mejor respuesta y se valora la pregunta.

He completado el proyecto, aunque la API no me devuelve los datos, con lo cual trabajo con datos en local, y por alguna razón los botones no funcionan. No he querido perder demasiado tiempo en ello.

Me ha parecido interesante:

La forma en que organiza el proyecto, como separa cada capa por vista y los alcances.
En el model incluye la lógica del modelo haciendo uso de funciones tipo mutating.

En las tabs pone los navigationStack para cada vista raíz.

Cada una vista raíz se encarga de los task, mostrar errores, y en la que incluye el modelo (un tipo de modelLogic) que proveerá a la vista de la información.
La vista raíz se extiende al Content, que es la vista principal. El content se extiende para cada subvista. Que recibe los datos, no del modelo, sino solo de las propiedades que necesita, gracias a un init personalizado.
El model de la vista es el que hace la llamada a la APi con los parámetros que se definen ahí mismo.

12.Feb.24

He enviado a dos consultoras mi propuesta para hacer prácticas. Ambas a través de la web. Quizá para las siguientes deba también enviarlas por correo electrónico.

Después he seguido con el módulo 7 del curso iOS Structural Foundations. Es interesante ver como adapta y como va hecho su patrón de arquitectura. Haciendo una vista base a partir de la cual controla la navegación y el contenido. Y un model (modelLogic) a través del cual inyecta los datos.

9.Feb.24

Episodio V : Valorando otras medidas publicado!
2.261 Reproducciones

8.Feb.24

He seguido con el curso de Swift Foundations. Estoy en el punto en el que el proyecto de app se está haciendo más complejo y a donde los tutoriales “normales” no llegan. Aunque sean 6 pantallas de proyecto, la versión final que se puede descargar de Xcode me dice que aún queda mucho por afinar, por decirlo de otra manera: el curso está comenzando.

Hay que tener el criterio de distinguir porque estructura su código de esa manera, las ventajas y desventajas. La claridad que tiene para mi y para otras personas. Claro que se puede hacer diferente, y llegar al mismo resultado, pero hago este curso para entender su punto de vista y obtener lo mejor para mi en este momento.

He metido un par de ofertas, aunque esta vez sin mucha esperanza. No confío demasiado en que difieran del resto: rechazado. Se que debo seguir este camino y por primera vez, tengo una buena corazonada sobre el futuro, pequeña, pero comienzo a tenerla.

7.Feb.24

He comenzado el curso de Swift Structural Foundations de Mateo Manderdini. Puedo decir que varios conceptos de SwiftUI los conocía, no profundiza mucho en el framework sino más bien su la lógica que sigue, el funcionamiento. Me está dando seguridad en cuanto a la organización de los archivos, donde poner el código que se va generando durante el avance del proyecto.
Es verdad que mucho lo había visto ya en el bootcamp, ayer llegué a completar el 48% del curso y aún me estoy preguntando si el precio del curso vale lo que me está aportando.

Hasta completarlo no podré responder a esa pregunta. Porque si bien en la descripción pone que no es para novatos, yo habiendo hecho ya el bootcamp me ha parecido que si, pero es precisamente por todo el conocimiento que he obtenido.

También he realizado una búsqueda y un listado de empresas consultoras de tecnología con sede o base en Zaragoza. A las que enviaré una carta y mi CV para ofrecerme como practicante. He enviado la primera a la que más me ha llamado la atención. Mañana a otra y así con cada una. Espero que con esta “campaña” tenga algo de suerte.

4.Feb.24

Estoy apunto de terminar el libro de Combine de Big Mountain Studio. La mayor parte del libro son los operadores que tuliza, funciones del orden más alto. Creo que me será muy útil para la app CoupleCare. Los ejemplos que pone van un poco más allá de la conexión a red. Puede que me sirvan para actualizar la pantalla sin el temido error de actualizarla desde el background.

2.Feb.24

He organizado los archivos del repositorio APIRest Demo, por carpetas. Que tal como los venía organizando, los folders que crea Xcode son internos, por lo que en GitHub se muestran todos en la carpeta base.

Mientras lo organizaba le di un repaso al código, componentizando aún más algunas clases. Luego tocaba actualizar el readme. A ponerlo más o menos bonito, obtener las capturas y escribir el texto.
Pensé en que sería buena idea publicarlo en GitHub, comencé por sacar lo más interesante, 4 cosillas. Después pensé que lo mejor era hacer un post como los que suelo hacer. Reduje a dos y los uní por sus similitudes.

El texto es bastante corto, porque va al grano, dos trozos de código y su descripción. Lo he programado para que se publique el lunes por la mañana.

Luego añadí el mismo contenido en la web del podcast, programado también.

Así que cumplido en tiempo y forma. El lunes me tomaré de fiesta porque mi mujer libra.

1.Feb.24

He aplicado a una oferta y aunque los requisitos eran tener 3 años de experiencia, me he propuesto por si llegan a tener algún lugar para un puesto de prácticas. No sé como irá. Es la primera oferta en la que me ofrezco como practicante. Una acción que debo probar a ver si se me permite con ello entrar al mercado laboral. La empresa tiene muy buena pinta y me he currado la carta de presentación. Espero al menos tener buen feedback.

31.Ene.24

He terminado lo que parecía, o en un momento determinado pensé en dejar no añadir más de lo necesario. Una pantalla con información de países, obtenido de una API, en la que una vez se seleccionaba uno de ellos aparecía detalle como: código corto, código de dominio, código telefónico, cogido de países con los que tiene frontera, usos horarios, área, población y capital(es).

A otra API pedía los iconos que van en cada celda y a una tercera la bandera en tamaño 128 x 96 píxeles.

Entrando al detalle, a de tercera API, esta vez con APIKEY que tengo guardada en un archivo JSON en los documentos de la app y a la que acceso cuando se hace la petición, obtenía las regiones (estados, comunidades u forma de organización del país) y seleccionando una región mostraba el listado de ciudades que incluía, y seleccionando la ciudad la mostraba en el mapa y se mostraba un letrero de a cuantos kilómetros de tu ubicación estaba.

Añadir el mapa no ha sido complicado, ni obtener la ubicación. Por suerte tenía un proyecto de hace tiempo en el que lo había hecho.

Las regiones y la ciudades lo complicado fue crear la URL a la que se llamaba, por los parámetros que debía incluir y como ocultar mi APIKEY para que no se mostrara en el repositorio público.

Luego tuve un memory leak, se estaban acumulando objetos y se n un principio creí que era por no desinicializar los viewControllers cuando cambiaba de país. Aunque después me di cuenta que eran los observadores del NotificationCenter que no los había marcado como [weak self]. Una vez añadido dejó de acumular datos en memoria.

Me siento satisfecho, no por el diseño, sino por no haber abandonado al enfrentarme a esos desafíos. Por un momento pensé en no añadir más funcionalidades, pero intentándolo lo suficiente lo he podido superar.

30.Ene.24

Trabajaré esta semana en el repositorio, y la próxima ya con CoupleCare. A ver si puedo terminar las apis que tengo planeado incluir, y si no alternaré la próxima semana UIKit y SwiftUI. Ya veremos. Por lo pronto me centraré en este repositorio.

He publicado un post en LinkedIn, y también en la web del podcasts. Hoy estaba más inspirado que ayer.

29.Ene.24

He publicado mi diploma del bootcamp en LinkedIn. Me lo había propuesto y hoy me he decidido.
He añadido más contactos y en la web del podcast he añadido los post que ya tenía publicados en LinkedIn. Así que ahora publicaré en dos sitios los posts.

26.Ene.24

Episodio U: Ufanando del diploma publicado!
2.230 reproducciones

25.Ene.24

Hoy he publicado el repositorio de API Rest Demo, lo he subido a GitHub, publicado en LinkedIn en el apartado de proyectos y en la web del podcast.
El trabajo y tiempo que toma hacer una descripción adecuada, legible y que transmita en lo que quiero hacer foco.

Aún quedan Apis que quiero integrar, esta vez las que llevan una apikey, aunque estoy pensando una forma para no exponerlas.

También he comprado el curso SwifUI Strucural Foundations de Matteo Manferdini. Un curso sobre cómo estructurar, sobre la arquitectura del proyecto de app. No es como un curso de Udemy, son 4 pagos de 104€, pero dado que un compañero del bootcamp me lo ha recomendado y visto el temario complementa al bootcamp, he decidido comprarlo y sobretodo hacerlo.

Está profesión es así, tienes que invertir en tu formación, buscar contenido de calidad y decidirte a hacerlos.

24.Ene.24

Hoy ha sido un muy buen día. Y la pregunta es ¿qué hace de un día un buen día? Primero he conseguido hacer mis dos prioridades:

  • Añadir contactos en LinkedIn
  • Aplicar para una oferta de empleo, con “cariño

⠀Después me puse con el repositorio de demo que estoy haciendo sobre API Rest, en UIKit y utilizando callbacks, Combine y Async-await. Está API de DiceBear, quizá era la más difícil de las 3 que llevo (MathNumbers, ChuckNorrisFacts, France Communes), por las posibilidades de configuración en la generación de un avatar. Al final de la tarde lo he conseguido, con una estructura adecuada, y lo más legible que he podido. Estoy satisfecho de como ha quedado.

Para rematar el buen día he recibido el diploma del Bootcamp Swift Full Stack de Apple Coding Academy, con una calificación Muy notable de 8. Por lo que me siento muy orgulloso de haberlo conseguido. Me ha dado un subidón de alegría y confianza, sumado a darle forma al repositorio. Todo fruto del esfuerzo y tiempo que le estoy dedicando a este cambio de profesión.

Además del diploma han incluido un informe de corrección del proyecto, puntos a mejorar y observaciones, nada grave y buenas críticas.

22.Ene.24

Hoy he solicitado conectar a más personas en LinkedIn. Esta vez a dos les he pedido libros o recursos que pudiera me pudieran recomendar y los dos me han dado vídeos y enlaces. Ya conocía los enlaces y algunos vídeos de Udemy. Aunque he podido ver que ellos no los había completado, al menos los tenían.

He encontrado a 2 personas que también están en el proceso de un cambio de profesión a desarrollador iOS, a quienes les he pedido consejo o recomendaciones. Por lo que pude ver no tenían aún puesto en LinkedIn su nuevo empleo o no lo habían conseguido todavía.
No es un proceso fácil ni rápido.

He visto que ha abierto las inscripciones el curso de Matteo Manferdini SwiftUI Structural Foundations, son 4 pagos de 104€. No me parece caro, eso si es online, a tu propio ritmo, vídeos y lecturas.
Es un curso de arquitectura, de cómo organizar la app, su navegación. Un compañero del bootcamp lo cursó anteriormente y su reseña está en la web del curso. Le pregunté hace tiempo y me dio buenas referencias.

21.Ene.24

He comenzado a hacer una serie de “cheat codes” en Pages. Documentos en los que pueda ir guardando para consulta código de Swift. Del bootcamp, de los libros que voy leyendo. Código que me permita recordar cómo se hacía tal o cual operación.

19.Ene.24

Me gustaría poder hacer un playground con todo lo aprendido del bootcamp, o al menos organizarlo, tener un sitio donde ir a buscar o consultar cuando lo necesite. Tengo varios playgrounds, ya carpeta con los prácticas / proyectos pero no están organizados.

18.Ene.24

Hoy me he puesto 2 objetivos. Hacer un post en LinkedIn y postularme a una oferta.

Hacer el post de LinkedIn me ha costado 3 veces más de lo que esperaba. Primero tener un buen ejemplo que mostrar. Segundo: una buena estética en la imagen y tercero una buena descripción.

Un ejemplo que de un solo vistazo sea claro de entender. Que estén bien distribuidas las imágenes y el texto y que en pocas palabras expreses la idea claramente.

Logrado el primer objetivo, he buscado una oferta y me he puesto con ella. Ahora en una nota en Bear voy tomando nota de la oferta. Información de la oferta, la empresa, los reclutadores, las preguntas. Buscar en la web de la empresa en sus redes sociales, algún punto que me llame la atención y que pueda escribir en la carta de presentación o en las preguntas que suelen hacer.
Esta vez llevo un registro de las ofertas y les estoy dedicando más tiempo, más cariño.

El tiempo que me quedo por la tarde lo dediqué a lo que será mi nuevo repositorio. APIRest Demo. Un proyecto en UIKit con peticiones a diferentes API Rest, en el que quiero utilizar Combine, patrón notificación, Callback, Async-await, y alguno más que pueda incluir.

La primera pantalla ya la tengo. Una API Rest que da el número día, información sobre un número en particular. Si binario, en número romano, si es primo, triangular, perfecto, etc.

16.Ene.24

He metido otra oferta con “cariño”. Además durante el proceso he leído un documento sobre las recomendaciones para mejorar la calidad de la candidatura: Descripciones, en que hacer énfasis, que evitar y demás.

Después he visto un tutorial de Realm y SwiftUI, tendré que decidirme en qué proyecto embarcarme para añadir a mis repositorios. Me gustaría uno con UIKit, Combine, Realm y Mapas. Lo cual dificulta el tema del proyecto, ¿Cuál abarcaría todo y sea interesante?

Por la tarde he repasado la segunda clase del módulo Asincronía y concurrencia. Los 3 patrones Callbacks, Combine y Async-await. Los veo ahora desde otra perspectiva, con bases de conocimiento más sólidas, lo cual me permite comprender un poco más. Creando mis propios ejemplos y hacer pruebas con ellos..Ene.24

15.Ene.24

He metido una oferta “con cariño” he dedicado un par de horas a buscar información sobre la empresa, a escribir la respuesta a lo que preguntaban ¿porque te interesa la oferta? y ¿que sabes de la empresa? Así que me he puesto a investigar en las redes sociales y la web de la empresa y he escrito lo que he encontrado tal cual.
Me lo he apuntado en mi nota de seguimiento.

Por la tarde he retomado el libro de Swift in depth, esta vez con el capítulo 9: Creación de estructuras de datos y que éstas se conformen con los protocolos Sequence y Collection, con lo cual hay que incluir la manera en que iteran sobre los elementos almacenados. Recuerdo haberlo visto hace tiempo en un vídeo de Hacking with Swift, pero lo veía muy abstracto, confuso y poco práctico para ese momento de mi saber. Ahora, aunque es poco habitual que sea necesario crear una estructura de datos propia, le veo más forma, más sentido.
El libro tiene buenos ejemplos y ejercicios, además de hablar con más amplitud al respecto.

12.Ene.24

Episodio T: Tejiendo los cimientos publicado!
2151 reproducciones en total

11.Ene.24

He terminado ya el repositorio que he llamado Dogminder, lo he subido. Así tengo ya 6 repositorios que puedo mostrar en GitHub. He visto que en LinkedIn también puedes poner proyectos, ya tenía 2 (el podcast y Purple Humingbird) así que he añadido los 4 que faltaban.

10.Ene.24

He terminado el repositorio de UnitTest, Coredata, y Mocks, bueno me falta darle un poco más de diseño a las 2 vistas que tiene. Para que no quede tan simple.

He intentado hacer una implementación con UserDefaults, pero no me ha gustado como quedaba así que lo he descartado, además de que me tomaría otro día. Quiero ya enfocarme ahora en pulirlo y documentarlo, poner el Readme y puede que un diagrama de cómo utilizo los UseCases. Con eso tendría los 6 repositorios que tiene mi CV y enlaces a GitHub.

09.Ene.24

Hoy ha sido un buen día. Estoy preparando un repositorio que añadir a GitHub con mocks, tests y coredata y va bastante bien. Comencé ayer y me está gustando como va quedando.

Tengo ya la nueva versión de mi CV, esta vez solo con repositorios y nada de trabajos anteriores. Espero que eso funcione un poco mejo. Nada de que estoy buscando mi primera oportunidad como desarrollador iOS.

04.Ene.24

Bueno, estoy refactorizando mi CV, esta vez puede que esté más colorido. He puesto básicamente los repositorios que tengo, y un par que me hacen falta publicar. He puesto la parte de conocimientos, más imágenes y descripciones cortas. Espero terminarlo mañana.
Los repositorios comenzaré a trabajar en ellos la próxima semana, para afinarlos y queden presentables.
El lunes retomaré la búsqueda e inscripción a ofertas.

Sigo con el libro Swift in depth, comprendiendo nuevos o quizá conocimientos que vi en el bootcamp pero en ese momento estaban fuera de mi total comprensión. Ahora con más ejemplos prácticos y ejercicios de el nivel de comprensión que tenía ha subido algunos puntos.

03.Ene.24

Hoy me he puesto a leer el libro Swift in Depth. Me ha dado gusto descubrir que sabía a qué se refería cuando leí el tema de Genéricos. He aprendido, ya lo que me aporta es afianzar la comprensión total del tema. Detalles sobre la implementación. Me da la seguridad de que lo sé.

He comprado el libro: Classic Computer Science Problems in Swift de David Kopecque son algoritmos básicamente. Me gustaría ahondar en ello. Es parte del pack en el que también está Swift in Depth, por eso fue que lo descubrí, lo revisé un poco por encima y me gustaría explorarlo.

02.Ene.24

Toca volver de estos días de descanso. Cuesta retomar la rutina. Lo que he hecho es definir que es lo que voy a hacer, que es lo que necesito hacer al menos durante los próximos dos meses. He definido 3 bloques: Empleo, Estudios, CoupleCare. Para con ellos establecerás tareas que debo hacer.

He comenzado con ello y después me he puesto a repasar las clases del bootcamp. Los puntos que me había marcado repasar.
Seguiré con los repositorios que quiero añadir, uno sobre testing y otro sobre base de datos de realm.

Mañana quiero enfocarme en rehacer mi CV, quitar todo de empleos anteriores y poner los repositorios que tengo y el bootcamp. Probar algo diferente.

2024

29.Dic.23

Episodio S: Saludando al 2024
2.116 reproducciones en total

Me he puesto a leer el libro de Swift in Depth, practicando los ejercicios. Me ha gustado como mi nivel de comprensión es más alto, como voy asimilando los conceptos, entendiendo un poco más de lo que me imaginaba, recordaba o me creía capaz.

28.Dic.23

Me comprado el libro de Swift in Depth que estaba de promoción por 20€. Aunque lo puedes leer en la web gratuitamente no es nada cómodo. Así que he esperado a una promoción que suele estar entre 20-25-30€.

Llevaba 2 o 3 capítulos leídos y decidí tenerlo mejor en EPUB.

21.Dic.23

Hoy ha sido mi primer día sin tocar código. Me ha costado, me gusta tanto que puedo hacerlo incluso en estos días de “vacaciones”, pero debo intentar desconectar. Centrarme en otras cosas, aquello que he ido guardando para hacer más tarde, para leer más tarde y que por el proyecto no he querido dedicar tiempo a ello.

El día 2 de enero volveré.

20.Dic.23

He enviado ya el proyecto final. Tal como quería el día 20 de diciembre, para tomarme unos días de vacaciones del proyecto, dejar de tocarlo y pensar en otra cosa.

Le he dedicado un total de 540 horas y 50 minutos, esos son 22 días y medio de continuo trabajando o 68 días o 3 meses en jornadas de 8 horas.

Desde el mes de mayo hast ahora, quedaron mas o menos así los meses:
Mayo: 17 horas
Junio 13
Julio 29
Agosto 146 horas
Septiembre 80
Octubre 62
Noviembre 112
Diciembre 81

Me ha respondido el correo pocas horas después de recibido. Eso me alivia. Saber que ya lo tiene.

Después de enviarlo, me he puesto a ver un par de vídeos de Julio Cesar, uno de una master class de arquitectura y otro una entrevista de cambio profesional de uno de los alumnos. Después a escuchar lass primeras clases de Swift, me gustaría dar un repaso a todas las clases del bootcamp.

También he revisado esos recordatorios de por leer, por ver que me he guardado este semestre, e ir limpiando esa lista.

He también comenzado a mirar vídeos de lo que será el siguiente paso: publicar la app.

He visto un vídeo sobre TestFlight y hace días una actualización de un curso de Udemy en la que explica con poner las compras integradas

Es el siguiente objetivo.

18.Dic.23

He solucionado el error de la activación y desactivación del password. Mi planteamiento era erróneo, estaba dejando a un solo botón la responsabilidad de 1) habilitar contraseña si no había, 2) mostrar la ventana de mostrar activa tu contraseña, 3) solicitar la contraseña si quería desactivar la Nueva para después, 4) mostrar esa ventana y 5) solicitar la nueva contraseña.
Así que después de, primero no tener ni idea, buscar algún tutorial donde mostrara la lógica, preguntar a chatGPT, fue este último quien me dio un camino el cual seguir, al mostrarme que separaba el trigger de la propiedad que guarda si se requiere contraseña.

Está vez no lo celebre tanto, quizá porque sentía la presión de tener una fecha límite para la entrega; pase directamente a lo siguiente.

Luego corregí un par de bugs, y me puse a probar cómo mejorar la vista de las cuadrículas de las fotos, le di varias vueltas y ha quedado bien, pero no me ha terminado de gustar algún detalle. También hay algo con las animaciones, que no son del todo fluidas, no está mal, pero se que podría quedar mejor.

Son pequeños detalles, mañana me gustaría limpiar el código, quitando el polvo, comentarios, párrafos en blanco, etc.

17.Dic.23

He estado viendo la manera en enviar los archivos zip del proyecto. Una es con un enlace de descarga, con su contraseña, y a los archivos zip también con contraseña.

Aunque ya comprimidos los podría enviar por correo electrónico perfectamente, sin los packages, el de Vapor apenas pesa nada.

He preparado una pequeña descripción de los proyectos, para que sea más fácil tener una idea general de qué va mi proyecto final.

15.Dic.23

Episodio R: Revelando mi proyecto final
2.099 reproducciones totales.

Esta es la comparativa del bosquejo de las pantallas y el resultado final.

Aunque el diseño ha cambiado, la idea y el contenido es el mismo, de alguna manera he seguido el plan, con sus ajustes, algo normal. Estoy contento con el resultado.

14.Dic.23

Espero sea la última vista que añado al proyecto final. 😝. Sentía que faltaba y me he aventurado. He cambiado en la Tab Explorar la vista del botón Encuentros, no tenia nada. Así que he añadido 12 cuadrículas, una por cada mes en la que se muestran el icono de un par de banderas por cada encuentro completado ese mes, hasta 5, para que las cuadrículas sean iguales de tamaño.
Comencé por el diseño, un bosquejo en la pizarra me ayudó a definir la vista.
Después hay que asegurarse que los elementos estén alineados.
Me suele suceder que hasta que no estoy dentro del problema no comienzo a ver aspectos no previstos.

  • ¿Que pasa si algún mes no hay ningún ejemplo completado?
  • Si ha empezado en diciembre ¿cómo genero la cuadrícula de los meses desde enero?
  • Si hace 10 encuentros en un mes ¿porque se amontonan más banderas y la cuadrícula cambia de tamaño?
  • Ahora que cambia el año ¿cómo diferenciar los meses de cada año? ¿Debe existir una cuadrícula por cada mes de cada año?
  • Tengo una cuadrilla que invita a pulsar, ahora tengo que poner un detalle. ¿Que muestro en ese detalle? ¿Cómo lo muestro?

⠀Van surgiendo retos, quizá es la falta de planeación.

13.Dic.23

He conseguido hacer la vista mensual de los dailies interactiva. Es decir, que cuando se pulse algún día con el daily hecho muestre en la parte inferior la instrucción. Lo he cambiado a la parte de explorar y que se vayan añadiendo dailies al listado que aparece abajo.
Me ha gustado como ha quedado.

He empezado ahora con la vista de los encuentros, quisiera mostrar 12 grids, en los cuales se pueda ver en un gris el conteo de los encuentros realizados. Para poder entrar al detalle.

12.Dic.23

¡Tengo ya proyecto que entregar!

Me hace falta hacer algunas pruebas, pero lo que faltaba por integrar: la contraseña y la actualización de nuevos ítems lo realiza.

Me da mucha tranquilidad, el ya tenerlo terminado. He hablado con un par de compañeros del bootcamp, uno de ellos casi lo tiene, el otro lo ha dejado porque le costó mucho implementar Vapor. Otros 3 no lo tienen tampoco terminado. Me da gusto saber que he podido hacerlo y sobre todo que el feedback de los 2 a quienes de los enseñé (Rubén y Alberto) ha sido muy positivo.

11.Dic.23

Voy limpiando cada vez más esa lista de tareas sobre el proyecto final. Al final he ido solventando incluso las que en su momento no encontré solución. Como el hecho de poder obtener los tags de los encuentros filtrados (completados y pendientes) y ponerlos como filtros. Antes fotos todos los tags para filtrar y resultaba que algún tag no contenía ningún encuentro. Ahora si.

Estoy dando otro repaso a la parte del password. Desde su creación hasta poder usarlo, porque encontré un error y al revisarlo me he encontrado que puedo plantearlo mejor. Hay que refactorizar.

10.Dic.23

Hoy he estado trabajando en el proyecto unas 4 horas. Corrigiendo bugs y añadiendo o cambiando funcionalidades que en un principio definí y que en la práctica tienen que ser de otra manera.
Quedan muchos detalles, pero hay dos plazos, el primero el 31 de diciembre, como proyecto final. Después otro para publicar la app. El cual no me he planteado fecha, pero me gustaría que fuera en enero o febrero. Tendré en estos días que definir ese deadline de lo contrario no tendré ningún incentivo más allá del placer que me da trabajar en esta app. Debo clarificar ese objetivo de entrega.

8.Dic.23

He añadido ya las imágenes de las insignias, pronto tendré que ponerme con el listado de dailies y las actividades, es quizá sentarme en la mesa del comedor y comenzar a escribir, una lluvia de ideas.
La calidad de las actividades no influirá en la valoración del proyecto. Así que puede ser una primera toma de contacto y quizá sobre todo crear un método para ir añadiendo items en cualquier momento. Podría crear un atajo en el que fuera introduciendo ideas y que rellenara un numbers, mismo que pudiera después exportar a un json para incluir en la app.

6.Dic.23

Hoy he generado las imágenes que llevará la app, al menos para la entrega como proyecto final. Mañana se termina la suscripción de mid journey, que si de Baja el mes pasado, junto con HWS+ para ahorrar un poco, además de que midjourney lo estaba infrautilizando.

Ha tocado componentizar las vistas. De la vista principal, extraer una sub-vista para que en todas se pudiera ver el código sin hacer scroll.

También quiero dar la opción de poder ver los encuentros obtenidos con 3 vistas. Por categorías, por tags y un listado normal.

Hecho esto me gustaría refactorizar los @Environments y @StateObjects que me parece que están algo desordenados. ¿Donde generar la fuente de datos? En la ventana principal de la app o en cada tabs, aunque luego se comparten.

Refactorizar sin romper nada.

4.Dic.23

Toca hacer ajustes a la interfaz de usuario. Cambiar / corregir las vistas. Como el usuario debe percibir la app, que le debe llevar a hacer, a donde debe dirigirse su mirada, donde debe tocar, hacia donde tiene que ir después de cada pulsación.

Por intentar de ser minimalista no he sido claro. Algunas etiquetas las he dejado solamente con un icono y no expresan exactamente lo que quiero que sepa el usuario. Así que toca corregir.

Hay que mover trozos de código de un sitio a otro, de una vista a otra y refinar sus acciones.

Ayer pensé en calcular las horas que me quedan, las horas que según las estadísticas llevo trabajada diariamente multiplicadas por los días que tengo. Aunque eso sería añadir demasiada presión, presión innecesaria.
Esta semana trabajaré en mejoras en la UI según el feedback recibido, luego se lo mostraré a Nic para aún afinar más y probar bugs. Para después pnerme a refactorizar el código, hacerlo más legible para otros. Para poderlo entregar.
Ahora mismo tengo ya un proyecto entregable, pero mejorable.
En enero será ya un camino distinto, el viaje hacia la App Store y publicarla, que aún tengo un trecho.

3.Dic.23

Hoy he seguido mostrando la app a un par de personas. Me ha servido mucho para saber que tengo que agregar, que la interfaz sea más descriptiva y sobre todo que responda a lo que los usuarios creen que hará cada elemento.

Me ha dado mucha idea de que mejorar. Ahora es pensar como van a ser esos cambios. Que poner exactamente.

2.Dic.23

Hoy he dado a un amigo a probar la app. Hay que decir que el es usuario de Android, con lo cual la navegación lo tenía un poco confundido.

He descubierto algunos bugs que tengo que resolver y añadir etiquetas con la descripción donde ahora solo hay un icono.

Se que esto debería hacerse al inicio, en un Keynote, que con los botones te vaya llevando la navegación. Lo intenté hacer, pero no estaba seguro del diseño final, de hecho este diseño ha sido una evolución a partir de lo que veía que no me gustaba, lo cambiaba y luego había otro elemento que no armonizaba, el cual volvía a cambiar y así.

1.Dic.23

Episodio Q: Quitando el pesimismo
2.062 reproducciones en total

Spotify me ha mostrado el wrapped del año

30.Nov.23

¡Que subidón!

Entre las varias tareas que tengo en el backlog del proyecto, las que he ido realizando o bien descartando temporal o completamente. Llegué a la que tenía que añadir un filtro por tag. para las actividades que el usuario aún no ha obtenido. Primero tanteé la posibilidad de añadir tokens en la barra de búsqueda, que añadiendo un “#” se mostrara el listado de tags para seleccionar y filtrar. Con Core Data, me di cuenta de que no iba a ser nada sencillo, así que descarté hacerlo de esa manera.
Busqué en alguna app nativa la manera en que se podía filtrar por etiquetas. ¿Cómo lo hace Apple? La app de recordatorios tiene una manera de filtrar. Un scroll horizontal donde por botones pulsas que etiqueta quieres o no quieres que esté.
Así que me pareció buena idea implementarlo.
Tenía que ser una subvista. Primero añadí los botones con los todos tags y uno al inicio que pusiera todos.
Que el usuario solo pudiera filtrar por hasta 2 tags. Una tag pulsada una vez no podía volver a ser seleccionada, y que cuando pulsaba más de dos tags la primera seleccionada se eliminara. (Primeras entradas, primeras salidas)
Luego para pruebas puse el listado de actividades no obtenidas aún. Y aquí viene la parte complicada: actualizar el nspredicate cada vez que se pulsaba un botón.
Busque en NsPredicates 💬 | Example Cheatsheet como filtrar si los elementos contienen algún elemento que está en el array.

29.Nov.23

Estoy haciendo grandes avances en la app. Hoy he añadido la funcionalidad de recordatorios. La posibilidad de añadir hasta 3 recordatorios para recordar que tienes que hacer un daily. Que quizá deberían anularse los posteriores si es que el daily ha sido completado 🧐. Ahora caigo en eso. (Si es posible quitarlo, quizás no)
En fin, luego he hecho un poco de limpieza, haciendo test me doy cuenta de los métodos que no utilizo y los borro.
Cambio de ubicación o a variables estáticas, sobre todo si llevan algún campo String, por ejemplo la imagen de placeholder. Si el usuario no ha puesto una, o si carga con error o así.

28.Nov.23

He encontrado una oferta que me ha gustado mucho como la he preparado. La inscripción se hacía directamente en su web. Para comenzar tenía 2 preguntas:

Cuéntanos qué proyectos o desarrollos has realizado de forma autodidacta

Explícanos como mejoras tus conocimientos de forma autodidacta

Las cuales me tomé el tiempo para responder.

Posteriormente venía el formulario de inscripción, lo vinculé a LinkedIn y venía un campo llamado Carta de motivación, el cual también completé sinceramente y a conciencia.

Para finalizar tenías la opción de añadir 3 referencias, de 3 contactos. A los cuales puse al manager de mi anterior empleo, a un compañero del Bootcamp y al Project Manager de Apple Coding Academy. Primero avisé a los 3 por mensajería, los que me respondieron que con gusto lo harían.

Me ha hecho mucha ilusión esta oferta, he tardado algunas horas en preparar lo que escribiría, revisarlo, conocer a la empresa, navegar por sus webs, ver los servicios que ofrecían, descargarme sus apps. En si conocer a la empresa. La que me di cuenta que pone énfasis en sus trabajadores (fotos de ellos, encuentros que hacen), lo cual me ha gustado.

Vuelvo a estar motivado y feliz por haber encontrado una oferta así.

27.Nov.23

Voy avanzando en la revisión de pantallas. Añadiendo animaciones, enfatizando en lo que debería ver el usuario primero. Quitando, sobre todo quitando alguna cosa que no me gusta o considero que no debería ir. Añadiendo alguna otra que creo que si debería estar.
Es un proceso que no se termina, además porque hasta que no reciba el suficiente feedback no estaré realmente seguro de los cambios necesarios. Queda una pantalla por animar y revisar.

Puede que la próxima semana pague ya la cuota de desarrollador Apple, que me ponga a revisar que hay por ahí.

También he pensado en cuando publique la app. Los dailies serán gratuitos, quizá 100 o 200, el usuario podrá comprar el pack Encuentros, con una cantidad limitada de ellos y hasta 300 Dailies (por ejemplo) y luego la modalidad de suscripción en la que recibirá actualizaciones con nuevos Encuentros y Dailies .
En un futuro podría añadir más tipos de actividades, como algún reto o quizá íntimas. Aún no lo he pensado demasiado.

24.Nov.23

He recalado las imágenes que se guardan de los encuentros. Estaba guardando la imagen original, que para las pruebas pesaba unos 13Mb y era de unos 4.000 x 2.000. Así que cada vez que la mostraba el sistema tenía que re-escalar esa imagen y mostrarla en una altura de 150 para la lista y de 400 de ancho para mostrar el detalle. Lo cual cada vez iba gastando cada vez más memoria, llegué a ver que consumía ¡¡400Mb por unas cuantas fotos!!
Así que busqué en mis notas en que clase habíamos visto ese tema del escalado de fotos y vi el vídeo. Lo implementé, reescalando dos veces la imagen, una para el detalle y otra para el listado.
La diferencia considerable, tanto en memoria de las fotos guardadas en la carpeta de documentos, como en el uso de la app.

23.Nov.23

He mejorado la vista del detalle Encuentro, creo que se ve más moderna. He añadido un ScrollView la imagen la he puesto en la parte superior, del ancho de la pantalla. El botón de guardar lo he puesto en rojo, como el resto de botones. A las instrucciones puedes darles un tap y te aparecen en un popUp. Me
Ha costado definir el diseño, o no encajaban bien los elementos o no terminaba de convencerme.

Mañana tocará refactorizar el tamaño de las imágenes, que al guardarlas no las escalo lo suficiente (que viendo el código no estoy seguro si se escalan o no) con lo cual consumen muchísima memoria.

Debería dedicarle más tiempo al proyecto, estoy ahora solo por las tardes, unas 4 – 5 horas. Por la mañana entre el entrenamiento y deberes de casa apenas me da tiempo de meter ofertas y ver algún vídeo de HWS+ que tomo como calentamiento. Aunque me he dado cuenta que esas pocas horas estoy más enfocado, me distraigo menos, estoy más concentrado. Quizá porque me presiono a enfocarme, quizá el monitor que solo me permite tener una ventana abierta, no lo sé.

Hace años siempre tuve la intención, idea, sueño de escribir un libro, de volverme escritor. Ahora veo este proyecto que he escrito yo como va tomando forma. Una similitud que me vale, porque la app cuenta una historia, tiene un principio y un fin, un mensaje para el usuario, una legibilidad que se refleja en la facilidad de uso. La editorial la App Store.

21.Nov.23

Ha sido un buen día. No he encontrado ninguna oferta que meter, pero he avanzado en el proyecto. Mejorando la estética de las pantallas y añadiendo animaciones.

Le he instalado a Nic la app para que la pruebe y me sugiera cambios. Descubra bugs y me de su punto de vista sobre algunas pantallas.

20.Nov.23

He conseguido cambiar la vista de las fotos a algo más parecido a la app de Photos, un grid de 3 fotos pegadas una a otra con una borde blanco de separación.
Aunque analizando el rendimiento me he dado cuenta de que está consumiendo mucha memoria. Es verdad que no he puesto ninguna vista thumbnail sino que está cogiendo la foto original.
Algo tendré que cambiar

Comencé con las animaciones, aunque no sabía bien por dónde empeza, ni que animar. Quizá lo más fácil para ir empezando sea, coger el libro de Swift animations de Big Mountain Studio ir avanzando páginas y ver que animaciones puedo meter en que parte.

Hoy las que he querido implementar no quedaban del todo finas.

Lo bueno de hoy. He logrado mejorar la vista de las fotos y organizar los meses por fecha.

17.Nov.23

Episodio P Puliendo el proyecto final Publicado

2.032 reproducciones totales

He añadido todos los mensajes de error que pudiera lanzar la app. He quitado los print y los he cambiado por breakpoints. No sabía muy bien por dónde comenzar.

Así que en el proyecto de prueba, añadí algunas funciones con throws para que lanzaran el error cuando presionara un botón. Cree un struct con un el Modelo de lo que sería el error y un enum con la tipología de error, el título y el mensaje que mostraría al usuario y así centralizarlo. Hice algunas pruebas y estando conforme lo apliqué al proyecto final.

Primero fui a la primera vista y miré si tenía algún throws o do,try,catch en el viewModel para añadir las propiedades correspondientes, que se presentara la alerta, y añadir los cambios si hubiese algún error. Así con dos vistas.
Decidí que era mejor buscar los throws, los prints, los catch para ver todas las “marcas” que había dejado, normalmente ponía print(>> Error…, eso facilitó un poco, aunque no lo hice en todo

16.Nov.23

Hoy me han respondido de Sngular. Le escribí ayer a Alberto Díaz, con quien tuve mi última entrevista en septiembre, diciéndole que Ricardo no me había respondido aún. Se disculpó y me comentó que de momento no hay ningún proyecto concretado al que puede entrar. Pero que si hubiese alguno me llamaría, así que aún no doy esa oportunidad como perdida, simplemente pospuesta.

15.Nov.23

Ha sido un buen día. He conseguido mezclar los contenedores del día y el context con los dailies para que se actualice en cuanto el usuario completa el daily.

Corregí e hice varios cambios antes, refsctorice las vistas con el ZStack para que ya incluyera el color de fondo y quitar así 3 o 4 líneas de la view que se repetían en todas las views. Volví a corregir la ”compra” de la actividad que se triplicaba en los movimientos quitando mas saldo del que debería.

Una vez hecho el calentamiento me puse con la vista mensual. Una vez que comienzas el proceso mental y vas corrigiendo, comprobando, avanzando en la solución lo mejor es no detenerse, no distraerse terminar el ciclo hasta que lo consigues o te das cuenta de que no lo vas a conseguir. Es lo que a mí me funciona. Y ayer me funcionó.

Hice una tercera función donde pude cambiar aquello que necesitaba para que los datos los tomara directamente de la fuente de la verdad (the source of the truth”. Filtrar los dailies correspondientes al mes, comparar la fecha que representa el contenedor del día del mes con la fecha de daily y pasar esa información a la vista.

Lo conseguí, un reto para mi, lo veía como de los puntos principales que debía tener la app. Una emoción por haberlo conseguido que me llena de felicidad. Momentánea por que enseguida se presenta el siguiente reto: la vista anual.

Con las bases, un descanso me puse a corregir la vista anual, que era resuelve el mismo problema pero de manera distinta, podría decir más sencilla. Porque no hay que lidiar con días de la semana ni inicios de mes. Todos comienzan el día uno y terminan su último día (también hay que calcular eso), así que con el mismo proceso de pensamiento y sus ajustes corregí la vista anual. Que no es necesario que se actualice cuando el usuario le da al botón, porque está en el apartado de estadísticas, pero tenía el error de que al comprar las fechas convertidas a número. Por ejemplo (23118) para el 8 de noviembre del 2023, se pintaba al mismo tiempo el 18 de enero del 2023 porque el “número” era el mismo. Así que bug como un triceratops. Con esta nueva implementación, solucionado.

14.Nov.23

Ha sido un buen día. He seguido corrigiendo y añadiendo cosas al proyecto final. Puliendo los detalles, sigo sin poder corregir la vista mensual, pero mañana le dedicaré otra vez un rato a ver si puedo darle la vuelta.

De una oferta me han pedido los datos, vía web los he añadido, es una agencia de colocación.

13.Nov.23

Hoy no he estado muy animado que digamos. Es probable que hoy se me haya pasado la mano entrenando y me sentía cansado, incluso podría decir desmotivado, efectos del abuso. Por la mañana prácticamente no toqué nada sobre programación, entre que hay que preparar la comida para comer a la 1 y entreno de 9 a 11, decidí dejarlo para después de comer.

No tenía ganas de abrir el proyecto final, quizá sea porque he llegado un punto en el que quedan detalles, también quedan correcciones que me costarán trabajo, que no estoy seguro cómo corregir y ya no digamos si síguete podré implementar.
Así que me puse unos vídeos de Hacking with swift, de Swift Avanzado, alguno demasiado avanzado, y lo decía Paul Hudson que él le costó tiempo entenderlo, así que con un vídeo de 40 minutos para mi iba a ser casi imposible comprender todo lo que estaba explicado, al menos se que existe.

Ya un poco más tarde, casi me obligué a abrir el proyecto y comencé a corregir la vista mensual. El problema que tiene es que no se refresca cuando el usuario completa el daily, están en la misma ventana y como para poner en cada día del mes se genera un array de tags que hace match con el día del mes, no recibe la información de que el usuario ha completado ese daily y tiene que salir y volver a entrar. Para solucionarlo tengo que coger la información directamente de la Fuente, del context y el problema surge cuando quiero crear un calendario con esa información, que podría o no estar completa. En el array soy yo el que pinta toda los cuadros del día, en el context dependí de que estén ahí.

Logré hacer el calendario con el context, pero aún tiene varios errores, comenzaba poniendo el día 1 un domingo sin importar el mes, y no estoy seguro como pinte el último día del mes.
Quizá lo mejor sería hacer una mezcla entre ambos, que yo pinté la cuadrícula y el context rellene.

Espero mañana encontrarme un poco mejor de ánimo.

9.Nov.23

La de pequeños detalles que estoy solucionando en el proyecto. Del listado que me hice, creo que eran unas 24 tareas, las he dejado en unas 6.

Voy probando y puliendo detalles, afinando la estética. Van quedando quizá las más difíciles, en las que tendría que hacer cambios más significativos.
Quedan algunas features que debo añadir, como el login. También me gustaría añadir el on-boarding, las instrucciones.

Espero la próxima semana tenerlo terminado.

8.Nov.23

Hoy ha tocado hacer menos tests, pero más pruebas, estoy encontrando y corrigiendo bugs que a los que no me había enfrentado si no tuviera que implementar los botones de borrar Dailies y borrar todos los datos de la base de datos. Lo positivo es que los voy corrigiendo.

He hecho un listado de lo que debería hacer y lo que debería corregir y es largo, además van saliendo correcciones mientras hago correcciones, parece que no se terminará nunca.

Mejoras, detalles que voy puliendo, van dando forma.

6.Nov.23

Hoy tocaba hacer tests de los viewModels del apartado de dailies. Hay un método que obtiene de la base de datos el listado de dailies, los ordena por fecha (el más reciente al final) y del que tengo que devolver la racha actual de dailies completados. Con la particularidad que:

  • si el daily de hoy está hecho, se suma a la racha
  • Si no está hecho, busca el de ayer y si está hecho, comienza a contar la racha

⠀Hasta ahí todo bien. En teoría, desde el inicio del juego todos los días tienen su daily, son consecutivos, hay un método que se encarga de rellenar la base de datos con todos los días hasta el día actual, si es que el usuario no ha entrado varios días a la app o bien el daily del día si entró ayer.

Los datos de prueba que hecho son un json que tienen fechas fijas no consecutivas. Con lo cual tomando esos datos en los test la racha debería ser 0. Tendría que crear dailies al momento del test con días anteriores para que se crease una racha.

El punto está en que no he podido conseguir que cuente la racha tomando en consideración las fechas, tendría que considerar la de hoy e ir restando días segun avanza y el l daily está completado, en cuanto no esté completado o falte un día la racha se rompe.

He estado un rato largo con ese método y no logré hacerla hacer así, intenté varias aproximaciones, escribirlo en la pizarra, pero no lo conseguí ( o no lo he conseguido) pase a los siguientes viewModels y he descubierto que los tests ahora se me dan mejor.

No me ha dicho nada de la empresa de consultoría, debería escribir al recruiter a ver si me da alguna información.

3.Nov.23

Hoy ha sido un buen día. He terminado los tests de 2 viewModels , y he refactorizado nombres de variables, métodos, eliminado los que no estaba utilizando.

Me ha gustado porque lo he conseguido. He conseguido probar la bbdd de Coredata y sobretodo desde otra perspectiva, más “madura” podría llamarle en cuanto a escribir y evitar repetir código.

Me ha hecho sentir muy bien.

2.Nov.23

Parece que tengo todo lo que quiero incluir en la app. Que no es todo lo que me gustaría, pero prefiero que esta versión entregable quede así y ahora comenzar a dar un repaso a todo.
Me estoy apuntando todo lo que habría que revisar / corregir. La lista crece por minutos.

Cuando me he dado cuenta de que tenía todo me he quedado un poco parado. No sabía cuál era el siguiente paso. Esta parte no la había visualizado, ni contemplado, así que sé que hay que revisar todo, pero ¿que tendría que revisar?

He reorganizado las carpetas y archivos del proyecto, limpieza y organización.

El siguiente paso sería añadir todos los tests que faltan, ahí me daré cuenta de bugs y podré refactorizar algo de código. Con eso me pondré mañana.

1.Nov.23

Bueno, tengo el endpoint de post de la acción sugerida (daily o encuentro). Me he frustrado porque no recordaba cómo crear el Modelo y la migración en Vapor, esta vez no consulté ningún vídeo de la clase, lo resolví viendo el código que ya tenía.
Lo quise hacer bien, poniendo relaciones en la base de datos, pero me daba un error de Foreign Key al hacer post del json. Después de intentarlo solucionar, me decidí hacerlo por la manera fácil, ponerlo todo como String en lugar de relacionar las tablas. Así a la primera.
He hecho el método en la app y mañana probaré la conexión entre app y server.

Sería la última funcionalidad “complicada “que me queda, sino recuerdo mal.
Tocará repasar el diseño, hacer algunos ajustes que quiero unificar más el tamaño de letra y ponerme con los bugs.
He recubierto uno, que seguro solo pasa el primer día de mes con la vista del calendario mensual, que la fecha que tengo seleccionada hacer temblar la vista, literalmente.

Hoy no me he sentido del todo bien anímicamente, me entra el bajón y comienzo con el ciclo mental de que no lograré este cambio profesional. En cualquier oferta piden experiencia, mínimo 2 años. Hace días que no aplicaba a una, hoy he enviado a 2. De la consultora siguen sin contactarme, mi mujer me ha dicho que les escriba. Me dijeron que para este mes tendrían un proyecto en el que podría entrar.

30.Oct.23

Está terminada la feature de activar contraseña y biometría (faceId o touchId), he visto que está una tercera opción que es opticalId. Aún no lo pongo en al acceder a la app, para no hacer más lentas las pruebas. Lo dejaré para más adelante, cuando haga el splash y demás.

Ahora estoy trabajando en las sugierencias de dailies y actividades que puede hacer el usuario, estarán en la misma vista y con un segmentedPicker se podrá cambiar entre ellos. He hecho el de daily, mañana el de encuentro, en Vapor la lógica para recibir ese json y el viewModel para enviarlo.

El jueves recibí por LinkedIn un mensaje directo de una recruiter diciendo que buscaban un perfil como el mío, le he contestado hoy, le he dado mi número de teléfono y no me ha vuelto a escribir. Vi que había vuelto a ver mi perfil.
Quizá no vio de primeras que no tengo experiencia, pero escribir sin asegurarse de que sea lo que estás buscando, y sobre todo luego no escribir absolutamente nada me ha parecido de muy mala educación. Mañana le escribiré para saber que ha pasado.

29.Oct.23

Quiero hacer un repositorio trabajando con Realm, necesitaba encontrar un tutorial que me diera las directrices de cómo comenzar.
Encontré uno y después busqué en mis notas las ideas que app que pensaba para el podcast. Así que haré una en la que registres tus repeticiones máximas en wods de los ejercicios de Crossfit. Es decir un WOD se compone normalmente de varios ejercicios funcionales diferentes, tomemos como ejemplo el clásico Fran, en el que de deben completar en el menor tiempo posible 21 repeticiones de Thruster, después 21 dominadas, después 15 Thruster y 15 dominadas, finalmente 9 Thruster y 9 dominadas. Escrito en la pizarra del Box se suele ver así:

For time
21-15-9
Thruster 43kg
PullUps

A menos que lleves años entrenando y estés muy, muy, muy en forma, realizar cada bloque de repeticiones sin soltar la barra o sin bajarte de la estructura no es posible.

Me he dado cuenta que además de comparar tus tiempos con el mismo entrenamiento hecho tiempo atrás o tus máximos de peso en cada ejercicio es difícil saber que estás mejorando realmente, puedes guiarte por sensaciones, pero no es comprobable.

Quizá las 21 repeticiones de Fran con 43 kg no puedas hacerlas Unbroken (sin soltar la barra) pero puede que si escalas el WOD a 30 kg lo logres. Si esa así ese es el registro que deberías hacer en la app. 21 repeticiones de Thruster con 30 kg el 1 de octubre, y 10 repeticiones de Thruster con 43 kg.
Eso te servirá de referencia para el WOD que vuelva a tocar thruster, aunque no sea un Fran. Quizá sea un Chipper, formato en el que tienes que es una sola ronda y tienes que completar todas las repeticiones del ejercicio antes de pasar al siguiente, suele ser un alto volumen de repeticiones por ejercicio.
Con esa referencia puedes estimar el tiempo que te llevara completar el WOD y el peso que deberías cargar.

Lo intenté hacer en Excel hace tiempo pero no lo alimente lo suficiente, así que se quedó en eso, una idea.

27.Oct.23

Hoy he avanzado en el procedimiento para crear el password. Un poco más complejo de lo que me pude imaginar en un inicio. No es simplemente añadir una vista en la que se escriban dígitos (en este caso). Quizá necesitaba hacer un fluogtama antes, pero lo hice directamente picando código.

La vista con el TextField lo tenía ya hecho. Al escribir un carácter se iluminaba un corazón, hasta un total de 4.
Así que cuando en la ventana de Contraseña el usuario activa la opción de usar contraseña se muestra la vista de los 4 corazones. Primero pensé en no usar el teclado sino una vista personalizada con los números del 1 al 9. (La hice), al pulsar se rellenaba la propiedad y 4 era el máximo que admitía. Claro hay que pedir confirmación de la contraseña, con lo que primero añadí otro textfield de confirmación. Al meter 4 dígitos en el primer campo tenía que hacer focus (cambiar al siguiente textfield automáticamente. La confirmación válida que sean los mismos dígitos que en el primer campo, así que sino eran los mismos, los borraba y el usuario tiene que escribirlos nuevamente.
¿Y que pasa si el usuario olvida la contraseña? En este caso no podría acceder y tendría que borrar e instalar nuevamente la app. Así que ¿porque no crear una palabra de seguridad que el usuario pueda usar como recurso para recuperar la contraseña. Cree otra vista, en la que primero tendría que crear una palabra de seguridad para que apareciera el campo contraseña. Los dígitos de la contraseña se ocultan pero la palabra se muestra, eso no es coherente.
Después de hacerlo decidí quitarla, primero tengo que hacer funcionar la contraseña antes de complicarme con un paso más.

Así que el usuario activa la opción de usar contraseña, se muestra la vista, introduce la contraseña y la confirmación, ¿y si se arrepiente y quiere cancelar? Hay que poner un botón de cancelar, que borre los campos, vuelva atrás y desactive usar contraseña.
Después de varios intentos, Hecho.
Ya tiene activa la contraseña,¿ y si quiere desactivarla? Habrá que pedírsela de nuevo para ejecutar la acccion.
Así que al desactivarla tiene que mostrar otra vista pidiéndole la contraseña. Necesitaré un campo más que muestre la ventada de Desactivar contraseña (que pensándolo ahora puede ser la misma que pida al inicio).

Entre en un bucle en el que activas la opción, te muestra la vista de contraseña, guardas y desactivas la contraseña te muestra la otra vista, cancelas, te muestra la primera etc. Algo no iba bien.
Corregido.
Ahora queda guardar la contraseña en el Keychain, para ello he ye ido que volver a ver el vídeo de la clase del bootcamp.
Lo implemento, da error , tengo que poner todo en una class… pero eso será mañana..

26.Oct.23

He terminado el tutorial de SwiftUI y Firebase, muy completo, muy detallado, con el adjunto de los proyectos iniciales y finales.
Realmente es un proyecto sencillo, un listado que puedes marcar como completado, la parte interesante es centralizar la información en Firebase, filtrarlo por usuario, anónimo o registrado. Registro con usuario de Apple.

Me gustaría hacerle modificaciones para adaptarlo a la idea de app que tenía en mente de DogMinder. Ya veremos que no le he dedicado hoy nada de tiempo al proyecto final. Quería ver cómo implementaba el usuario y contraseña, aunque no es exactamente como lo voy a implementar yo, porque en el tutorial se genera un usuario anónimo. Aquí es añadir una contraseña solamente.

25.Oct.23

Hoy he terminado la vista de la cantidad de encuentros completados por mes.

He comenzado ahora con el apartado de preferencias y con el login.
Tendré que comenzar a trabajar en los textos, para irlos puliendo poco a poco, hasta alcanzar el resultado deseado.

Es curioso como en las últimas 2 o 3 semanas he añadido a 3 reclutadores de empresas, ninguno me ha contactado todavía.
El último post que publiqué en LinkedIn ha tenido poco más de 800 impresiones. Nada mal para un post de 2 imágenes y quizá apenas 100 palabras.

24.Oct.23

Episodio O Ornamentando el podcast publicado!
1.919 reproducciones

23.Oct.23

He comenzando un nuevo repositorio: SwiftUI y Firebase. Todo iba bien, hasta que llegó el momento de instalar Firebase en el Mac. Me daba una mezcla entre temor y asco. Temor porque se fuese a romper algo y la Mac mini dejara de arrancar o se comportara de manera extraña, como si le estuviera instalando un virus de manera consciente. Asco porque sentía como si estuviese ensuciando mis proyectos, se que solo se instalará en éste, pero w dolo si metiera la mano en n porquería para después tocar el teclado.
Al final lo instalé y pude continuar con el tutorial.

Por la tarde tocaba ponerse en el proyecto, sigo pintando la UI, descubriendo más bugs y dudando sobre lo que debería incluir o no como pantallas.
Tendría que escribir un listado con los errores que me voy encontrando para corregirlos una vez que tenga la app vestida.
He puesto como versión mínima la 17.0, de esta manera puedo utilizar la gráfica de pastel para mostrar la cuenta de ratings, porque con la lineal no se apreciaba muy bien.

22.Oct.23

He comenzado a seguir un tutorial de SwiftUI y Firebase. Está hecho con DocC y la verdad es que bastante bien explicado al menos lo que llevo hecho. Pone que en total son poco más de 5 horas.

20.Oct.23

Hoy he terminado por fin el proyecto del podcast, me ha tomado más tiempo del que creía, al final esta semana le he dedicado casi toda la semana, pero me ha gustado el resultado final.

Además de hacer en proyecto hay que darle un ReadMe, la presentación, subirlo a GitHub, ponerlo el enlace a la página del podcast.

18.Oct.23

Casi tengo terminada el proyecto del Podcast Próxima Parada Swift. El diseño está como quiero, el reproductor de audio. Falta alguna parte de lógica sobre todo relacionada con Swift Data. Espero terminarlo hoy, puede que añadir tests y ponerlo en GitHub.

17.Oct.23

Mi cuarto día con COVID y no he tenido cabeza para pensar en el proyecto.
Ayer me puse a trabajar en el diseño más que en la lógica, pero no me era sencillo, como si la mente se me quedara en blanco y no pudiera resolver ningún problema porque sencillamente no hay conexiones sinápticas dentro de mí.
Hoy un poco mejor por la tarde, he trabajo en el proyecto del podcast y va quedando mucho mejor. Ya he podido hacer que se reproduzca, seleccionar con un slider el tiempo, y con botones adelantar o retroceder unos segundos.
Me gustaría incorporar la velocidad, pero hay que encontrar el punto en el que aumentas la velocidad y la voz no se escucha como ardilla.

13.Oct.23

He terminado la parte de los Dailies. He hecho unas mejoras.

  1. Que no se pinten los cuadros de las fechas que no hayan pasado todavía. Así no parecerá que no hay ninguno hecho.
  2. Deshabilitar y difuminar los botones de mes anterior y mes siguiente si ha alcanzado la fecha del primer daily o bien ha llegado al día actual.
  3. Corregido un bug al generar el daily del día.

⠀He comenzado con la vista de estadísticas.

12.Oct.23

Desde que empecé com este cambio de profesión, los días festivos locales y nacionales han dejado de ser días de fiesta. Puedo tomarme cualquier día de fiesta como lo hice con el cumpleaños de Nic, o cuando sea nuestro aniversario de bodas o en mi cumpleaños. He ganado esa flexibilidad. Práctico y estudio porque me gusta, porque así lo he decidido, por que lo disfruto.
Disfruto el hecho de tener un reto, de tener que añadir una funcionalidad al proyecto que tengo, el saber cómo hacer mejor código.

No quiero y afortunadamente no tengo una fecha límite en la cual deba conseguir un empleo, ojalá sea lo más pronto posible, pero si no está siendo así me da la oportunidad de: 1) avanzar en el proyecto final del bootcamp y 2) aprender aún más. Se que teniendo un empleo multiplicaré mi aprendizaje (al menos eso espero), ganaré experiencia en el mundo real. Mientras tanto solo queda seguir (constancia) poniéndome retos que desarrollar (trabajo duro) y los resultados llegarán, quizá cuando menos me lo espere.

He tenido 2 sensaciones distintas al trabajar hoy con los proyectos. La primera frustración con el proyecto del podcast. Frustración por no poder entender porque el simulador daba un error al querer hacer un Predicate (un filtro) con las categorías de los episodios que están en un array de enteros de reo del episodio. Lo he intentado cambiar a un array de PostCategories con su respectiva relación, pero tampoco filtra y da error. Simplemente no lo entendía y logré solucionarlo. Ha sido desesperante por no tener la información, no encontrarla y no saber exactamente el motivo del error. Entiendo que viene del array enteros, que tiene que ir como una relación a otra tabla.

Me gustaría volver a probarlo con más calma en otro momento.

Por otro en el proyecto. He finalizado con los encuentros . Solo queda un pequeño detalle que no se actualiza el listado después de haber completado uno incompleto, la etiqueta no cambia. Hay que ir al inicio del NavigationStack para que lo haga .

He empezado con los dailies. Al ya tener el viewModel es mucho más rápido. He “vestido” primero el contenedor de la instrucción. Y después la pantalla donde irá la etiqueta del saldo, la de la racha actual, la vista mensual, la frase sobre matrimonio y la instrucción.

Dal querer ponerme con la vista mensual, de la que ya tenía el diseño, pero me hacía falta la funcionalidad: que mostrara un corazón si el daily de ese día estaba hecho o no. Misma tiene que actualizarse cuando cambio al mes anterior o al mes siguiente.

Sencillamente no sabía cómo hacerlo, como si no lograra imaginarme la solución, no veía como unir un rectángulo con un listado de Dailies .
De cada rectángulo tenía la fecha, la había puesto como etiqueta en formato (yymd). Tenía que tener un valor en cada registro de daily que convirtiera la fecha de ese daily en el mismo formato.
Teniéndolo así hay que hacer una criba. Cada rectángulo tiene que preguntar si el array de dailies filtrados por los realizados,, contiene ese etiqueta. Si la tiene pondrá un corazón, sino una X.

Lo conseguí! Conseguí pintar el calendario mensual con los dailies hechos. Ha sido una sensación de felicidad, de logro, de satisfacción que me ha hecho el día.

11.Oct.23

Tengo que definir el alcance que quiero tener con el proyecto del podcast. He conseguido tener el listado de categorías y del cual filtraré los episodios mostrados. Otra tab con una presentación mía, y un listado con los repositorios que tengo, todo esto obtenido desde la web.

Mejorar el reproductor y listo.

En cuanto al proyecto final he conseguido darle funcionalidad a la página de la edición del episodio. Quedan algunos bugs que he encontrado al navegar, los tengo apuntados en la pizarra.

Si logro avanzar una pantalla cada dos días terminaré a tiempo.

He metido dos ofertas más, con carta de presentación, una de ellas buscaban alguien con 5 años de experiencia, pero aún así me ofrecí como candidato, lo escribí en la carta de presentación.

10.Oct.23

He conseguido, aunque no con el detalle que me hubiera gustado el hacer que la foto se pueda ajustar el tamaño y la colocación de la foto en el marco donde se muestra. Era como me lo esperaba, sencillo pero con complicaciones, aún quedan detalles como que el marco que contiene la foto permite que por detrás se vea si la foto se hace demasiado grande o se coloca muy en el borde. Tiene un marco que indica donde irá la foto.
Existe un contenedor en SwiftUI que podría probar. O bien dejar la foto tal cual si no lo consigo hacer como me gustaría.

El diseño de la vista del detalle lo tengo hecho. Faltan las funcionalidades. Estoy utilizando el mismo view model que tenía para las pruebas. Mañana tocará probar.

He publicado mi primer post en LinkedIn. Ha sido sobre un error de xCode y el archivo del proyecto.

9.Oct.23

Estar trabajando a la vez en dos proyectos me está permitiendo avanzar más. El del podcast lo suelo usar para “calentar”. En teoría es más fácil, o lo que quiero implementar no es tan complicado. He dividido en métodos la posibilidad de descargar el archivo de audio, guardarlo en disco y reproducirlo, primero lo busca en la carpeta de documentos y si no está lo descarga.

En el proyecto he logrado terminar la vista de encuentros canjeados. Primero mostrando una vista por categorías, en la indica los completados y los pendientes, para acceder a los encuentros filtrados a la siguiente pantalla y que se pueda filtrar por completados y pendientes desde el menú.

Mañana tocará hacer la ventana de detalle, donde completar el encuentro.

8.Oct.23

Hoy he estado un rato con Paul avanzando en la app de BusCity. Hemos comenzado ya con las vistas. La primera la de búsqueda por is de parada. Solo hemos estado una hora.

Luego me he puesto con la del podcasts. He extraído la celda de la vista, y sus botones. Además de crear un struct para los datos del audio, duration, path y downloaded. Quiero poner la progressView de la reproducción.

Además que he leído en el libro de Working with data de BigMountain algo esclarecedor.
El ObservedObject es al StateObject lo que el Binding al State.

6.Oct.23

En el proyecto del podcast he conseguido poner dos stepper con los cuales ajustar la velocidad de reproducción y la pitch del audio. Aún tengo que definir bien los parámetros, para que sea en pasos y se escuche más o menos bien.

Una funcionalidad más añadida.

Respecto al proyecto he terminado el botón de obtener, con el saldo que tiene obtener actividades, que se descuente del saldo, que cambie la actividad a comprada y que muestre un sheet con los detalles.

He comprendido el funcionamiento y uso del action: () → Void que permite ejecutar un closure en la vista padre al pulsar un botón de la vista hijo. Lo he podido ver claro al querer ejecutar una acción después de pulsar el boton de confirmar en el popup que aparece después de darle a obtener.

5.Oct.23

Me he picado con el proyecto del podcast, quería poder reproducir los episodios desde la app, así que primero tenía que subir los audios de todos los episodios y añadirlos a la entrada de WordPress correspondiente. Como el tamaño máximo de los archivos que se pueden subir es de 30MB, he buscado un compresor web de audio. Así pude comprimir y subir los faltantes.

Teneindo la web del audio en el content del post, me he puesto con obtener de ahí la ruta que está entre ciertos anclajes HTML. Así que con ayuda de regex (expresiones regulares) tenía que encontrar el patrón dentro del cual está la URL del audio.

Me ha costado entender los String.Index del rango obtenido para poder obtener la URL. Con ayuda de ChatGPT, stackoverflow y algún post lo conseguí.

Después la tarea el añadir un botón que reprodujera el audio. Recuerdo que tenía un proyecto de un vídeo de SwiftBeta donde reproducía sonidos. Así que vi el código y lo implementé en mi proyecto.
No tiene una progress bar, ni pausar, ni reproducción automática ni nada. Solo es un botón de play que busca el post por id, descarga el content, obtiene la URL, descarga el data y lo reproduce.
¡Reto conseguido!

4.Oct.23

Hoy me ha enviado un amigo un tweet de una persona que publicó que en la empresa donde trabaja están buscando desarrolladores. En México principalmente, pero están abiertos a contrataciones fuera sino encontrasen.
Al principio dudé, me metí al Twitter de esta persona y hasta que no sentí que fuera de fiar no preparé el coreo que envié.

No creo tener muchas posibilidades, pero tampoco me cuesta, ni pierdo nada.

Por la mañana he visto un vídeo de Paul Hudson, que me recomendó un compañero del bootcamp sobre SwiftData.

Vi en su repositorio de github y me comentó que era mucho más fácil que CoreData así, que por probar le di una oportunidad.

Para practicar implementé en un nuevo proyecto que será otro repositorio que tiene como finalidad ser el podcatcher cliente de mi podcast. Así que la idea es descargar la info de los episodios del json de WordPress, guardarlo en SwiftData y poder marcar como favoritos, escuchados etc.
Lo logré implementar, lo básico, sin apenas diseño, pero funcional.

La dificultad la encontré al descargar el contenido del episodio, las notas, que se descargan en formato HTML. Así que hay que hacer una conversión, que me ha costado conseguirlo.

Me gustaría añadir el reproductor, así que tendré que organizar los audios para poder ser descargables.

En el proyecto he rehecho la navegación de los encuentros, una vez que he visto que la primera versión no era tan intuitiva.
Como no podía ser de otra manera, he encontrado algo que debo contemplar también: el saldo de los puntos debe permitir canjear el encuentro.
Mañana me pondré con ello.

2.Oct.23

Parece que tengo ya el diseño completo. Está adaptado al ejemplo no a lo que las vistas de la app tienen que presentar. He trabajado en los modificadores de los textos. Son 6 tamaños diferentes. Las celdas que mostrarán la info de las categorías, y los botones, aún me queda por unificar, pero voy viendo avances.
He elegido un tipo de letra, para el cual he puesto 5 diferentes (aunque muy parecidos entre ellos) todos con forma redondeada.

He estado hablando con un compañero del bootcamp, que está haciendo su proyecto de app de una app recordatorios para perros. Hemos comentado dudas, dificultades y avances. Veo que voy más o menos bien. Su enfoque ha sido diferente, toda la información del usuario la sube al servidor. Yo toda la manejo en local.

He visto que hoy comienzan las inscripciones al curso de essentialdeveloper. Son 2.000€, me parece accesible y muy buen precio por lo que he visto en los vídeos que tienen vale la pena. No es el momento, me gustaría ganar algo más de experiencia, tener un poco más de dinero y haber terminado el proyecto.

Estoy seguro de que lo haré, me gustaría el próximo año.

29.Sep.23

Me han rechazado de otra oferta. Me lo han comunicado por correo. Que valoran positivamente mi candidatura pero no se ajusta a las características de las necesidades actuales de la empresa.

Estoy ahora con el diseño de la app. Busqué ayer imágenes con diseños, colores formas y demás. Se los pasé a mi mujer, a mi hermano y a mi mamá a ver cuál descartaban y cuál elegían. Al final me decidí por uno de fondo oscuro, colores rojo, gris y naranja.
Me estoy haciendo las formas, botones, para luego crear las estructuras y aplicarlas a las pantallas.

27.Sep.23

Episodio N: Navegando río arriba publicado
1.857 reproducciones en total

25.Sep.23

Hoy he comprado el libro de Swift Animations Mastery de Big Mountain Studio. Lo he comprado con descuento por 33€, aún tengo duda si comprar el de Working with data que serían 20€. Poco más de lo que me hubiera costado el primero sin este descuento.

He terminado la vista mensual, añadiendo los botones de mes previo y mes siguiente. Aún no estoy seguro cómo voy a meter en cada día del mes o del año el icono de hecho.

También hice la vista de la ventana de login. Quería replicar la ventana de Grid Diary donde solo se ven 4 puntos para introducir el password. Cuando el usuario introduce un dígito cambia de la silueta negra de un corazón un corazón rojo relleno.

La verdad que hoy no le he dedicado demasiado al proyecto. Por lo menos tengo ya esta vista deseada, me había imaginado tenerla porque me parece bonita.

Ha comenzado hoy un curso de la web The essential developer, donde explicaban el porqué como desarrollador iOS debíamos seguir un camino diferente, continuar aprendiendo de las fuentes adecuadas. Son 3 partes, esta primera es como de descubrienmiento, nada de código sino convencimiento para ser mejor. La pregunta que dejaron al final fue:

¿Por qué quiero llegar a ser un desarrollador iOS Senior?

Quiero desafiar mis capacidades, haber logrado no solo cambiar mi profesión de vendedor a desarrollador iOS, a la edad de 40 años, sino de tener los conocimientos suficientes para crear no solo una app sino una solución nativa, robusta y mantenible en el lenguaje Swift.

¿Qué necesito para conseguirlo?

Encontrar a las personas que han conseguido desbloquear el conocimiento de lo que un verdadero desarrollador iOS debe tener y aprender todo lo que pueda ellas.

24.Sep.23

Hoy he quedado con Paul para comenzar a picar código del proyecto de CityBus que estamos haciendo en conjunto. Una app que nos sirva para aprender Swift. Él ha preparado el diseño de las pantallas en Figma . Después de algunos ajustes, tenemos ya el diseño, sino final el que más se podría acercar a lo que será.
Quedamos normalmente cada semana, los domingos por la tarde. Hoy tocaba de 18 a 20 para iniciar.
Ya teniendo los endpoints que tiene la API del ayuntamiento para la información de los tiempos de llegada.
Comenzamos por el modelo, y después el fetch de los json para obtener los datos de las paradas de las líneas de autobús.

Las dos horas se me han pasado volando, le he compartido pantalla y he ido explicando el proceso, parte del código, nada de URLSession de momento, sino los métodos y los tests que nos permitían asegurarnos que se estaba haciendo la llamada y recibiendo los datos.

La próxima semana más.

22.Sep.23

Me había puesto como objetivo hoy hacer la vista anual y mensual de los dailies hechos.
La anual una cuadrícula donde se muestren los meses como columnas y los días del mes como filas.
La mensual en la que quería mostrar que el primer día del mes se ubicara en el día de la semana que le corresponde.

21.Sep.23

He trabajado en el repositorio de Anime que hice de ejercicio en el bootcamp, refactorizando, organizando y eliminando algunos archivos que no utilizaba. Lo subiré a GitHub y pondré el enlace en la web.

Me gusta el refactorizar, minimizar líneas de código, quitar código repetido y optimizar los métodos.

Por la tarde he avanzado en el proyecto. He hecho la vista de las insiginias ganadas. Por cada 4 actividades completadas el usuario gana una insignia. Y si tiene insignias por ganar aparece un placeholder en primer puesto indicando que aún se puede ganar otra.

El diseño no es el final, quiero tener toda la información que se mostrará preparada para ello cuando llegue el momento.

Teniendo la información procesada es más rápido generar las vistas porque tienes que mostrar.

Era el siguiente paso que tenía que dar, dejar de pulir y darle tantas vueltas a proceso de datos, en coredata, consultas y demás para tener algo que mostrar.

20.Sep.23

Hoy ha sido un buen día:
Me he inscrito a una oferta, he publicado el repositorio de la app BigBang Theory en github y en mi web, después de solucionar algunos problemillas con el archivo del proyecto y la creación del repositorio remoto.

Y he hecho avances en el proyecto final. Avances en el detalle de la vista de encuentros, que guarda foto, rating , comentarios. Se pueden canjear ya encuentros con los puntos ganados, se puede ver el saldo.

He empezado a trabajar con las estadísticas, mostrar los avances del usuario, lo que ha hecho en la app me parece un feedback imprescindible en cualquier app.

16.Sep.23

No te fin de semana no tocaré el código del proyecto. Tengo que replantearme la estrategia que voy a seguir, me lo estoy complicando demasiado y quiero simplificarlo y sobre todo avanzar. Me ha recomendado mi mujer que me tomé este sábado y domingo de descanso. He hablado con Paul y con Paco y me han recomendado: una generar muchos proyectos, y otra avanzar y crear una versión Beta a la cual después hacer mejoras.
Así que haciendo caso a la recomendaciones descansaré, me replantearé cosas y pondré en orden mis próximas acciones.

14.Sep.23

Hoy he tenido la tutoria con Julio. Menos mal que ha sido ahora, porque ha visto mi código y, es verdad, es farragoso. Perdí el rumbo y no he aplicado lo que nos ha enseñado.
Asi que toca re-hacer mucha cosa.

Por un lado me entro el bajón de que lo había hecho mal, que no había aprendido lo que nos ha enseñado, de que queda menos tiempo y tengo que hacer muchos cambios. Es donde entra la duda si realmente he aprendido lo que se tiene que tener para trabajar de esto, es doloroso cuando las horas de trabajo que le has dedicado no están bien, no han sido productivas en termino de app.
Luego pienso todo lo que he aprendido al hacerlo de esa manera, con lo que me he topado y agradezco que sea ahora y no al final cuando sepa que tengo que cambiarlo.
Estoy aprendiendo, no tengo que olvidarlo, y me voy a equivocar muchas veces sobre todo ahora que estoy dando estos primeros pasos solo.
Para eso es este proyecto, para afianzar lo aprendido lo que puedo aplicar en un proyecto real.
Aún con los ánimos un poco por el suelo, debo seguir, ser consciente de que esto me pasará muchas veces en esta profesión. Aprender a trabajar aún con estos percances , aprender a retomar fuerzas y ánimos. Que se van incrementando cuando, ahora que he comenzado a refactorizar todo, va saliendo lo que quiero que salga.

13.Sep.23

Me he lanzado a la piscina a rehacer los tests de CoreData. Tenía problemas porque al tener campos derivados no se podían crear las bbdd en memoria, tenia que ser en disco. Lo cual creaba una cantidad de ficheros temporales por cada test.
Así que decidí quitar esos campos, 4 en total. Cambiar los tests e incluso refactorizar la clase para dividirla en j 3 más específicas, más especializadas.

Los primeros tests de importación desde el Bundle han ido bien. Los de network no, después de varias pruebas, descomponiendo todo en partes más pequeñas, intentando ver donde estaba el problema seguía dando un error de acceso de memoria y no logré encontrar el porqué.

Se me ocurrió volver a refactorizar las funciones para poder reutilizarlas, una que obtenga los datos y otra que los guarde en la bbdd.
Me he quedado con un sentimiento de frustración al final del día.
Aunque he avanzado lo suficiente. Creo que voy en la dirección correcta y quiero que todos los test pasen, no como antes que solo pasaban 4 de 24.

11.Sep.23

Hoy ha sido la entrevista con la consultora. La tercera. Estaba nervioso, ansioso, tenía que dominar los pensamientos de mi cabeza, quitarles tensión. El sábado mi hizo algunas preguntas Nic a modo de preparación. La que me hizo y me hicieron en la empresa Es ¿Que crees que podrías aportar a la empresa? Menos mal que Nic me la hizo, esa y algunas más. El preparar tu cabeza para responder esa pregunta con antelación te hace tener una idea sobre lo que responder.

Hoy fue como hacer una vista global, me metí a la web de la empresa, a sus redes sociales, a youtube, vi un par de vídeos sobre kanban y Gestión de proyectos, bastante interesantes. Conocer un poco el ambiente que hay, la filosofía, el crecimiento que ha tenido, los proyectos en los que participan.

Me daría mucho gusto poder pertenecer a esa empresa, despierta un genuino interés saber que una empresa se esfuerza en convertirse en un mejor lugar para trabajar.

La entrevista creo que la he hecho bien, sonriente todo el rato, menos nervioso de como estaba antes de comenzar o incluso la hora anterior al comienzo. Luego fue más una charla, un conocernos y que me conozcan, que sepan como soy, que es lo que he hecho.

Hoy no tengo cabida en la empresa, no hay un proyecto en el que pueda aportar y que me aporte experiencia. Parece ser que para finales de octubre, digamos noviembre puede que, si se cierra el proyecto tengan un lugar para mí. Me lo harán saber.
No me quita la ilusión, al contrario me da esperanza y prefiero empezar en el lugar adecuado en el momento adecuado que por la premura tener un mal comienzo.

Paciencia y trabajo.

8.Sep.23

Hoy he decidido comenzar a hacer mejoras en la web del podcast o de mi mudanza profesional no se como llamarlo. He cambiado el tema, he puesto varios links en lo que podria decir mi perfil. En general cambiado un poco el aspecto, ahora con la búsqueda de empleo.
También he hecho limpieza en mi GitHub, quitando muchos repositorios que hice antes del bootcamp. Quiero ahora publicar los que representan lo que se hacer en la medida de lo posible.

6.Sep.23

Episodio M: Maniobrando con prudencia publicado

1823 reproducciones en total

4.Sep.23

Tenía he empezar a buscar ofertas y aplicar y no lo hice. Lo fui posponiendo conforme iba avanzando el día, pensando: “Avanzo un poco más en el proyecto y por la tarde a las 4 empiezo”. “Un poco más y a las 7 me pongo a buscar por LinkedIn”. “A las 8 que estoy en medio de algo”. Y así hasta no hacerlo.

Tengo que decidirme para empezar, marcarlo como compromiso para obligarme a hacerlo, para incluirlo en la rutina. No es sencillo, pero ya es tiempo, 7 meses sabáticos han estado bien, es momento de vencer el miedo y cambiar de profesión.

3.Sep.23

He soñado con el proyecto, con código, con cómo abordar un problema. Con la manía que de que tiene que se eficiente el manejo de datos con CoreData. He implementado en el servidor un endpoint que proporciona el número de versión de los datos que hay en la bbdd servidor, así la app consulta cada vez que se abra si hay nuevas actividades o nuevos dailies y los descarga. Endpoints los que se filtran los registros de bbdd en función a un id proporcionado, que es el último que tiene la bbdd de la app, así sólo se muestran los datos que se deben descargar.

Otro es el los dailies que tiene como tarea el usuario realizar, si entra todos los días, en la bbdd se carga uno aleatorio, y ese número variará en función a los que esten disponibles en local. Para no hacer una consulta cada vez solicitando el total de datos, guardaré en UserDefaults la cantidad, obtengo un dato aleatorio a partir de ella y así solo tengo que consultar en la base de datos ese id. Si lo hubiese un dato almacenado pues hago una consulta y lo guardo. Se tendría que ir actualizando con cada nueva version. Si el usuario pasa varios días sin entrar a la app se rellenarán las instrucciones con una cadena de caracteres vacía, porque de momento no va a influir más que para contar que no lo ha hecho.

También tengo el proyecto con Paul un oyente del podcast con el que he estado en contacto las últimas semanas y nuestra idea es publicar la app de bus de zaragoza. Estamos con el diseño y me he puesto a ver de qué manera obtendríamos los datos del endpoint que está publico. Aunque no es fácil organizar la información. No es homogénea. Habrá que hacer algunos malabares para obtener, que quizá deje en un json en la bbdd que se cargue al iniciar. Que obtenerlos será una sola vez.

2.Sep.23

Hoy he decidido dedicarle un rato al proyecto. Poco más de una hora. Sabiendo cuál es el siguiente paso, me quedé a medias el viernes y quería avanzar ya que lo tenía en mi cabeza en segundo plano.

Aunque debo también desconectar para descansar un poco y estar fresco cuando inicie la semana.

1.Sep.23

Comienza septiembre y es tiempo de ajustarse a lo planeado. El próximo lunes comenzaré a buscar empleo de manera activa. No estoy seguro cuánto tiempo le deba dedicar, pero será una búsqueda diaria programada, eligiendo las ofertas que se encajen a mi perfil.
El próximo día 11 de septiembre tengo la tercera entrevista con la empresa consultora. Esta vez con una persona que lleva la sección de apps de la empresa. Es mi opción más cercana, pero no tengo nada seguro, así que toca buscar.

Sobre el proyecto. Terminé ayer la parte de la carga de la información, podría decir que son como los cimientos de la app, la fuente de la verdad, de donde emana la razón de ser, de donde viene la esencia, lo que dará al usuario. Queda la transformación, que es organizar y distribuir esa “agua” de la forma mas asequible, añadirle sustancia, embotellarla para ponerla a disposición, que es como veo los viewModels.
Finalmente quedará la presentación, las views. La ms dosis, la estética, las raciones que harán que el usuario obtenga los beneficios que busco al hacer este producto: Mejorar su vida en pareja*

Hoy he hablado con la jefa de la empresa de la que he pedido la excedencia, me ha dicho que teníamos un asunto pendiente y cómo iba. Le di a entender no volvería diciéndole que estaba ya buscando trabajar, que estaba en medio de un proceso de selección. Me preguntó que si por lo menos medio tiempo, le dije que no.
No pensaba volver, menos mal que me ha llamado ella sin previo aviso y me ha cogido desprevenido, así no le di tantas vueltas a esa llamada y luego gracias a escribirlo en mi diario pude dejar de darle vueltas después.
Ya está hecho, he soltado esa liana y ahora estoy en el aire, con otra muy cerca de mi mano pero de la que no me he agarrado.

31.Ago.23

Por fin! He logrado que actualice los registros si hay una nueva versión de ellos en el servidor. La primera carga de datos se hará en local, y la actualización añadirá a los ya existentes. Me ha costado encontrar porque los fallaban, los tests fallaban. Y eran detalles tan pequeños que me costaba pensar que era eso. Más encontrarlos, porque uno están aqui, otro allá. Y otro era por el servidor.

Por fin los tengo hechos, ahora toca ponerlos en el lugar correcto.

26.Ago.23

Este fin de semana tocará ponerse con el proyecto, ya que me tomé el miércoles libre y aprovechando que mi mujer tiene que preparar una prueba técnica de una entrevista (la cuarta del proceso) que tendrá el lunes.

Como lo disfruto no lo veo como un castigo sino una oportunidad para avanzar. De hecho voy más lento de lo que planeé antes de saber lo que conllevaba, al inicio del bootcamp. Subestime la complejidad o sobre-estime mi velocidad así que en agosto no lo tendré terminado. Y ni siquiera puedo decir ahora cuando tiempo me tomará. Lo bueno es que la prorrogara hasta final de año me permitirá tener la tranquilidad de terminarlo a tiempo.

El 10 de septiembre finaliza mi periodo de excedencia, no me he puesto en contacto con la empresa (ni la empresa conmigo), pero no tengo ninguna intención de volver.
El plan era en septiembre ponerse a buscar empleo, así que es quitar unas horas al proyecto para la búsqueda. No sé cuánto tiempo me pueda llevar y aunque me gustaría tenerlo terminado antes de comenzar a buscar no es la mejor opción. Incluso dedicando pocas horas a la búsqueda tendría tiempo suficiente para avanzar. Así no tengo tiempos muertos. Terminarlo para ponerme a buscar tampoco es lo mejor.
Es momento de probarme, salir al ruedo y ver si con las herramientas que tengo soy capaz de obtener mi primer empleo como desarrollador.

25.Ago.23

Tengo que hacer esto:
Poner endpoints de prueba en el Sever
En el package de network añadir protocolos para que se puedan cargar datos en local que inyecte a las previews.

Eso fue lo que pensé a primera hora de la mañana. Me puse a modificar el package que he incluido en el proyecto final para que provea las clases y los métodos que quiero utilizar. Mi intención era que la misma clase me sirviera para descargar datos del endpoint y también para hacer los testing con datos en local. La solución: Protocolos. Utilizar un protocolo que asegurara los métodos que se proveerán, y que me permitiera cambiar con un parámetro cuando sea para testing, por defecto sería el descarga de red.
Me ha costado, por un momento pensé en descartar todo y dejarlo así, pero algo me decía que iba por el camino correcto. Al final lo conseguí. El que sería el último intento y que me daría el test pasado ✅, no lo fue porque me hacía falta cambiar un parámetro que tenía que coger la url de otro protocolo para que proporcionara la ruta local del archivo json que proveería todo.

Después del intento fallido esa siguiente vez ha funcionado.

Hay un baile que suelo hacer cuando consigo realizar el reto planteado. Nic lo llama “el baile de la guitarra”. La verdad es que surgió porq canción de Quédate de Quevedo / BZRP. La ponían en el Box mientras hacíamos el WOD de Crossfit, de la cual no entendía nada de la letra, solo el QUEEEEEDATE, y de esas canciones que se quedan en segundo plano en tu cabeza un día comenzó ese ritual. Es reflejo del subidón de endorfinas que te da cuando logras completar un reto.

Por la tarde el plan era hacer la base de datos Local. Todos los campos y las modificaciones que había visto en el Sketch que sería mejor hacer. Lo documenté en el
Numbers donde llevo esos registros y me puse a ello.

Después comencé a realizar los datos de prueba que mostrará el contenedor de simulación para las previews de SwiftUI.
Me ha tomado más tiempo del que pensaba, primera porque lo quería hacer bien, tener datos variados y que se pudieran filtrar, así que tenían que tener cierta coherencia y ser heterogéneos. Para los sencillos en los que necesitaba un json con id y nombre, se los pedí a chatgp3, incluso hasta los de 4 propiedades, hice algunos ajustes en los valores y ya. Pero el principal que son los que denomino Encuentros llevan más información y están relacionados con otras tablas, esos me ha costado más.

Ha sido un día productivo y veo avances más rápidos a la hora de programar porque ya tengo una idea más general.

23.Ago.23

Hoy es el cumpleaños de mi mujer, Nicole y me tomaré este día de descanso, quizá estudie un poco porque ella se pondrá al ordenador después de comer un rato para una videollamada.

19.Ago.23

Por la tarde me he puesto 45 minutos a planear el día de mañana. La idea es iniciar ya el archivo final. Antes tengo que replantearme todo lo que he visto y aprendido con el Sketch que he hecho. Replantearme la base de datos, los nombres, el flujo de información, que era la idea de hacerlo así, tener un panorama general y más real de lo que me pude imaginar en un inicio. Me he dado cuenta de que es complicado ver cómo será el proyecto final sin la experiencia de haber hecho nunca la app.

Puede que el tema sean animales, quizá de logo de app terminen siendo dos colibríes, las categorías serán orejas de bebés de distintos animales. El color por definir, en principio los he hecho todos color salmón.

18.Ago.23

Por la mañana he leído el libro de Big Mountain studio de SwiftUI, me da ideas de cómo presentar las pantallas de la app.
Por la tarde he integrado el viewModel de las assignments a una pantalla de prueba. Para que mostrara la información que quiero que muestre: las actividades totales. Las completadas , las incompletas los filtros con los NSPREDICATE , cuando obtener la información del FetchResult y cuando del managedObjectContext. Estoy logrando ejecutar la idea que tengo, así que estoy avanzando, siento que voy por buen camino. El lunes tocará ya crear el proyecto final.

17.Ago.23

Hoy me he puesto con el viewModel de las Actividades, que aún sigo buscando nombres para ello, esta vez les he puesto assignments. Puedo jugar hasta que tenga el proyecto final y una visión general de lo que será finalmente.

Me he dado cuenta de que necesito otro viewModel, uno que lleve el conteo de los corazones y de las actividades canjeadas. Probablemente necesite una tabla más, pero cuando me ponga a pensarlo y probar veremos. Tendré que guardar en algún lugar el histórico de transacciones, y si el usuario tiene o no disponible saldo.

Me he sentido más suelto haciendo este viewModel. Además de que he encontrado la manera de hacer tests de los métodos del viewModel en la base de datos.
Tenía un post que busque hace unos días, pero que era complicado, así que lo decidí dejar para un día como hoy de tener ganas de meterme en ese rollo. No logré que hacerlo funcionar, era demasiado complejo, para estos momentos de mi carrera y para el proyecto. Encontré otro más sencillo, pero sentía que no estaba probando realmente el viewModel, que era lo que tenía que probar. Los dos me dieron una idea de lo que tenía que hacer. Le pregunté a ChatGPT y me dio una implementación mucho más sencilla. La adapte a mis necesidades y logré testear los métodos del viewModel creando un archivo de bbdd por cada unit test. Los test fallaron y luego pasaron. Es la mejor implementación que logré hacer.

16.Ago.23

Hoy ha sido la entrevista técnica. No hubo, o por lo menos hasta ahora no la hay ningún enunciado, un proyecto que entregar. Prefieren conocer a la persona, y con los egresados del bootcamp llevan algún tiempo seleccionando a alguno para trabajar porque saben que el nivel es bueno.

Para la entrevista pensé, para lo tranquilidad, que ni tenía nada que perder, de hecho un poco la doy por perdida, una oportunidad para saber cómo son las entrevistas que preguntan, como se tienen que preparar y la siguiente hacerlo mejor. Me dije: Voy a ver que puedo aprender de esta persona. Y fue con esa actitud con la que me presenté, humilde, sincero, seguro pero identificando donde tengo inseguridades.
Hice énfasis en los tests que fue lo que me fallo en la anterior (lo aprendido). Y estuvimos hablando más de una hora.

Me ha preguntado de todos los temas que les interesan que sepa: comenzó por Git, repositorios, ramas, commits, hablamos de tests, Bases de datos, librerías de terceros, SwiftUI, UIKit, notificaciones, permisos de galería y cámara, cifrado, herramientas como Jenkins, Firebase.

Le pregunté si tenían ellos package propios, como era el día a día de un desarrollador, hablamos sobre la formación continua, las prestaciones de la empresa al respecto, el trabajo en equipo.

Al final me comentó que había hecho una buena entrevista y que en los próximos días me dirían algo.

Me he quedado con una buena sensación. No quiero crearme expectativas, pero sin quererlo mi cerebro imagina como sería que no era fuera mi primera oportunidad laboral.

15.Ago.23

Es festivo nacional, el box abre más tarde, Nic no trabaja así que decidí tomármelo con más calma. Después de entrenar y almorzar, volvimos a casa y me puse con el proyecto de 12:30 a 15:30.
Por la tarde a seguí con el viewModel de los Daylies.

Primero por la mañana escribí de lo que se tendría que ocupar este viewModel, que información me tenía que devolver, que información tenía que calcular. Partiendo de esa base, escribí cada una de esos requerimientos en el archivo en forma de comentarios y después detalle cuáles serían los pasos a seguir para conseguir lo requerido.

Los que hice fue: Obtener el dayli del día y calcular la racha actual de los daylies hechos.

Me ha costado ponerme en modo algorítmico, hasta que conseguí el Segundo que era el más complicado. Después de lo pase a chatgp y me hizo una versión mas eficiente, cambiando la recursion por un bucle while . Con esa nueva perspectiva del problema, hice una tercera versión esta vez con 2 funciones de programación funcional. Comprobé que en el playgrounds dieran el mismo resultado las tres con varios datos de prueba y valores aleatorios y lo si por bueno. Después lo implementé en el viewModel.

Finalmente llevaba idea de repasar el tema que me hicieron la recomendación de la prueba técnica de Tyris, sobre los tests. Era desacoplar el componente de URLSession , busque en mi índice de temas por clase y fui a ver el vídeo donde Julio César lo explicaba.
Lo aplique al proyecto de Movies que presenté. La implementación era más fácil de lo que creí, de los he recordaba. Falta ahora aplicarlo a las vistas.

14.Ago.23

Hoy tengo la entrevista a las 12 con otra empresa de consultoría por vídeollamada. 

Episodio L: Lidiando con muros

1.770 reproducciones

Me he sentido bien en la entrevista, me he soltado. Si la idea es conocerme me he expuesto, las cualidades que tengo, lo que mejor he hecho en mi carrera, que buscaría en una empresa para trabajar, como seria mi compañero ideal.

Me he sentido cómodo, sincero y sin ninguna presión sobre que ésta era mi oportunidad, siento que a partir de ahora tendrá más oportunidades, así que lo mejor es aprovecharlas y una manera de no regarla es estar tranquilo, no estresado. 

El miércoles tengo la entrevista técnica, que me imagino serán preguntas, no se si una prueba técnica como tal, ya veremos que tal va.

10.Ago.23

Hoy a las 12 me llamarán de una consultora para una entrevista. La segunda después de haber hecho el bootcamp.
Me han convocado para otra reunión el día lunes 14 a las 12 del día. Me imagino que será videollamada. Estoy tranquilo, tampoco es que esté ansiando ya trabajar, si las entrevistas van bien quizá para septiembre. Sino en septiembre me pondré la mitad de tiempo a buscar, la otra mitad a terminar el proyecto. Cambiando las prioridades.

09.Ago.23

Hoy han convocado a una tutoría del bootcamp. Hemos podido estar 10. Cada uno ha comentado sobre su proyecto. Del bootcamp del año pasado solo 4 de las 12 personas entregaron el proyecto final. Este año ha pospuesto la fecha de entrega y hoy nos ha puesto un deadline para hacer un entregable, a mi el 1 de septiembre. Quiero terminarlo o avanzar lo más que pueda este mes y poder tener una primera beta para ese día.

4.Ago.23

He hecho hoy las vistas de iPhone que tenía en sketch de Keynote, aún no termino, pero creo que he podido hacerlas sin mucho problema. Falta terminar y comenzar con las de iPad y las de Apple Watch. Donde tengo que pensar exactamente que quiero mostrar, en el Apple Watch quizá solo un recordatorio y poder marcar si está hecho o no.

3.Ago.23

Veo avances en el sketch del proyecto final. He logrado propagar el mensaje de error a la interfaz de usuario, con mensajes específicos del error. Aún me quedan detalles y las pruebas. Además de no estar seguro si mostrar una pantalla personalizada del error o bien la alerta estándar de iOS, dejaré esta primera seguramente para no complicarme de más.

Comencé mi día haciendo una nueva versión de mi CV, una consultora que se presentó en la despedida del bootcamp y a la que envié un correo solicitando una entrevista, me contacto por un mensaje de a LinkedIn pidiéndome mi CV y datos de contacto. Asi que fue lo primero que hice del día, una hora me ha llevado.

Después quería hacer los tests del viewModel de configuración, me encontré que no sabía cómo testear las propiedades que guardo en UserDefaults vía AppStorage. Y que había que hacer varias modificaciones para hacer lo mismo con los datos a guardar en CoreData. Quizá me haga falta más información, una guía de cómo hacer tests paso a paso. Sobre todo de estos procesos más complejos.
Me di cuenta de que m llevaría más tiempo y lo he dejado.

Son esos momentos donde la cabeza te juega malas pasadas y te hace desconfiar de lo que sabes hacer.

2Ago.23

Estoy con el proceso de on-boarding , de bienvenida de la app. Publicando los datos en un servidor. Hay que hacer una configuración inicial. Presentar la app, que el usuario sepa que es, en que le va a ayudar y sobre la privacidad. Después una configuración inicial de los datos. Descargarlos, transformarlos a la base de datos de CorrData, pedir algunos datos personales al usuario como fotos nombres y fechas. Guardarlos.

Lo fácil que es enredarse con la interfaz, querer que quede no mas atractiva sino que satisfaga mis manías, que si el padding, que si los los marcos de las fotos, si al final estoy seguro que el diseño lo cambiaré, no es el diseño final. Aun así pierdo algo de tiempo en ajustar algo que después cambiaré por completo. Me debo centrar en la parte lógica y dejar la interfaz para después. Sobre todo para estas pantallas de las cuales no tengo un bosquejo de como deberían ser.
De momento en escala de grises ya el color definitivo llegará.

28.Jul.23

o que me ha costado montar 3 tablas en la base de datos del servidor e importar los registros desde un json. La que me llevó toda la tarde fue la importación del listado de actions con referencia a la tabla type y category. Simplemente no he sido capaz de importar el json con esas referencias, probé de todas las maneras y todos los test. Descomponer el proceso en pasos más pequeños, simular el proceso con otros datos, cambiar los tipos de datos. Lo que pude obtener en claro era que al decodificar el json a tipo action daba un error y salía por ese catch. Lo único que se me ocurre como última opción es que el json de action además de llevar el typeId incluya también el name . Concatenar los registros en el json.

Luego pensando la información no la cargaré desde el json sino desde la base de datos de un archivo csv que generaré desde el Numbers y que contendrá todos los registros.

27.Jul.23

Sigo trabajando en la parte del servidor y la base de datos. Haciendo ajustes como por ejemplo en los nombres de los campos de las tablas y las mismas tablas. Quitando campos que en un principio pensé que eran necesarios. La dificultad de bautizar las propiedades y que ese nombre sea representativo, descriptivo de lo que realmente son.
Por ejemplo de haber nombrado la estructura Activity, que es el listado de actividades que tendrá que realizar el usuario en el juego. A nombrarlo Action. Dentro de de esa estructura tenía los campos title, description, cost y value. Donde el título era el enunciado que había que realizar el usuario, pero para las acciones diarias, para las actividades era una pista, porque la descripción detallada era otro campo y el título vendría vacío. El costo eran los corazones que le descontaban al usuario por adquirir la actividad y el valor era lo que ganaba. Los he cambiado a hint que es la pista de las ahora actions, la description que ahora son las indication porque realmente son indicaciones lo que da. El cost que ahora es el price y el value que ahora es la reward. Me parecen más descriptivos y claros de lo que representan.

26.Jul.23

Estoy haciendo pruebas con los datos de prueba que si de alta en una base de datos de SQLite ayer. Los exporté a un json, luego cree un modelo, que tuve que convertir a otro porque en SQLite no logré generar datos boleamos, y luego lo puse en una base de datos de core data para mostrarlos en la preview. Ha sido más laborioso, pero me encontré con algunos aspectos que debo considerar cuando tenga el proyecto real.
Lo siguiente es preparar en vapor esa base de datos para consumirla desde la app.

25.Jul.23

Hoy retomaré el registro en toggle y las clases de inglés.

Ayer me centré en una clase. La última del módulo de Swift 5.7 donde se daban genéricos y protocolos. Me ha aherdsso mucho más claro ahora que en su momento.

24.Jul.23

Hoy retomo el proyecto. Quiero en el día dividirme o segmentarme el horario.
Lunes y Viernes podría empezar a las 11:30, martes, miércoles y jueves las 10:30.
Me gustaría dedicar 2 o 3 horas al día a repasar clases y estudiar. También me gustaría preparar un modelo de prueba técnica en SwiftUI y UIKit que me sirva de portfolio y de base para las que tenga que hacer. Adaptarlas y tomarlas de ejemplo para las que me pidan en entrevistas.

Para el proyecto debería comenzar con el modelo de datos. Crear una base de datos de ejemplo y comenzar a ello. El diseño lo haré en escala de grises de momento hasta que me decida por el color principal.
Elegir unos iconos y terminar las medallas.
Terminar de afinar el diseño de las pantallas con las mejoras de las últimas apps que me descargue.

Tengo de tiempo de 11:00 a 14:00 y de 17:00 a 21:30 (aunque no todos los días de la semana) 7:30 diarias más o menos. Una jornada de trabajo.
Día: 2 – 2 – 4 : Estudiar – Portfolio – Proyecto
Semana: 10 – 10 – 20

Esta semana la tomaré de prueba para ir haciendo ajustes y ver que tanto avanzo.

19.Jul.23

He recibido la prueba técnica. Es menos laboriosa que la última que hice, que fue en UIKIT, ésta la hice en SwiftUI. Curiosamente es la misma API: MovieDB.
En pocas palabras era descargar un listado de películas, mostrar el detalle, crear una vista de **descargando*, ni hay datos y un aviso de error. Con una arquitectura, usando el token o ApiKey que ellos proporcionan, tests unitarios y poco más.
He hecho lo que pedían y unas pocas mas, barra de búsqueda, tabBar, Grid, Gauge.
¿Podía haberla hecho mejor? Por supuesto.
¿Me ha llevado más tiempo del que debería? Si, porque me he sentido muy lento, es como si mis neuronas volvieran a buscar la conexión sináptica en la que estaba almacenado el kwnow-how del código.
Poco a poco fui recordando, fui sintiéndome cómodo escribiendo código, recordando como se hacía. Comencé con la parte del Network, sus tests, luego las vistas y el viewModel.
Comencé a las 12, terminé a las 21:30, de 14:30 a 17:00 para comer y echar una siesta.
Me sentí más relajado que la última vez, no sentía tanta presión, quizá por la seguridad que el conocimiento te da, quizá porque no es la única oportunidad, quizá porque lo he visto como un ejercicio de práctica más que como el único examen de conocimientos que tendré.

Ya veremos. Ha sido una vuelta con un primer entrenamiento más intenso del que me hubiera gustado, pero que he aguantado bastante bien. Sobre todo que se me ha pasado la tarde volando, he disfrutado y me he divertido.

18.Jul.23

Hoy ha sido mi primera entrevista post-bootcamp. Una primera toma de contacto; un primer filtro para pasar a la siguiente etapa: una prueba técnica. Por lo que me ha dicho un compañero del bootcamp, de otro compañero es una mini app sobre movieDb. La propuesta salarial no es para tirar cohetes, más bien baja, entre 18 y 24 mil brutos al año. Entiendo la apuesta que una empresa debe hacer por una persona que viene de otra profesión, que no tiene experiencia, que no tiene medios para evaluar su desempeño o valía técnica. Una vez dentro como en toda empresa habrá negociar si los resultados son los esperados.
Estoy emocionado, esperando la prueba, pero a la vez cauto y reservado, no quiero entusiasmarme más de la cuenta por el revés que me puede traer.
Si está oportunidad no es para mi, vendrán otras, mientras tanto puedo seguir con mi proyecto de fin de bootcamp / primera app publicada.

También he quedado a las 21 para hacer una vídeo llamada con un escucha del podcast. Sobre el mensaje que puse en twitter hace tiempo buscando compañeros desarrolladores para hacer equipo y crear una app. Se le ve motivado, cauto también, pero muy ilusionado de crear apps y le lleven a generar ingresos extras. No busca, al menos por ahora, un empleo full time de Swift developer, pero no dejado ver una posibilidad de aceptarlo si llega la oportunidad.

17.Jul.23

Vuelta al cole!
Se han terminado las vacaciones.
Momento de retomar donde lo dejé. Tendré que:

  • Establecer un nuevo horario
  • Grabar un episodio
  • Retomar el proyecto final
  • Dar un repaso a las clases grabadas
  • Terminar de leer los libros que compré
  • Contestar la encuesta del bootcamp
  • Hacer la entrevista mañana por la tarde

⠀Episodio K: Kilimetrando el camino. Publicado!
1.693 reproducciones

15.Jul.23

Se han terminado las vacaciones. Desde el 26 de junio que

7.Jul.23

Hoy ha sido la reunión para presentarnos una empresa de consultoría de software que está buscando personal para desarrollar iOS. En principio son 15 desarrolladores los que buscan, del bootcamp está ya incorporada una persona desde hace tres semanas, otra que se incorporará en agosto, y buscan a más personas que pasen por un proceso de selección por supuesto.

Tengo que mejorar mi perfil de LinkedIn, aunque sin experiencia en el sector tampoco tengo mucho que actualizar. Quizá poner proyectos y habilidades.

En un rato más tendremos la reunión del fin del
Bootcamp a ver que nos cuentan.

Aunque estando de vacaciones mi cerebro está demasiado relajado y no me permite pensar en código, en estudiar, ni siquiera en contestar la encuesta del bootcamp que nos han pedido responder. El próximo viernes llegaré a Zaragoza y el lunes espero ya ponerme en modo proyecto y búsqueda de empleo.

23.Jun.23

Episodio J: Justificando unas vacaciones Publicado!
1528 reproducciones

Fin de las clases del bootcamp

5 meses de clases, + de 950 horas de práctica, de 10 módulos de programa, de 45 proyectos de práctica, 2 mini apps y cientos de líneas de código.

Una montaña rusa de emociones, de la frustración a la felicidad, por el orgullo, la ilusión, la ansiedad, la inseguridad, el cólera, la irritabilidad, la inspiración y valentía.
Toca el momento de darme un descanso, de tomármelo un poco más lento, de bajar las revoluciones.
Este bootcamp si todo se encamina a lo que me he planteado será la mejor decisión que he tomado de esta mudanza profesional.

21.Jun.23

3 días para terminar el bootcamp. He preparado hoy el episodio J y estos 5 meses he estudiado un poco más de 950 horas.
Quizá me enfoco demasiado en las horas, pero la práctica, la dedicación, el reservar tiempo únicamente a aprender y repetir es la manera de obtener experiencia. “Horas de vuelo”. A los pilotos se les mide la experiencia y conocimiento en horas de vuelo (entre otros factores), entre más horas de vuelo de entiende que tienes más experiencia y estás mejor preparado para más desafíos. Es por ello que lo tengo mucho en consideración, no es el único factor, porque al principio de esta andadura esa práctica era con temas básicos y se hizo un poco repetitiva sin profundizar demasiado, sin embargo sentó las bases para el bootcamp, para toda esa información y conocimiento que me ha venido y sobre todo a la velocidad que he tenido que asimilarlo.
Ha sido la mejor decisión el haberme tomado este “periodo sabático” y centrarme únicamente en aprender a programar, seguir trabajando y disminuir las horas de estudio y hacer el bootcamp hubiera sido extenuante.
Tengo confianza en lo que he aprendido, falta que esta titulación avale ante las empresas a las que postule para un puesto y enfrentarme a la realidad.

20.Jun.23

Hemos hecho una app de chat, utilizando chatgp3. Aunque como no lo he contratado, no responde claro. Una interfaz de chat bastante más fácil de hacer de lo que me imaginaba. Con animaciones sencillas pero que dan un efecto resultón.

19.Jun.23

Una semana de bootcamp es lo que me queda. Me sorprende lo rápido que ha pasado, aún recuerdo cuando tenía esa emoción por comenzar. El primer día todos contentos y con mucha ilusión.
El primer mes fue lento, los días duraban mucho, era el cambio de una rutina diaria a otra completamente distinta. A partir de ahí, las semanas pasaron y pasaron cada vez más rapido, se volvió parte de mi vida. Sabia lo que me esperaba con lo cual la asimilación era más rápida, menos sorpresas y menos incertidumbre.

Ahora este camino ha llegado a su destino, un lugar donde viven muchos desarrolladores iOS, que tienen en común ese conocimiento, ese interés. Viven de ello, habrá gente que emigre a otros lugares, cambiando o ampliando sus conocimientos, otros quizá vivan aquí y en otro lugar dependiendo de su proyecto. Hay que nació aquí, toda su vida ha sido desarrollador y se especializó en Swift en cuando pudo. Pertenecen a este territorio informático o ingenieros en ciencias de la computación.
He emigrado del territorio de las ventas, del comercio al menudeo y ahora, una vez que termine, para poder asentarme en esta ciudad tendré que conseguir una fuente de ingresos. Ser parte de esta ciudad de desarrolladores iOS tiene ese requisito: vivir del desarrollo nativo en iOS.

18.Jun.23

Esto leyendo ahora el libro de big mountain studio de SwiftUI, pequeños grandes descubrimientos sobre las vistas.

16.Jun.23

Estamos trabajando con el framework Vision para el reconocimiento de manos, animales, códigos de barras y algún otro. En tiempo real con la cámara haciendo vídeo, así que cuando detecta un objeto lo enmarca y pone el texto del objeto que es.

Le he enseñado a mi mujer y a mi sobrina, al medio día cuando logré hacer que funcionara. En la cocina con algunos vasos y botellas. Cuando detectó varios vasos los enmarcó y puso en inglés glass debajo de cada uno de ellos.
A lo que mi mujer dijo: ¡Mira le pone cuadritos!
Me reí mucho.

15.Jun.23

El libro de CoreData de BigMountainStudios está siendo una buena inversión. Es Justo lo que sentía que me hacía falta por aprender, muchos detalles en relaciones de las tablas y su interacción. Explicado de una manera sencilla de entender, visual, con ejemplos prácticos y claros, ahondando en lo que en el bootcamp pasamos muy rápidamente. Sin el bootcamp no habría tenido las bases para poder poner datos de prueba en las previews para los ejemplos.

Necesito ahora este tipo de tutoriales e información que ahonden en el tema y no se queden en la superficie. Al ya poder comprender y tener el background ese primer grado de especialización es alcanzable. Con el tiempo podré comprender esos temas más complejos, más especializados que veo en algunos posts.

14..Jun.23

El libro de CoreData de BigMountainStudios está siendo una buena inversión. Es Justo lo que sentía que me hacía falta por aprender, muchos detalles en relaciones de las tablas y su interacción. Explicado de una manera sencilla de entender, visual, con ejemplos prácticos y claros, ahondando en lo que en el bootcamp pasamos muy rápidamente. Sin el bootcamp no habría tenido las bases para poder poner datos de prueba en las previews para los ejemplos.

Necesito ahora este tipo de tutoriales e información que ahonden en el tema y no se queden en la superficie. Al ya poder comprender y tener el background ese primer grado de especialización es alcanzable. Con el tiempo podré comprender esos temas más complejos, más especializados que veo en algunos posts.

13..Jun.23

Hemos visto los modelos de entrenamiento de ML, y hemos entrenado, rápido y mal a uno para que rque conociera personajes de anima, en mi caso de DragonBall. Con tan pocas imágenes y malas, no ha podido inferir si las imágenes que le pasábamos que probable era las que tenía “identificadas”.
Por lo tanto fallaba demasiado.
Hay una pagina con muchos recursos (datasets) que puedes descargar para entrenar modelos, otra pagina de apple con modelos ya entrenados. Que solamente tienes que descargar y añadir a la app. Obviamente con su codigo correspondiente para su uso, que funcionan mucho mejor en cuanto a detección de objetos.

No se me ocurre alguna idea práctica que pueda implantar con estos modelos, todavía, y menos en la app. Así que tendré que darle una vuelta, pero me sorprende lo fácil que es ahora usar los modelos. Entrenarlos es laborioso.

12..Jun.23

Hoy comenzamos el módulo Machine Learning. Primer día de teoría, un repaso sobre la evolución que ha tenido hasta hoy la inteligencia artificial y como apple lo integró en su momento desde el iPhone X para que los desarrolladores pudieran comenzar a utilizar las herramientas como CoreML.

09.Jun.23

1.412 reproducciones
Episodio I: Implicando a mi mujer
Publicado!

07.Jun.23

Quizá deba grabar este viernes 9 y el próximo viernes 23 o sábado 24, una vez termine el bootcamp, irme de vacaciones y volver o incluso grabar allá.
He avanzado en el proyecto final, hemos definido la información que debe llevar las vistas que se mostrarán en la app, después he hecho el screen flow y los primeros bosquejos de las vistas.
Me he suscrito a Midjourney que me ayudará a generar las imágenes de la app, le pediré a mi sobrina, estos días que esta aquí si quiere ayudarnos con eso. El sábado por la tarde tuvimos sesión de app y participó. Me da gusto involucrar a mi mujer y a mi sobrina, me dan otros puntos de vista. Intento escuchar sus ideas y no imponer las mias, para tener solo mis ideas podría hacerlo solo, pero su punto de vista es diferente y puedo ver más allá de mi visión original.
Cerca de 5 horas le he dedicado, y ha sido provechoso. Estas 2 semanas que quedan tendré que dedicarle suficiente tiempo para que en mis vacaciones esté un poco más relajado, pueda ver vídeos de la WWDC2023, genere las imágenes y los retoques finales, para que al volver sea e comenzar a escribir código.

06.Jun.23

¿Debería twittear más? Veo que todo el mundo lleva el hype de la WWDC, de las novedades, de los nuevos productos y me pregunto
¿en que medida me entusiasma eso?
No es un producto que me gustaría tener ahora mismo. Le falta años de mejora. He de aceptar que en la Presentación me imaginaba viendo una película con las gafas, ese manera tan sutil que tiene el marketing de llegar en profundidad y despertar el deseo. Son caras y no hay de momento muchas aplicaciones desarrolladas para ellas.
Las novedades del sistema operativo dan el aviso a los desarrolladores de que apple creo que son una señal de lo que puede hacerse, de cómo se van comiendo a apps que tengan ciertas funcionalidades. La aplicación de journal que han presentado, dejará fuera muchas aplicaciones que hagan lo mismo con una calidad más baja. Las nuevas funcionalidades del Apple Watch para ciclismo, exigirán a apps similares que se esfuercen por ofrecer más de lo que han implementado.

05.Jun.23

Episodio H: Hilvanando fuentes publicado!
1.393 reproducciones
Ha comenzado la WWDC 2023!
Han presentado Vision Pro, gafas de realidad virtual que todo el mundo esperaba.
La gente no iba a quedar satisfecha con lo presentado, su opinión de basa en lo que le han faltado, en lo que no han pensado y los errores que han cometido.
La primera parte, donde presentan las novedades del sistema operativo, me parece el escaparate donde muestran aquellas funcionalidades que para los que estén interesados en la tecnología y no sean expertos sean los portavoces de lo que se podrá hacer. Un puente para acercar a que todo el mundo pueda aprender a programar, a transmitir el uso de funcionalidades para los no-tecnólogos. De todas las funcionalidades del teléfono y su sistema operativo no utilizamos el 100%, muchas son totalmente desconocidas. Y ese es el momento de darles bombo y platillo.
Quedarán cientos de vídeos técnicos por ver, que muchos desarrolladores ni siquiera verán, porque de todas las funcionalidades de las que podemos desarrollar no las usamos ni las conocemos la mayoría.
Las preguntas que me quedan son
¿ahora tengo que aprender esto?
¿Ahora lo tengo que aprender de esta manera?
¿Todo lo que he aprendido vale de algo?
La respuesta es si, si y si.
Dice ChatGPT que el primer teléfono móvil se vendió en 1983, el primero coche en 1.886 y la primera emisión de televisión pública en 1928, aunque la televisión se hizo comercialmente pública hasta 1950. Todos los productos necesitan años de innovación para alcanzar una madurez. Las gafas para Apple acaban de nacer, aunque el producto tenga ya varios años, queda que la compañía tenga la constancia suficiente para seguir iterando sobre el producto.

03.Jun.23

He terminado de leer y libro de Brais Moure Git y GitHub. Me tendré que ver el vídeo, aunque creo que muchos conceptos me han quedado claros con la teoría, el módulo pre-grabado de git del bootcamp y lo que me contó un compañero del bootcamp en una videollamada.
Siempre quedará como libro de consulta por los comandos hasta que los utilice lo suficiente.

01.Jun.23

Hoy he aprovechado la oferta de big mountain studio para comprar dos libros a los que ya les había echado el ojo. Uno sobre CoreData y otro sobre SwiftUI. Con 40% de descuento y recomendado por el profesor. He aguantado la tentación de comprarlos desde hace 1 mes sabiendo que con la WWDC 2023 pondrían un jugoso descuento.
He estado practicando ya lo último que me quedaba del módulo de desarrollo seguro, aún queda otra clase que repasar. Me siento entusiasmado porque he podido hacer lo que tenía en mi cabeza. El ejemplo que desarrolló el profesor en clase, con mis variantes.
Básicamente son 3 ejemplos. Uno cifrar un texto, para después descifrarlo. Otro generar el hash y guardarlo en la carpeta documentos, en user defaults y en la keychain. El último de un listado de personas cifrar únicamente el email para guardarlo cifrado.
Aunque ha simple vista, por la cadena de caracteres con la que es representado, el hash o el hash criptográfico y el texto cifrado parecen ser la misma cosa, no lo son. El primero cifra el texto para después obtenerlo, el otro es el “sello de garantía” de que ese texto no ha sido modificado en ningún momento, ( normalmente en la transmisión entre dispositivos ) y que es exactamente lo que se ha remitido.
Me ha costado verlo, pero practicando lo he comprendido.
Además he puesto ese feedback (necesario) al usuario de que al pulsar el botón la app ha realizado la acción. Una pantalla que muestra un círculo con un candado, o un documento con un candando que gira durante dos segundos para después desaparecer.
He comprobado que se guardaba en los destinos correspondientes, menos en el Keychain al que no tenemos acceso por seguridad. El Keychain es como la bóveda del banco, al que tu vas pides lo que tienes guardado y si es así te lo da, pero tú no puedes entrar ahí.

28.May.23

Aunque no he llegado a las 50 horas. Esta semana para tener visitas en casa y estudiar lo he hecho bastante bien. Mientras ellos descansaban, yo estudiaba un poco. Rascando minutos del tiempo sin descuidar y procurando estar también con ellos.
Estoy haciendo algunos diagramas a manera de repaso sobre el cifrado de información. Ver en un esquema lo que implica el cifrado me facilita comprender

26.May.23

Tenemos visitas. Mi cuñado y mi sobrina. El de quedará hasta el martes y mi sobrina hasta el 30 de junio. Así que tengo que ingeniármelas un poco para no perder la constancia. Hoy me he despertado y me he puesto a estudiar hasta que se han levantado y hemos desayunado juntos. Después he vuelto otro rato al ordenador mientras se preparaban para salir y hemos estado casi todo el día fuera. Yo he vuelto a las 17:00 para repasar un poco y estar listo para la clase.
Esta semana veo complicado llegar al objetivo de horas. Incluso grabar el episodio.

25.May.23

Hoy ha tocado estudiar un poco y mudarme de sitio. Llegan visitas y utilizarán mi estudio-dormitorio para quedarse unos días. Así que toca hacer los preparativos. Menos horas de estudio, pero se puede compatibilizar.

23.May.23

Hemos avanzado en el proyecto de App. Ha tocado definir el modo de juego. Hacer una simulación.
Será una App en la que tienes que ir completando acciones diarias, fáciles, unidireccionales y que no requieran mucho esfuerzo, pequeños detalles de pareja. Realizarlas te dará 1 punto, conseguir rachas semanales, quincenales y mensuales ye dará insignias por racha. Esos puntos los puedes canjear por actividades, que tienen un coste y te dan ciertos puntos e insignias de actividades. Ir acumulando insignias te da materiales, que te permiten ir escalando en una escalera al conseguirlos.
Los nombres aún no están definidos, pero la idea del juego inicial es esa. Engancharte para que vayas realizando actividades con tu pareja y puedas ver el avance.
Espero esta semana hacer una simulación de juego para darnos una idea del volumen de puntos que se puedan conseguir y ver si es “jugable”.
También definir los campos, tablas y relaciones de la base de datos.
El diseño de las insignias pensaba hacerlo con la ayuda de Midjourney.

22.May.23

Hemos visto de manera muy sencilla y rápida como implementar en un servidor una base de datos. Cómo crear la tabla, hacer la lógica y las respuesta que daria el servidor.
Me ha parecido sencillo, aunque es una implementación muy pequeña. Tengo la intención de cómprame un libro de vapor, al que le tengo echado el ojo de Tibor Bödecs Server Side Swift 49€ el que espero esté de promoción cuando comience la WWDC 2023. También el libro de Core Data de Big Mountain 97€

18.May.23

Estoy pensando en comprar el libro de big mountain Studio. Aunque no estoy seguro cual. SwiftUI views, Animations o CoreData .
Esperaré a que empiece la WWDC a ver si dan algún descuento especial, si no hay ningún cambio con CoreData, creo que es el que debería comprar. Si hay un nuevo CoreData alguno de los otros dos.

17.May.23

Hemos terminado una mini-app de trazos. Una aplicación de tipo documentos, en el que tienes un lienzo en el que puedes trazar líneas de diferentes grosores y colores. Que se guarda automáticamente después de cada trazo y de la que generas un archivo nuevo por cada lienzo.
No hemos puesto opciones como borrar, deshacer, pero me sorprende lo fácil que ha sido, con básicamente 4 archivos queda implementada esa mini-app.

16.May.23

Anoche, como muchas noches sueño con la clase. Pero hoy me ha dado la sensación de haber tomado la misma clase otra vez en mi sueño. Es como repasar lo mismo que hemos visto en clase, pero en mi sueño.
Es como si mi cerebro asimilara los conocimientos dados en clase.

15.May.23

He comenzado a vislumbrar como podría ser el modo de juego de la app. Estoy entusiasmado porque Nicole se está involucrando con este proyecto, eso si ha pedido su crédito respectivo dentro de la app. “Con la ayuda de” o “co-planifiadora

14.May.23

Estoy comenzando a tener un poco de ansiedad por el proyecto final. Intento relajarme diciéndome que tengo suficiente tiempo todavía.
Hoy ha sido dia de descanso, así que me he resistido para no encender el Mac mini haciendo alguna tarea de casa.
Tengo suficiente tiempo, me gustaría tener tiempo para la planificación, pero también para seguir practicando los temas que estamos viendo. Mi idea es terminar las clases el 23 de junio y tener ya toda la planificación hecha y que quede la parte de código. Que digo yo en 55 dias me dará tiempo.


13.May.23

Episodio G Germinando mi proyecto de app. Publicado
1295 reproducciones

12.May.23

Hoy espero dar ese segundo análisis a la app de matrimonio, para ir definiendo lo que implicara y como se hará.
No me gustaría, no quiero comenzar a picar código sin tener claramente lo que voy a hacer y como quedará. No quiero estar cambiando los requerimientos, ni el alcance. Excepto por aquello que me sea demasiado complicado implementar, pero de eso me tendría que dar cuenta en la implementación.
Episodio G: Germinando mi proyecto de app. Grabado!
Lo he editado en garage band y exportado a mp3. No me ha dado tiempo de publicarlo.
Lu he subido a adobe podcast para que mejorará el audio. Ha quitado el eco, aunque creo que me ha cambiado el tono de voz. Así que no creo que publique esa versión. Aun tengo que decidirlo. Mañana espero tenerlo.

11.May.23

Practicando CRUD en CoreData me encuentro comportamientos incomprensibles, como que se vayan grabando datos en la base de pruebas de la preview, añadiéndose cada vez que que refresca.
He logrado añadir nuevos registros CREATE, y editar la tabla de actividades, y la tabla relacionada comentarios pero no consigo que se refresque la pantalla con esa información, que la vuelva a cargar. He descargado una app para abrir la base de datos de SQLite y confirmo que se guarda. Queda probar porque no se muestra al abrir de nuevo el detalle de la actividad.
Cuarto día de ñl módulo de seguridad y es cuando comienza a tomar sentido el cifrado y el descifrado de la información para el envío de un “mensaje” entre cliente y servidor. Ha sido un poco cómplices entender, mientras el profesor resolvía algunas dudas yo buscaba por internet un diagrama que me clarificara esa teoría de manera visual.
No era el único al que se le dificultaba entender la explicación. Al final ha quedado claro.
Eso me lleva a pensar ¿En que porcentaje podría decir que he aprovechado el curso? ¿Cuánto conocimiento del total que se nos ha dado he conseguido adquirir realmente? Quizá la manera de saberlo es con el proyecto final. Cuánto podré aplicar, cuanto lo haré con buenas prácticas y como será el resultado final.

10.May.23

Nic me ha ayudado ha hacer el análisis de la última opción que tenía de proyecto de app. La de presupuestos de trabajos de autónomos. Que básicamente es llevar el control de leads, presupuestos hechos, aceptados y cobrados de un fontanero, electricista o instalador. Me ha gustado la idea, aunque no para proyecto del bootcamp. Porque aunque es sencillo, es a la vez complejo lo que me interesa que incluya, y nl integra demasiado bien una API de red, básicamente porque no es necesario. Así que ella idea ganadora es la de matrimonio app.
Hoy primera clase práctica de seguridad. ¿Como asegurarse de que la llave que está abriendo la cerradura es la que corresponde a esa persona y es la correcta sin guardar una copia de la llave?
Guardando una referencia secreta de puntos que me digan si esos puntos coinciden con la forma de la llave.
Aunque al principio de la clase me ha costado un poco seguir el porque nos explicaba de UTF8, Data, Hash y base64. Cuando hemos llegado al momento de saber como validar la contraseña de un usuario ha quedado un poco más claro.

9.May.23

Segundo día teórico de desarrollo seguro. La cantidad de vulnerabilidades de los sistemas que utilizamos día a día que han sido explotadlas, pero como los perjudicados son otros y las noticias no dan la suficiente información porque no son medios especializados nos enteramos mal de lo que realmente ha sucedido.
Las empresas van parcheando los fallos que ya han encontrados. Reaccionan a lo que ya han intentado los malos así que siempre hay hueco para ese riesgo, que aunque sea pequeño permitiría un desastre.

6.May.23

Creo que debería ponerme ya a planificar el proyecto del bootcamp. Hoy, según lo planeado, tocaba tutoría pero por temas de la mudanza del profesor se ha pospuesto. Ayer comentó que le gustaría saber cómo íbamos con el proyecto. Hay quien ya está trabajando en ello. Yo ni siquiera he empezado.
Así que tocará planificar todo, este mes o estos dos meses que quedan, antes de tocar una línea de código me gustaría tener todo bien claro para ir por el camino más directo posible y no tener que cambiar de rumbo a mitad.
Me encuentro que no se como empezar, ¿como se comienza con esto? Tocará buscar información y escribir en la pizarra.
Por la tarde de hoy me he puesto 4 horas a analizar la idea que tenía de app para el proyecto final.
Comencé buscando las preguntas que debía hacerme sobre la app. Descripción, por qué, para quien, problema que resuelve. Y me di cuenta que debía cumplir con dos especificaciones.

4.May.23

He terminado de estudiar TDD y test. Hoy comienzo con Core Data.
Me ha dado una sensación abrumadora porque cada nuevo tema es como un peso más con el que debes andar cuando creas una aplicación. Atrás quedó cuando era una pantalla y tres o cuatro archivos. El bagaje de conocimientos que debes tener para crear una app robusta se va haciendo mayor conforme te especializas, conforme profundizas.
Es complicado aprendérselo todo de memoria, al crear un proyecto nuevo he tenido que ir a buscar cómo era el método para decodificar un json. Lo he vuelto a escribir en el nuevo proyecto, la diferencia es que ahora sé que es lo que hace cada línea. Aunque siempre el no saberlo de memoria hace que me entren las dudas, me deja la mente en blanco y tengo que aceptar que no es así, que no es un fracaso ni significa que no estoy aprendiendo sino fluye la escritura del código. No es una sensación agradable.
He terminado el libro de Testing Swift de Paul Hudson. Se nota que esta desactualizado, algunos métodos y propiedades que usa han quedado obsoletos (deprecated) otros han entrado en desuso. Alguna parte me la he saltado, porque no le he visto sentido dedicarle el tiempo en ese momento, se salía de mi intención de lo que tenía en mente practicar. Siempre es una buena guía otro mentor, otra manera de entender el código.
Por ejemplo, hoy he aprendido cómo abstraer en dos métodos, uno creando mi propio XCTAssert para propiedades @Published y otro para consultas a CoreData a través del NSManagedObject. El primero de Paul Hudson y el segundo de Julio César Fernández.
Ambos son fruto de una refactorización de código. Código repetido abstraído en un método que sea polivalente.
Me ha dado gusto pensar que, Justo antes de que nos enseñara ese método de búsqueda, estar pensando que podría poner en otro archivo un listado de métodos al que llamar en una sola línea. Como si mi abstracción estuviera a mitad de camino de la de él. Me he sentido en el camino correcto, a falta de experiencia y conocimiento. Una versión scalated de mi profe que es RX si lo ponemos en términos de Crossfit.

2.May.23

Hoy ha tocado repaso de Test y TDD. He retomado el libro de Paul Hudson Testing Swift y me ha dado gusto darme cuenta entender mucho de lo que hace tiempo solo veía como teoría.
Me gusta ver diferentes puntos de vista, diferentes maneras de explicar lo mismo, de enseñar el mismo tema por diferentes personas. Tomar lo mejor de ello y que me quede más claro.

1.May.23

Episodio F: Fortalenciendo las bases publicado!
1.257 reproducciones

25.Abr.23

He subido ya el proyecto terminando de la app de anime. Aunque siempre se puede mejorar tengo que cumplir con la entrega. Seguiré añadiendo alguna funcionalidad, también quiero añadir tests para que sea un proyecto que pueda mostrar.
Hemos hecho un proyecto en UIKit haciendo TDD. Modelo, persistencia, Logica.
Siguiendo la metodología, y al final cuando hemos ejecutado el simulador la tabla con la información de los animes ha salido a la primera.
La práctica, siento que ahora voy más suelto, a base de repetir, de entender los componentes y seguir un método. He podido seguir la clase haciendo al mismo tiempo el proyecto y los tests. Cuando me rezagaba podía seguir los pasos por mi cuenta.
Es una alegría cuando ves los resultados de las horas dedicadas a esto, cuando sientes esa soltura, esa confianza de que así es como debe hacerse.

24.Abr.23

Hoy ha tocado refactorizar código. La app de Anime del ejercicio de SwiftUI. He arreglado pequeños detalles que tenía en un listado.
Este refactoring me está ayudando a comprender mejor el funcionamiento, a cómo se entrelazan las partes.
Aunque al final del día me he metido en el refactoring de la ordenación para dos vistas y hacerlo desde un solo sitio. No lo he terminado.
Tampoco está refrescando la vista de vistos cuando marco alguno desde la pantalla de detalle y no entiendo porque. Hoy espero arreglar eso y terminar.

23.Abr.23

Me he comprado el libro de Git: GitHub de Brais Moure.

21.Abr.23

He terminado con el ejercicio de app de biblioteca de animes.
Al menos con el enunciado obligatorio y el opcional.

He hecho un “backlog” con aquello que quiero mejorar. Me gustaría limpiarla un poco. He hecho vistas que no necesito, añadido información que no he usado y quizá lo más importante dejar la fuente de la verdad, ahí donde van todos los datos en una sola clase y no en dos como tengo ahora. Este fin de semana quiero terminarla para pasar a meterme de lleno con los tests. De los que no he practicado nada aún.

Estoy contento con cómo ha quedado. Las animaciones, y el diseño. Pudiera ser mejor, pero a manera de práctica me parece que es suficiente.

20.Abr.23

Me he comprado el libro Diseño Ágil con TDD de Carlos Blé. Recomendado por un compañero del bootcamp. Ahora que empezamos con el módulo de testing.
He pasado de tener una imagen, a pensar que

¿¡pero si se escribe el triple de líneas de código con los test que el código que se está probando!?

A cada vez ir un poco más rápido avanzando por el

Red – Green – Refactor

En cada método.
Con experiencia será cada vez más rapido:

  • escribir la cabecera método que necesitas
  • escribir las formas en que podría fallar, el test.
  • asegurarse que el test que has escrito falle realmente
  • probar que el test se puede pasar, escribiendo en el método con lo mínimo necesario
  • implantar el método con lo que debe hacer

Ir avanzando de esa manera me de ría hacer sentir más seguro sobre el código que voy escribiendo.

Si no, ¿como sabes que lo que escribes realmente hace lo que tiene que hacer? Y sobre todo ¿como te aseguras de que si cambias algo todo sigue funcionando?

18.Abr.23

Quedan dos meses de bootcamp. Aun queda mucho por aprender y muchos temas de los que se vienen son de los que menos he tocado, quizá los había escuchado pero otros puede que ni siquiera sabía que existían.

Ayer terminé con el enunciado del ejercicio de app de SwiftUI de anime obligatorios. Hoy comenzare con los opcionales, me gustaría terminarlos pronto y practicar con otra app lo que hemos visto que no he podido practicarlo. La app de movieDB por ejemplo con ese llamada a la API tan rebuscada. También los efectos de transición entre pantallas que no he practicado.

Hemos comenzado con Test unitarios y TDD. Como primera clase del módulo es teórico. Un poco de historia, conceptos, herramientas, ejemplos y la metodología.

Los test vistos así parece una requerimiento más, que añade una carga más que debe ser cumplimentada. Más código a escribir y asegurar que funcione. Por la poca experiencia que tengo con los tests, me parece un control de calidad acorde al producto que fabricamos, es decir, a todos los productos se les prueba su calidad, resistencia y seguridad, ¿por qué el software tendría que ser diferente?

17.Abr.23

La clase de inglés del viernes me ha dejado pensando.
He dejado de ver las clases como clases en si, lo estoy tomando como si fuera li oportunidad para conocer a una persona de otra nacionalidad, de un país diferente y hablar con ella. Eso me hace estar mucho más relajado y al estar relajado siento que puedo hablar más fluido.
Me doy cuenta que puedo expresarme, quizá ideas más complejas me cuesta más, por la falta de vocabulario, o quizá sea la adopción del vocabulario que entiendo cuando lo leo o escucho pero no llego a utilizar al hablar, es como si no lo encontrara en mi archivo de PalabrasCuandoHablo. Será leer palabras y que piense una frase para usarlas.
Me divierto, cuento como soy, lo que he hecho, lo que me gusta. Me da la sensación o eso quiero creer que entusiasmo a la persona con la que hablo. Nos reímos un poco y me doy la oportunidad de no sentir demasiada vergüenza cuando hablo de mi.

14.Abr.23

Episodio E: Esclareciendo los próximos pasos. ¡Publicado!
1177 Reproducciones

09.Abr.23

Hoy he comenzado con otro ejercicio del bootcamp: Crear un catálogo de películas y series de anime. Esta vez en SwiftUI. Así que hay que cargar los datos, mostrar el listado y el detalle.
Me gustaría hacerlo con un diseño neumorfico, tengo unos diseños hechos del proyecto de Hacking with swift+ y espero poder replicarlo.

08.Abr.23

Hoy han sido las primeras clases de refuerzo del bootcamp. Para quienes se sientan rezagados, con dudas que teman preguntar y demás han puesto clases hasta 23 de junio. Yo me he apuntado. Para repasar y compartir lo aprendido.

03.Abr.23

Hoy he estudiado 6 horas y 36 minutos. Para ser Semana Santa no está mal. Nic está de vacaciones así que se me hace feo dejarla sola 10 horas del dia.
Estoy ahora con la app de ejercicio de BigBang, que según los requisitos del enunciado ya la tengo completada.
Aunque quiero seguir añadiendo funcionalidades a modo de práctica.

31.Mar.23

Anoche me fui a la cama, como todas las noches después del curso, me quedé un rato más añadiendo un NavigationStack a la app de prácticas que estamos haciendo sobre películas. Me fui a dormir y comencé a soñar sobre ordenar el listado y la navegación. Me costó un rato conciliar el sueño, más de lo habitual. Por la mañana recuerdo que soñaba con lo mismo, y me decía a mi mismo que necesitaba soñar otra cosa, que no había descansado.
No era un problema lo que estaba resolviendo, simplemente practicando.
Creo que estos dos últimos meses he estado soñando más o menos igual entre semana.
Aprendiendo Swift.

1.116 reproducciones
Episodio D Creando mis métodos ¡publicado!

30.Mar.23

Hoy ha sido un buen día, entre que he poseído quedar con una amiga y me ha dado tiempo de estudiar 9 horas. Tengo ya casi el “esqueleto” de la app de ejercicio que tiene como tema los episodios de la serie Big Bang Theory.

He intentado hacer un CollectionView dentro de una TableView estática, pero no lo he logrado. Lo he intentado algo asi como una hora. Luego he decidido seguir con los requisitos del enunciado. Quizá mañana vuelva a probar.

28.Mar.23

He empezado con los ejercicios de concurrencia, la descarga de info contenida en un post de WordPress. Justo como hice hace tiempo cuando practicaba para mostrar los post de Próxima Parada Swift con UIKit.
Después de practicar varias veces y aun con todas las veces que practiqué con el patrón callback, combine y Async-await aun tengo que mirar el código. No me lo he aprendido de memoria, pero hay una cosa distinta: lo entiendo mejor. Los errores que me da xCode soy capaz de saber a que se refieren, los ejercicios enunciado sé lo que piden y aunque no recuerdo de memoria el código, puedo ir a buscarlo y aplicarlo al ejercicio.

26.Mar.23

He subido los ejercicios de avanzado y he olvidado mejorar el algoritmo de los números romanos. 😳
Hoy le echaré un ojo.

25.Mar.23

Hoy ha habido tutoría. Algunos han comentado que van avanzando en la idea de su proyecto final, otros como yo aun no lo tenemos claro. También hemos comentado sobre la retroalimentación sobre las clases, el ritmo, la manera de explicar, en general cómo lo llevamos.

Reafirmo la decisión que tomé de dejar de trabajar y enfocarme solo en el bootcamp. Algunos han comentado que se han visto “atropellados”, en primera por la cantidad de información que es y el tiempo que requiere además de la clase diaria de 4 horas, los ejercicios y practicar. Sumado a compatibilizarlo con el trabajo, así que tienen jornadas frenéticas.

Así que yo no hubiera podido tampoco trabajar y hacer el bootcamp. Sería demasiado, encima de dedicarle el fin de semana. No tendría tiempo para nada y creo que hubiera perdido calidad de vida y el aprendizaje sería más lento.

23.Mar.23

Sigo trabajando en el enunciado de los ejercicios Avanzados. Aun me quedan dos o tres. Espero hoy terminarlos. Y pasar al siguiente. Son 3 enunciados en total. Uno de algoritmos, otro de concurrencia y asincronía y el tercero de una mini app de consulta sobre los episodios de la serie Big Bang Theory.

22.Mar.23

Definitivamente resolver algoritmos me gusta, hoy me he pasado prácticamente todo el día intentando resolver el algortimo que a partir de una cadena con un número Romano, devuelva su valor en número Decimal. Con control de errores, validación de la cadena.
He tenido que consultar en internet las reglas de escritura de los números romanos.

21.Mar.23

Hemos comenzado a ver los componentes de SwiftUI.

20.Mar.23

Siento que voy con retraso tengo que

  • [ ] terminar de ver el módulo pre-grabado de Git
  • [ ] ver el módulo pre-grabado de Planificación de proyectos

Principalmente eso. Aunque quiero practicar un poco más

  • [ ] la Diffable data source
  • [ ] crear y hacer el Package con la conexión de red.
  • [ ] la persistencia de datos en local
  • [ ] tabla con celdas de diferente tamaño
  • [ ] background favoritos
  • [ ] añadir visto
  • [ ] añadir rating

Son pequeñas prácticas que quiero hacer y hoy comenzamos con SwiftUI.
No se hasta donde me de tiempo.

Hemos comenzado a ver SwiftUI. La parte teoría que incluye la historia, las ventajas sobre UIKit, los componentes, cómo funciona y coincido con lo que apple dice la mejor manera de hacer apps es con Swift y SwiftUI.

18.Mar.23

Mientras Nic dormía una siesta pude practicar un poco.
Dos hora y media.

17.Mar.23

Reproducciones 1.079
Episodio C Refactorizando la rutina ¡Publicado!

16.Mar.23

Dedicar muchas horas un solo día sin pausas adecuados no es la opción mas productiva. He estado casi 12 horas, poco más de 4 del bootcamp y algo más de 7 practicando y terminé agotado. Mentalmente agotado.

Me costaba seguir la clase. Así que puse toda la atención y el código lo haré mañana, un poco más despejado.

Puede que tenga que comprimir las funciones para no ver demasiado código, demasiadas líneas. Y poder ver mas claramente que estoy tocando. Siento complicado seguir cuando, es como cuando en un libro ya escrito con una historia sencilla, quieres añadir un suceso en el capítulo de introducción, en la presentación de los personajes.
Al alterarlo tienes que ir dos capítulos más adelante y añadir un párrafo que tiene relación con ese suceso, pero claro ahí solo mencionas en un par de líneas que fue lo que pasó en la intro.
Más adelante en la historia, tienes que profundizar, justo en el clímax de la historia, añadiendo un párrafo.
Asi que hay que tener cuidado, la historia debe tener coherencia, no duplicar explicaciones y las referencias deben ser claras para el lector.

Un proyecto lo veo como un libro, separado por capítulos, que son las carpetas donde van los archivos. Esos archivos son las escenas y dentro de la escena el cuerpo. Las extensiones como las notas al pie.

15.Mar.23

¿Como incluir en mi rutina ver vídeos de las WWDC que vaya guardando como favoritos?

Existen montón de tutoriales en YouTube, de post en blogs, pero creo que la fuente de la verdad está en los vídeos que la misma Apple produce. Mismos que están en la app Developer, aunque en el bootcamp nos hemos dado cuenta que algunos han desaparecido… seguramente estar en internet en algún lugar.

Mi nuevo objetivo complementario es ver la mayor cantidad de vídeos de WWDC, no importa que sean de años anteriores, muchas de esas prácticas son atemporales.

Aunque en la app se puede marcar los vídeos para verlos más tarde, podría hacer un listado para el blog.

¿A que hora podría hacer esta nueva actividad? ¿Entre que hábitos?¿Cuánto tiempo le quiero dedicar?¿Cuánto tiempo sería requerido dedicar en una sesión?¿Forma parte de mi objetivo principal? ¿Contaría ese tiempo?

Podría incluirlo después de comer, una media hora al día.

Quizá sea bueno separar, solo para el registro tiempo dedicado a practicar, al bootcamp y a ver recursos (libros, posts, vídeos).
Así me daría una idea general de cómo distribuyo este aprendizaje.

14.Mar.23

UIKit. Es increíble la cantidad de información que no existe en vídeos de una manera accesible sobre el manejo de Storyboards. Muchos vídeos y tutoriales se limitan a enseñar lo mismo.
Algunos de maneras más complejas.

11.Mar.23

Día de descanso

09.Mar.23

Seguimos con el tema del layout. Aun no he necesitado repasar el libro de Modern Autolayout.
Aunque me da gusto de que lo que he estudiado antes del bootcamp, como las constraints, a todo el mundo le cuesta trabajo, que no es un tema fácil el diseño en móviles y que se adapte a varios modelos de iPhone correctamente.
Además de que no estaba tan perdido en lo que he ido estudiando. Lo estoy aprendiendo aunque en diferente orden de como por mi cuenta lo intente aprender.

08.Mar.23

Hoy en el bootcamp hemos comenzado a ver las constraints de los storyboards, que son siempre un dolor de cabeza para que los botones, las etiquetas, imágenes, tablas y demás se queden donde quieres y sobre todo que se vea igual no importa el dispositivo.
Tengo un libro que se llama Modern Auto Layout de Keith Harrison porque quería dominar las constraints.
En el libro viene todo o casi todo sobre el diseño, te explica cada campo, relaciones y demás. Aprendí mucho a través de la práctica y aún recuerdo que no pude hacer una scrollView dentro de otra scrollView si no recuerdo mal.

Hoy he aprendido una metodología, cómo crear las constraints de los elementos de una vista. En (de momento) dos sencillos pasos como anclar los elementos a la pantalla y que éstos mantengan sus proporciones en varios modelos de iPhone. Lo que hay que hacer primero y lo que hay que evitar.
Si ese método funciona puede que me haya estado complicando todo este tiempo la manera en las que he trabajado con los storyboards.

05.Mar.23

He repasado hoy domingo por la tarde. Un poco sobre la ARC (la cuenta automática de referencias) en la documentación oficial de Apple. Algunas partes se me hacían complicadas de entender así que hacía uso del traductor. Me hice un esquema en la pizarra y los ejercicios de ejemplo en el playgrounds. Creo que es buena idea poner notas ahí, aunque lleve mi cuaderno de notas me he dado cuenta que para las dudas voy directamente a xCode y no a la nota que tomo del bootcamp. Aunque realmente tomó la nota para que me ayude a comprender y no tener que ir a buscarla después.

Ha sido una muy buena tarde de estudio, he repasado parte de la asincronía con el patrón callback y he empezado con Combine. No cabe duda que cuanto más practicas más te acercas a la comprensión.
Hoy me ha parecido mucho más claro el repasarlo yo, intentar hacerlo yo solo, solventando los errores de código que me marcaba xCode.

03.Mar.23

Episodio B Desbloqueando Actividades
¡Publicado!
1027 reproducciones

02.Mar.23

Hoy es de esos días en los que a mi cerebro le cuesta asimilar. Cuando te pegas un rato largo intentado entender en teoría algo que ya lo sabías, o que tenías ya idea. Hoy resulta que no.
No queda otra que insistir, que tener paciencia y aceptar que ea más difícil de lo que creía sin dejar de hacerlo.
Al final da sus frutos, aunque termine con la cabeza muy cansada.

28.Feb.23

El jueves de la semana pasada comenzamos con el módulo 2 del bootcamp: Concurrencia y asincronía.
De los 3 maneras que tiene Swift para manejar la asincronía, el patrón callback, Combine y Async-await, las 2 primeras las conocía, incluso de Combine tengo el curso en Udemy de Julio. Async-await lo había escuchado pero no tenía idea del uso de esa nueva librería.

En el pack de libros que compré de Hacking with Swift de Paul Hudson viene uno que es sobre concurrencia. Async-await así que he comenzado a leerlo y practicar para tener algo de idea antes de las clases. Muchas cosas no me quedan del todo claras, pero al menos se por donde va todo. La estructura, los elementos y algunos ejemplos.
Hoy hemos terminado la teoría y mañana me imagino que comenzaremos la práctica que es la mejor manera de comprenderlo.

27.Feb.23

Hoy he publicado el primer post. Lo he titulado Intro.
Es donde expongo mi caso, mis objetivos. Tengo más post por publicar, espero irlo haciendo junto con la publicación del podcast.

He reservado por fin mi primera clase de inglés. Será mañana a las 10:00, no lo he pensado mucho, porque si lo pienso no lo hago, de hecho he estado a un click de no confirmarla.

Lo más difícil es empezar, dar el primer paso. Programar esta primera clase.

25.Feb.23

Hoy ha sido la primera de las tutorías del bootcamp. Me ha gustado que nos diera un panorama general de lo que será el proyecto final. Cada uno hemos comentado como nos sentíamos en este primer mes, como veíamos la dinámica de las clases y si teníamos idea ya del proyecto de app que queremos hacer.
Me gusta mucho la dinámica que se está generando entre los compañeros, los que más saben están dispuestos a ayudar a los que menos experiencia tenemos.
Ha sido 4 horas las que hemos estado en total hablando de nuestras impresiones y dando retroalimentación al Julio.

23.Feb.23

Debería programar mi primera clase de inglés, es para determinar mi nivel y comenzar con las clases. Puede que mañana viernes cuando vuelva de entrenar lo haga. Una clase de 26 minutos. No se porque lo sigo posponiendo. No me entiendo a veces.

Hoy comenzamos a ver concurrencia y asincronía. Cuando nos cuenta de cómo está hecho hoy en día internet, de lo mal o lo poco eficiente que es la comunicación entre puntos. La cantidad de recursos desperdiciados por los dispositivos, por el simple hecho de que tienen potencia de sobra para realizar operaciones. Como están “maquetadas” las aplicaciones, utilizando código mantenido por terceros, del que ni siquiera saben bien cómo funcionan, que opacan el código nativo, poniendo capas sobre él, o que quieren que una app sea una página web, igual para todos los usuarios de la empresa. Como los fabricantes tiene que “obligar” a los desarrolladores a utilizar correctamente el hardware y software que han fabricado haciendo que las tareas se repartan ponderando su carga …
me hace pensar el internet como una ciudad de la Edad Media, sucia, desordenada y endeble. Donde solo unos pocos tienen la mirada en el futuro y de lo que “debería” hacerse y “cómo” debería ser. Eficiente y segura.

22.Feb.23

He comprobado que un apoyo para concentrarme cuando estoy estudiando o practicando es escuchar música clásica. No importa cuál, musica sin letra. Hay versiones de canciones modernas instrumentales que también me sirven. Incluso el sonido de la lluvia.
Está la página rainymood.com, con la que reproduce sonidos de una tormenta.

Si pongo música que me recomienda Spotify me distraigo, no significa que no pueda trabajar, pero me luego me veo mirando la letra, añadiendo esa canción a alguna lista que tengo guardada o cualquier otra cosa que no sea en la que estoy haciendo. Un distractor más identificado.

21.Feb.23

Hoy por fin he comprado las clases de inglés! Aún tengo que programar la primera

18.Feb.23

Hoy intentaré descansar. Aunque me es difícil no pensar en la resolución de los ejercicios de nivel medio que tengo pendientes o querer leer sobre los temas que estamos viendo en el libro de Aprendiendo Swift.

17.Feb.23

Quizá debí dar el paseo del medio día con Kelly. El no bajar y ponerme enseguida con los ejercicios ha hecho que me bloqueara, de pronto es como si mi cerebro no carburara, no procesará, no viera la información.

Es como si tuviera muchas herramientas y no sé cuál usar, si usar la más sofisticada, la programación funcional o las más sencillas, las de nivel básico.

16.Feb.23

¡¡Ya están disponibles para comenzar a la realizar los Enunciados de Nivel Medio!!

Del nivel básico eran 10 algoritmos, nos los dio el 9 de febrero. El que más me gustó era uno que decía:
Cree un programa con un conjunto con el número de elementos que diga el usuario, lleno de números primos. Cree un algoritmo capaz de calcular otro conjunto de números aleatorios que tenga al menos 3 elementos en común con el conjunto inicial.

Había que crear varias funciones dentro, que primero fuera filtrando los elementos del array introducido por el usuario donde solo quedaran los números que fueran primos. Este conjunto tenía que tener al menos 3 números primos. Después crear una función que devolviera un X número de números primos generados aleatoriamente entre 1 y el número máximo encontrado en el conjunto de números primos definido por el usuario. Si había menos de 3 números en común añadir más números primos aleatorios.
Finalmente devolver los números en común.

  • XCTestXCTAssertThrowsErrorEqual

    Releyendo el libro Diseño Ágil con TDD de Carlos Blé Jurado (que recomiendo ampliamente) y practicando los ejercicios que incluye, he hecho esta extensión de XCTest que es función de test que evalúa 3 cosas: 1) La cabecera Primero debemos definir el genérico, en este caso esperamos un Error y que sea Equatable para poder…

  • UIHostingController

    SwiftUI ofrece un UIViewController para UIKit, que le permite gestionar la integración de vistas hechas en SwiftUI y presentarlas como otro UIViewController. En el ejemplo tendríamos una vista de ProfileView con una propiedad opcional delegate conformada con ButtonDelegate, que se encargará de conectar la acción con el UIViewController, mediante un Button. El botón de Salir…

  • TV Maze App Example (Fork)

    Listado series de televisión de la api TVMaze en UIKit Refactorización de arquitectura VIPER a MVC con DiffableDataSource de las tablas de catalogue y favorites, conectando con la vista original detalle en VIPER, conversión de patrón callback a async await con continuations, test con URLProtocol y Mock de DataBase. Añadido CatalogueViewController con diffableDataSource en MVC…

Hoy toca repasar:
• Currificación y Parcialización de funciones
• Funciones puras
• Recursividad
• Memorización

15.Feb.23

T2 Episodio A Re-definiendo Rutinas Publicado
957 reproducciones

12.Feb.23

No he grabado el podcast este fin de semana, pensaba hacer el viernes por la tarde, pero los ejercicios de algoritmos me llevaron más tiempo del que creí. Y luego no el sábado ni hoy me di el tiempo para preparar y grabar.
Me gustaría hacerlo esta semana. Comenzar la temporada 2.

11.Feb.23

Día de descanso

10.Feb.23

Un conteo rápido de las horas dedicadas a estudiar Swift es de 51 horas esta semana. Lo que más importa es todos esos desbloqueos que he conseguido al ir entendiendo en profundidad pequeñas lagunas que tenía. Poco a poco esto irá tomando color ese paisaje en blanco, negro y gris que tengo.

08.Feb.23

El bootcamp va tomando velocidad, hemos terminado la parte básica de Swift, y hemos comenzado con las funciones.
El sentar las bases de todas posibilidades que tienen los componentes del lenguaje es:

Es una sensación de que infrautilizar la herramienta, como quien usa un iPhone solo para llamar por teléfono, o para usar WhatsApp y no conoce el abanico de funcionalidades que le proporciona.

Está apareciendo en mi cabeza información donde antes había lagunas, comenzando a unir puntos se comienzan a esbozar figuras.

06.Feb.23

Me da gusto saber que lo que estamos viendo en clase, en términos generales lo sabía ya. Como siempre hay detalles e información complementaria que estoy aprendiendo, sobre todo cerrando círculos, saber que en términos generales es lo que debo saber del tema.

04.Feb.23

Hoy he decidido no practicar, ha sido una primera semana de entera dedicación a practicar Swift y SwiftUI, con los cursos de HWS+ y el inicio del bootcamp.

No se me esta haciendo tan agotador como pensé que sería, lo disfruto, me divierte y lo encuentro como un reto, con lo que siempre quiero más, quiero seguir.

Los descansos me los estoy tomando en serio, los 10 minutos de reloj, para parar y continuar me permiten estar horas suficientes sin que mi cerebro se canse.

Seguramente esta primera semana no llegaré a las 50 horas, porque el lunes y el martes por la tarde me las tome de descanso antes de iniciar el bootcamp, pero serán muchas más que una semana “normal” de cuando iba a trabajar a la tienda.

La próxima será la primera semana “normal” de bootcamp y de las siguientes 20 semanas, hasta el 23 de junio.

02.Feb.23

Primer día normal de estudio. Por la mañana practicar y a las 19:00 comienza el bootcamp.

Estoy utilizando la técnica de pomodoro 🍅, enfocarme 60 minutos y descansar 10. Puede parecer mucho, pero al ser jornadas tan largas prefiero varios descansos que terminar distrayéndome por cualquier cosa.

Me está gustando mucho, por fin tengo tiempo de dedicar a pensar, a reflexionar el porqué y no solo copiar el código. De momento sigo con vídeos de HWS+, aunque me imagino que pronto tendré que practicar lo que veamos en clase.

01.Feb.23

¡¡Hoy comienza el bootcamp de Swift Full Stack!!

Día a día, estudiar, disfrutar y experimentar. Quiero obtener las herramientas necesarias para ser un buen desarrollador de software.
Quiero ampliar los conocimientos del bootcamp con otros tutoriales, priorizando el temario.
Practicar lo aprendido.

31.Ene.23

Hoy he pensado que estoy ahora sin trabajo. Legalmente es mi último día de vacaciones antes de que comience mi excedencia.

Mi trabajo ahora es aprender a programar. He[mos] invertido dinero en un bootcamp y ahora toca invertir mi tiempo. Solamente el pagar por esa enseñanza no significa que obtendré los conocimientos. Tengo interiorizarlos. A eso solo se llega con dedicación.

Mi objetivo es obtener rendimiento de esa inversión en un tiempo razonable, mejorar mi calidad de vida y dedicar más tiempo a lo que yo considero importante. Vivir tranquilo es para lo es.

Hoy es ese día de transición, tendré por la mañana para estudiar, mientras Nic trabaja, hasta las 6, luego me tomaré el resto de la tarde libre para pasarlo con ella. Antes de entrar de lleno a las clases de 19 a 23 hrs.

He podido estudiar 5 horas hoy. Con la técnica del pomodoro, estudiando 60 minutos, descansando 10. Y hasta 80 minutos de estudio por 10 de descanso.
No importaba lo que hacía cuando tocaba el descanso, lo tomaba, así me quedaba con ganas de volver, de seguir.

El bootcamp empieza mañana!!

30.Ene.23

Hoy estoy agradecido por tener este día de fiesta. A punto de comenzar esta carrera, este salto, esta nueva vida profesional. Ayer y hoy me he tomado de vacaciones, sin estudiar, y disfrutar de mi mujer, de hacer lo que nos gusta, de hablar y estar juntos.

Es también otra parte de porque busco este cambio profesional, para ganar calidad de vida.

28.Ene.23

( Episodio 40 ) -> FinDeCiclo
Publicado!

Reproducciones 924

27.Ene.23

¡Hoy es mi último día en Movistar y el Bootcamp Swift FullStack es en 5 días!

( Episodio 40 ) -> FinDeCiclo
Grabado!

26.Ene.23

¡Sólo me quedan ✌🏼 días trabajando en Movistar y el Bootcamp Swift FullStack es en 5 días!

25.Ene.23

¡Sólo me quedan ☘️ días trabajando en Movistar y el Bootcamp Swift FullStack es en 7 días!

23.Ene.23

¡Sólo me quedan 5️⃣ días trabajando en Movistar y el Bootcamp Swift FullStack es en 9 días!

21.Ene.23

¡Ya sólo me quedan 6️⃣ días en ese escritorio y el Bootcamp Swift FullStack es en 10 días!

20.Ene.23

¡Ya sólo me quedan 🕖 días en ese escritorio y el Bootcamp Swift FullStack es en 12 días!

19.Ene.23

¡Ya sólo me quedan 🎱 días en ese escritorio y el Bootcamp Swift FullStack es en 12 días!

18.Ene.23

¡Ya sólo me quedan 9 días en ese escritorio y el Bootcamp Swift FullStack es en 14 días!

Hoy he comenzado a ver el material pre-grabado del bootcamp. Introducción a la programación. Hay que tener la humildad de aprender desde lo más básico, podría pensar que ya sé que es una variable y una constante, pero siempre hay algo que te permite ampliar los conocimientos , ver otras analogías, asentar o confirmar los que ya sabía.
Re-hacer el puzzle de esos conocimientos y pensar en todo lo que había pasado por alto. Aprender otra manera de hacer lo mismo, quitarme vicios en la forma de crear código.

17.Ene.23

¡Ya sólo me quedan 10 días en ese escritorio y el Bootcamp Swift FullStack es en 14 días!

16.Ene.23

¡Ya sólo me quedan 11 días en ese escritorio y el Bootcamp Swift FullStack es en 16 días!

15.Ene.23

Aprender sobre SwiftUI lo veo muchos más practico que, por ejemplo hoy los genéricos. Que son términos más abstractos y sobre todo a profundidad me encuentro ya en territorio oscuro. Cuando ya los términos están como una capa por debajo de la superficie, las definiciones y los términos y no sé lo que hay que buscar.

Un repaso a todo, crear dudas, quedarme con aquello que comprenda bien e intentar hacer los retos de las lecciones, y sino los puedo resolver tampoco exigirme demasiado, puede que ahora no sea el momento ni esté preparado, ya podré volver a ellos dentro de un tiempo.

14.Ene.23

¡Me quedan 12 días trabajando aquí en Movistar y el Bootcamp Swift FullStack es en 17 días!

Idea: y si ¿a través de juguetes hago analogías sobre programación? Por ejemplo los legos, o los play movil para las interfaces. No lo sé, habría que escribir todo y hacer las analogías antes de nada

13.Ene.23

¡Me quedan 13 días trabajando aquí en Movistar y el Bootcamp Swift FullStack es en 18 días!

Hoy he soñado con que empezaba el bootcamp. El instructor nos hacía unas preguntas, sin siquiera tocar el código. Eran más de lógica, a ver cómo dábamos solución. Y la típica pregunta con trampa de que multiplicas por 0, algo así, no recuerdo la pregunta. Pero nos decía el error en el planteamiento.

Me levanté emocionado y todo.

12.Ene.23

Episodio 39 ¿Matemáticas y Trigonometría para programar?
¡Publicado!
878 Reproducciones

Pensaba grabar solo una parte o alguna sección y al final he grabado todo el episodio. Del 1 al 5 me ha gustado un 2.
A veces se me olvidan las palabras, me quedo en blanco, tengo muchas muletillas, no creo que transmita las ideas como las pienso en lo cabeza.

Quizá deba grabar cuando estoy inspirado, mas que cuando tengo que grabar. Aunque sea una sección.

¡Me quedan 14 días trabajando aquí en Movistar y el Bootcamp Swift FullStack es en 19 días!

11.Ene.23

¡Me quedan 15 días trabajando aquí en Movistar y el Bootcamp Swift FullStack es en 21 días!

Paseando a Kelly he hecho el cálculo en horas: 100… creo que ya no quiero estar en ese trabajo.

10.Ene.23

¡Me quedan 16 días trabajando aquí en Movistar y el Bootcamp Swift FullStack es en 21 días!

Estoy con los vídeos de HWS+ sobre componentes de SwiftUI y me parece 1.000 veces más poderoso que UIKit, más versátil, más fácil de usar.
Como Paul Hudson lo hace tan fácil, el crear componentes reutilizables utilizando herramientas como los Genéricos, View Builders o las animaciones.

He visto un vídeo en el que hacía el logo de Hacking With Swift en un Shape, con curvas de Bezier y se me ha metido hacer en la cabeza el logo del podcast. He estado buscando webs o apps en la que me permita saber los puntos que hay que indicar.
He encontrado una en Android que puede que me sirva, después de descargar varias de ellas y hacer pruebas. Me tiene que permitir poner una imagen de fondo, dibujar la curva de Bezier y dar los puntos en coordenadas de x, y para poder ponerlo en código.

Ya veremos si lo puedo hacer.

09.Ene.23

¡Aún me quedan 17 días trabajando aquí en Movistar y el Bootcamp Swift FullStack es en 22 días!

La semana pasada es la que más he estudiado últimamente 26 horas y media. Trabajando de mañanas y con 1 día de fiesta. Las 50 horas no se ven tan inalcanzables ahora.

08.Ene.23

Estoy en un proyecto practicando los tutoriales de HWS+. En una nota escribiendo lo que incluye, los temas y cada archivo.
Me sirve después para poder ir a consultar si tengo dudas.
Esta semana creo que he pasado de las 15 horas de estudio, aunque hasta mañana que no reciba el correo con el resumen de Toggl no lo sabré con certeza.

07.Ene.23

¡Aún me quedan 18 días trabajando para Movistar y el Bootcamp Swift FullStack es en 25 días!

06.Ene.23

Entre ayer y hoy he podido estudiar 8 horas y media. Con la suscripción a Hacking with Swift estoy ahora con la parte de algoritmos, me parece increíble lo fácil que puede resolverlos, con unas pocas líneas de código, lo legibles que son.
Quizá podría decir que me quedan grandes para lo poco que sé, pero me da una idea más general, más amplia de lo que puede llegar a hacerse. Puedo ver la estructura, la denominación de las variables y funciones.
Tengo que ver los vídeos dos veces, la primera poniendo atención sin tocar código y otra ve para copiarlo.
Ahora no me salen tantos errores, puedo copiar el proyecto base a mano, y luego la implementación que hace en el vídeo y si me da algún error se mas o menos donde ir a buscar para resolverlo.

05.Ene.23

¡Aún me quedan 20 días trabajando para Movistar y el Bootcamp Swift FullStack es en 26 días!

04.Ene.23

Aún me quedan 21 días trabajando para Movistar y el Bootcamp Swift FullStack es en 28 días.

03.Ene.23

¡29 días para iniciar el bootcamp!
Aún me quedan 22 días trabajando para Movistar

2023

31.Dic.22

Episodio 38 Hola 2023 publicado!

Reproducciones 823

30.Dic.22

Podría también hacer en los descansos de estudio, dedicar unos 5 – 10 minutos a hacer yoga. Respiraciones, estiramientos de la columna y algún saludo al sol.

29.Dic.22

¡33 días para iniciar el bootcamp!

Me he puesto en la app de Libros del iPhone para leer el libro de Testing Swift y el cambiado el objetivo de lectura que tiene por defecto que es de 5 min a 30.

Así mientras voy en el autobús puedo leer e ir haciendo el resumen, en una nota de Bear. Puede que no la consulte tan a menudo, pero me ayuda a entender para plasmarlo con mis propias palabras y en español. El resumen del curso de Udemy de programación funcional de Julio César Fernández me ayuda de vez en cuando como referencia sobre las funciones de orden más alto.

28.Dic.22

¡34 días para iniciar el bootcamp!

Vídeo del día: árboles binarios
Puede que no tenga mucho que ver con el bootcamp, o puede que si. Lo que estoy aprendiendo es entender cómo funciona Swift, como se comporta en ciertos casos. Aún no encuentro un caso práctico para estas estructuras de datos, pero me imagino que llegará su momento.

Estoy planeando lo que haré durante el bootcamp. Mi objetivo es estudiar 50 horas a la semana, curso incluido.
Descansar un día a la semana, lo cual se me queda en poco más de 8 horas al día, o 9 si quiero tomarme medio día más libre.

Básicamente es una jornada de trabajo, lo veo factible aunque tendré que crear el hábito y adaptar al cuerpo y la cabeza para procesar información durante todo ese tiempo.

27.Dic.22

Estoy comenzando a leer el libro Testing Swift. Complete Tutorial Course. Learn how writing better tests can help you to build better apps de Paul Hudson de Hacking with Swift. He escuchado tanto su voz en vídeos de YouTube y ahora que estoy suscrito a HWS+ los tutoriales que leo el libro y es como si me lo estuviera narrando.

Puedo ver cómo se va esclareciendo el mundo de los tests, cuál es la razón por la que los tests existen, como se clasifican, y sobre todo como dejar claro cuáles son los alcances en su descripción.

Obviamente me falta mucha práctica, pero el poder ver la imagen completa y no solo piezas de puzzle aisladas, me hace ver todo lo que me falta por aprender. Que ahora sé que es finito, que lo puedo aprender en un lapso de tiempo para poder implementarlo cuando llegue el momento.

No digo que sea poco, sino que es alcanzable.

El libro realmente te evangeliza sobre la razón de los tests. Comienza el libro con la pregunta
¿Por qué los coches tienen frenos?

La respuesta generalmente será correcta, pero no así el motivo de origen: los coches tienen frenos para poder ir más rápido.

Son más seguros al poder frenar y detenerse ante cualquier obstáculo en cualquier momento dado.

26.Dic.22

¡36 días para el bootcamp!

Estoy dando un repaso a la mayor cantidad de temas. En Hacking with Swift Plus estoy con estructuras de datos.
LinkedList – Listas enlazadas
Queues – Colas
Trees – Árboles

Es otra manera de ver cómo se pueden organizar y almacenar datos.

La pregunta es ¿Cuando utilizar cuál?

22.Dic.22

¡40 días para el bootcamp!

He terminado de repasar en Hacking With Swift + los 5 vídeos de Programación Funcional. Ahora mismo siento como mi cabeza sigue con el desbloqueo, con la revelación de

/Como un tipo de variable recibe un Element y devuelve un Bool/

Ha sido un Ajaaa y desde ese momento cada ciertos minutos mi cabeza ( que en segundo plano sigue trabajando) intenta asimilar las implicaciones, los alcances de ello.

Porque ahí está la base de los closures. El fundamento de porque no solo se reciben variables sino también funciones.

Estoy dudando si comprar el pack de libros de HWS que está aún con descuento del 50% son 75€. Para cuando tenga disponible la mañana poder estudiar y ver otro punto de vista de lo que estaremos viendo.

Para practicar, para consultar.

21.Dic.22

¡41 días para el bootcamp!

20.Dic.22

¡42 días para iniciar el bootcamp!

15.Dic.22

Hoy me he suscrito a Hacking With Swift Plus. Por unos 20€ al mes tengo acceso a los vídeos que tiene.
Lo que queda del tiempo intentaré ver un poco de todo, programación funcional, genéricos, opcionales y demás.
En lugar de practicar lo que venía haciendo una y otra vez. Que me de un panorama más amplio, generar dudas, escribirlas.
Es de alguna manera ir calentando, ir preparando mi cabeza para el bootcamp.

13.Dic.22

Episodio 37 publicado!
Reproducciones 767

12.Dic.22

Hoy probaré otra modalidad para grabar. De pie. A ver cómo se da. Quizá deba también poner otro sonido de fondo al iniciar, después del intro, un sonido de fondo que se escuche el autobús.

11.Dic.22

Me hubiera gustado grabar eun episodio hoy, pero he ido posponiéndolo por hacer “arreglos en casa” al menos mi habitación estudio la tengo lista para empezar mañana. Más iluminada y decorada.

08.Dic.22

Ha sido un buen día para estudiar. Siento que puedo corregir un poco más rápido los errores que me voy encontrando. Voy aprendiendo donde buscar y donde ir a solucionarlo. O bien encontrar una solución diferente.

Me siento un poco como en la película de Karate Kit, dar cera pulir cera un poco sobre lo mismo. TableView, CollectionViews, storyboards. Pero de eso de trata, practicar mucho, repetir mucho, para que cuando venga algo nuevo tenga una buena base.

Que ganas de que empiece el Bootcamp.

06.Dic.22

Hoy hemos hecho un FaceTime @promedi y yo. La idea era conocernos, y comenzar un proyecto colaborativo de una app. La dogminder.

Hemos hecho pruebas de hacer Pull Request, commits y push changes. Una vez que lo tengamos dominado, comenzaremos con el proyecto.

03.Dic.22

60 días para empezar el bootcamp
40 dias laborables

La siguiente pregunta es ¿Que tengo que preparar estos dos meses antes de iniciar el bootcamp?

02.Dic.22

El día ha llegado. El preaviso a la empresa de que me voy. Una excedencia voluntaria con pinta de despido. No quería imaginarme cómo sería, ni lo que diría, ni cómo se lo tomarían. Por lo menos anoche pude dormir bien.

¿Cómo le dices a la empresa en la que llevas 8 años que te quieres ir y tener las menos complicaciones posibles?

Es una relación, aunque sea una relación laboral, al final al ser una pyme siempre se crean buenos lazos, con tus compañeros, con tus jefes. Sobre todo cuando te sientes querido, cuando priorizas las relaciones personales sobre el ego o la soberbia.
No digo que sea como una familia, pero si es un lugar donde pasas la mayor parte del día, y con personas con las que hablas y convives más que a veces tu propia familia. Así que el mantener sana esa relación es importante.

Decidí llevar una tarta, el prepararla antes de ir me distraería, no quería pensar, no quería imaginarme escenarios que luego no sucederían.

Había llamado a mi manager preguntando si tenía un hueco porque quería hablar con el y la Jefa, Jefaza. Me preguntó si le daría un disgusto y que si le daría días. A lo primero le contesté que no sabía y a lo Segundo que si.

Quería tener la mañana programada, eso me evitaría tener ansiedad. Así que por la mañana prepare una cita con el fisio a las 9, después volvería y terminaría la tarta, el bizcocho lo tenía ya horneado. Decidí no desayunar.
Preparé el relleno de la tarta, nutella, nata para montar y frambuesas para aportar algo fresco.

A las 11:50 terminé, justo el tiempo para ducharme y salir, iría andando con la tarta en las manos. Unos 20 minutos.

Cuando estaba esperando en la esquina para cruzar, vi a mi compañera, a la jefa jefaza y a mi manager. Yo puntual a la 12:30.
Entre y saludé, y les dije a todos que llevaba tarta, había unas 10 personas en total.
La mayoría de ellos acercaron al office, partí la tarta y la repartí, comenzaron a preguntar que porque había llevado tarta, yo evadía las preguntas, cambiando de tema, o alguien me sacaba de ese momento incómodo en los que estamos varias personas en círculo y se hace un silencio en espera de que alguien diga algo.
Lo primero que se imaginaron es que les iba a decir que iba a ser padre, o que habíamos adoptado. Después de unos minutos, y viendo que la gente no se iría sin que yo dijera unas palabras, o que soltara prenda. Después de que una de mis compañeras insistiera hasta 3 veces que preguntara porque la tarta. Nadie más preguntaba, pero estaban esperando que algo sucediera.

A ella le había ya comentado que quería cambiar de trabajo, que estaba estudiando programación y que estaba buscando trabajo. No sabe nada del podcast, de hecho solo 3 amigos saben de que lo tengo. La tercera vez que preguntó fue cuando ella misma se dio cuenta del motivo de esa tarta. Y comenzó a llorar.
Desde que le conté me dijo que no quería que me marchase de la empresa, que quizá era egoísta por su parte, pero que quizá pudieran ofrecerme algo distinto a lo que venía haciendo como dependiente / comercial de telefonía. La abracé, que estaba a mi lado izquierdo, y les dije que tenía primero que hablar con mi manager y la jefa jefaza. Así que todos salieron.

A ellos les dije que bueno, que no sabía como empezar, que quería una excedencia para poder hacer un curso de programación para desarrollar aplicaciones para iPhone. Que hacía dos años que había comenzado a estudiar y que quería hacer ese curso que duraría 8 meses, de febrero a septiembre y que quería dedicarme al 100%
Ninguno de los dos puso ninguna objeción, casi que los había dejado sin palabras, eso si que era raro. Aceptaron y entendieron mi decisión, quizá por la decisión con la que se los dije, quizá por cómo lo hice, quizá porque me conocen, no lo sé.
Salí y fui a cada despacho a comentar a mis compañeros el motivo de la tarta..
Quizá hubiera dejado la tarta para el final. Porque tuve que repetir todo varias veces, será para la siguiente…

Volví con la Jefa-Jefaza, me dijo que pasaría la carta al gestor para que la revisara, por si hacía falta algún dato.

Salí de la oficina con una muy buena sensación. Una sentimiento bonito, me sentí apreciado por mis compañeros, que había hecho una buena labor, durante los poco más de 8 años que estuve ahí.

Otro punto de la lista… completado.

01.Dic.22

Le he escrito un Whatsapp a una de los dueños de la empresa donde trabajo. Preguntando si estará mañana por la mañana. No he querido decirle directamente que quería hablar con ella por si me evadía o si me daba largas. Creo que la próxima semana del puente se irá de vacaciones. Le he escrito :

Hola (nombre de la jefa, jefaza) oye pensaba llevar algo a la oficina por la mañana, estarás?

me ha contestado que si, que estará de reuniones de 9 a 12 y que luego a las 12 estará en la oficina.

Que nervios!

19:00
Me ha llamado mi jefa y me ha dicho que mañana se le complica. Pero que se le hacía raro que fuera yo a llevar una tarta, (ese era el pretexto que le habia dicho), y que bueno hacía tiempo que quería hablar conmigo. Total hablando de una u otra cosa, me dijo que si bueno que si le quería adelantar que le llamará al final del día.

22:44
He decidido no llamarla. Mañana a las 12 me pasaré por la oficina.

30.Nov.22

Pregunta para inscribirse en oferta de Desarrollador Junior en Infojobs
¿Cómo me puedes convencer de que te apasiona la programación?

Me decidí a aprender a programar en Swift el 21 de diciembre del 2020. He estado aprendiendo por mi cuenta, dedicando las horas que tengo libre a parte del trabajo y de las obligaciones familiares, constantemente desde entonces. Comencé por comprarme el libro de Aprendiendo Swift de Julio César Fernández. Practicando en Swift Playgrounds el el iPad. En febrero del 2021 decidí dar comprarme un Mac mini M1 para indicarme con XCode. Siguiendo tutorial es en YouTube, practicando y con cursos comprados en Udemy de diferentes instructores, me sentí con la suficiente confianza de inscribirme a ofertas de trabajo donde buscaban a desarrolladores Swift junior.
Una consultora me seleccionó, para tomar un curso que ellas dan sin coste de dos semanas para reclutar posibles candidatos. Del curso aprendí muchísimo, sobre todo lo que no sabía que desconocía, como arquitectura, test, github.
Sigo con el objetivo de cambiar de profesión, estoy contando esta aventura en el podcast que tengo para ello que se llama Próxima Parada Swift.
En febrero comenzaré el bootcamp de Apple Coding Academy de Swift FullStack Developer, y con ello poder por fin encontrar mi primer empleo como desarrollador de software en Swift.

29.Nov.22

Hoy me han confirmado el pago por transferencia del bootcamp.

¡¡Estoy formalmente inscrito!!

Había estado trabajado en el proyecto de LotsOf en local. Así que he decidido subirlo a Github y comenzar a guardar los cambios ahí también.

Tenía un poco desordenadas las branches por algunas pruebas que hice, y no estaba seguro de dónde estaba guardando los commits.

¿Cómo empezar a tocar, sin saber, para organizar y subir todo al repositorio en GitHub?
Lo primero me hice un copia de la carpeta en un zip. Lo tengo guardado también en Time Machine, pero ese no lo cuento.

Cree primero el repositorio en GitHub. Después añadí un branch remoto, pero no sincronizaba. Tras una búsqueda encontré que podría ser por un conflicto en las branch.
Cree una nueva, asegurándome que los últimos cambios estuvieran ahí. Y borre el resto.
Después xCode me pedía el Token. Lo re-genere en mi cuenta de GitHub y por fin
logré hacer el Push.

27.Nov.22

He estado practicando structs con sus respectivos test.

He buscado como obtener los dígitos de control de: ICC, DNI, IMEI, ISBN. He incorporado el algoritmo para validarlo como modelo de cada uno. Hay que introducir los dígitos en texto, validar que coincidan con un formato válido, generar el dígito de control y generar el número de serie completo.

Trabajar con los test es como trabajar con Swift Playgrounds, no hay que crear una pantalla para mostrar los datos; sino utilizar los XCTAssert para validar las variables calculadas.

Practicar, practicar y practicar.

25.Nov.22

Decidido el próximo viernes 2 de diciembre hablaré con la empresa y pediré la excedencia.
¿Cómo se pide una excedencia voluntaria con pinta de renuncia a la empresa en la que llevas 8 años trabajando?
Es una pyme, hay buena relación, pienso decirle a una de los dueños por WhatsApp el día anterior si estará en la oficina, yo trabajo de tardes, con la excusa de que llevaré algo, pienso llevar un bizcocho (y una carpeta).
Como la oficina no tiene puertas quizá lo mejor sea que le diga que tomemos un café fuera.
De lo de éste viernes solo le he dicho a una de mis dos compañeras, con las que trabajo día a día.
También quiero que esté mi Manager, a quien le diré un día antes también, me preguntará seguramente porque, y le diré que después de la reunión le daré más información, si quiere.

Ya solo de pensarlo me estoy poniendo nervioso

Coraje suelo decirme a mi mismo en estos momentos.

Me gustaría decirlo directamente:
• Necesito una excedencia.
• ¿Para que?
• Para hacer una formación sobre desarrollo de aplicaciones
• ¿Cuánto tiempo?
• 8 meses

A partir de ahí me cuesta imaginar lo que sucederá. Aún así, seguramente este escenario que imagino no se corresponderá con la realidad. Así que no quiero gastar mucha energía en ello.
Lo que si tengo que tener muy claro es que

NO ES NEGOCIABLE

Necesito tiempo para el curso y aprovecharlo al máximo. Por muy pocas horas que me ofrezcan o facilidades sobre el horario siempre existirá el estrés , tendré la cabeza en otras y lo que puede que comience por 4 horas se convierta en 6. Así que no, no lo aceptaré.

¡Coraje!

El plazo llegará.
Tengo pensado hacerme un tatuaje simbólico. Para la teleco llevo trabajando 12 años y medio. Ha sido la forma en que gano mi sustento económico y me ha permitido hacer muchas cosas.
Las tarjetas sim (Subscriber Identity Module) de los teléfonos llevan un número de serie que se conoce como ICC-ID (International Circuit Card) que es un código único de 19 dígitos.
Los dos primeros dígitos son 89, indican que es una tarjeta de telecomunicaciones,
después el código del país, 34 para España,
seguido del código del operador,
Orange 01
Yoigo 04
Movistar 07
Vodafone 56
Después el número de serie con 12 dígitos
y el último número es el dígito de control. Que se calcula con el algoritmo de Luhn.
Idea: (Podría subir a GitHub varios resoluciones de cálculo de dígitos o letras de control: DNI, ICC, Cuenta Bancaria, ISBN)
Así que he pensado tatuarme los siguientes números
8934075700020100706
8934075700020220131
Los últimos 8 números son la fecha de inicio y de fin de mi paso por este sector.

23.Nov.22

Hoy he pagado el curso Swift Full Stack Bootcamp 2023. 9.335,20€ he hecho de transferencia. Creo que no había hecho una transferencia con un importe tan alto.

He grabado el episodio 36 del podcast. Espero me de tiempo de editar y subirlo ahora por la noche.

Episodio 36 publicado!

728 reproducciones

21.Nov.22

La semana pasada no pude practicar más que 5 horas. Ha estado mi cuñado y mi suegra de visita y he decidido estar con ellos. De vez en cuando viene bien darse esa semana de descanso, sobre todo sin la culpa de tener que estudiar.

Lo que si me pasa es que pierdo el ritmo, pierdo la continuidad y la concentración en lo que estoy trabajando y cuesta volver a retomarlo. Pierdes inercia y las primeras pedaladas requieren más fuerza.

Tenía planeado hoy pagar el bootcsmp, pero tengo que ir a la sucursal de mi banco para que me quiten el límite en esas operaciones, eso o pagar unos 30€ de comisiones porque me lo hagan por teléfono.

El miércoles por la mañana ire.

15.Nov.22

He encontrado un json en github, con los equipos y grupos del mundial de Qatar.
He copiado el texto y lo he añadido a un archivo en el proyecto.
Trabajaré con ello para crear una pantalla e ir introduciendo datos de los resultados y guardarlos en core esta. Mostrar la tabla con los partidos y la clasificación.

11.Nov.22

81 días para iniciar el bootcamp.
Parece que hoy he tomado una decisión sobre lo que haré con mi trabajo cuando empiece el bootcamp el 1 de febrero.
Pediré una excedencia y en caso de que me la denieguen me despediré.
Tengo la intención de aprovechar al máximo ese curso y la única manera que he encontrado para hacer un hueco es dejar mi trabajo actual.
Mi segunda prioridad es dejar este sector, dejas la venta de telefonía de una es por todas.
He buscado otros empleos,
No relacionados directamente ventas,
Algunos han sido de soporte,
Otros media jornada,
O jornada intensiva,
Pero no me han llamado de ninguna oferta.
Digo parece porque aunque mi mujer me anima a dejar de trabajar y solamente enfocarme en el curso, aún tengo que convencerme a mi mismo de hacerlo. De romper, de terminar este empleo, y comenzar con el cambio de profesión.
De dar el salto.
Coraje, hace falta coraje para hacerlo.
Pero antes debo terminar de convencerme a mi mismo.
Repetírmelo una y otra vez, para asumir que es la mejor decisión.
Me quedan 56 días laborables en esta empresa.

08.Nov.22

Hoy no me he sentido muy hábil programando. He encontrado un tutorial sobre poner una searchBar en una TableView.
Pensé en hacer el tutorial completo, con el listado del ejemplo. Finalmente decidí implantarlo en una de los ejercicios de urlSession que tengo hecho sobre las líneas de autobús.
Me ha costado adaptarlo, pero finalmente lo he logrado. En el tutorial no utilizaba ninguna arquitectura, en el mío y uso MVVM, aunque he roto un poco el esquema, y no me ha terminado de convencer cómo ha quedado, el objetivo está cumplido, entender como es el funcionamiento del searchController.

07.Nov.22

let tiposPorValorOReferencia = episodio(35)
Episodio Publicado!
622 Reproducciones
No me ha gustado mucho, cuando explicaba no me sentí totalmente seguro en la segunda explicación. Intento poner más entusiasmo al inicio, pero creo que luego lo voy perdiendo..

04.Nov.22

Tenía que haber grabado hoy el episodio, pero he decido ir a entrenar. Comencé a preparar la escaleta, pero no la he terminado.
Espero grabar este fin de semana, aunque casi que será para el lunes.

07.Nov.22

Episodio Publicado! let tiposPorValorOReferencia = episodio(35)

Reproducciones

04.Nov.22

Tenía que haber grabado hoy el episodio, pero he decido ir a entrenar. Comencé a preparar la escaleta, pero no la he terminado.
Espero grabar este fin de semana, aunque casi que será para el lunes.

03.Nov.22

He logrado crear un archivo txt en la carpeta documents, en el cuál añadir un log cuando la app tenga un error, agregando un texto al final del texto ya existente.
Ha sido una búsqueda en YouTube, lo he encontrado en el canal de iOS Academy y stackOverFlow y a partir de una similitud con el uso de core data al compartir una clase.
Un logro que me entusiasma y que puedo dar al check de whishlist de este proyecto.

01.Nov.22

Estoy por practicando con un tutorial sobre cómo hacer un temporizador.
Me he centrado en entender cada una de las funciones que utiliza. Me pongo comentarios y añado la descripción.
Me he dado cuenta de que la parte que menos conozco es sobre animaciones.
Una vez terminado llevo idea de añadir test y guardar la información en core data, quizá presentar una tabla con el histórico, así practico persistencia de datos.
Sigo buscando ofertas, aunque solo me postularé en las que busquen desarrolladores junior y no indiquen experiencia necesaria.
Estoy modificando otra vez mi currículum, cambiaré el información, sobre mí y añadiré Perfil.

31.Oct.22

He soñado que estaba haciendo o practicando una app y que tenía que hacer un struct de los resultados de la fase final

struct team {
    let name : String
    var goals: Int
    var qualified: Bool
}

Había una variable calculada, quizá del nombre. No recuerdo bien. Pero funcionaba.
Quizá pueda hacer una tabla en mi proyecto de prácticas, con los datos de este año, añadir resultados de los partidos y que se vayan a actualizando.

27.Oct.22

Si buscas bien, con las palabras adecuadas puedes encontrar lo que necesitas.
He encontrado un vídeo de SwiftArcade en YouTube que explica de manera bastante clara sobre los unit test. No el típico (4 = 2+2) que no aporta realmente mucho entendimiento sobre el sentido de los test.

24.Oct.22

He practicado hoy con la traducción de los strings a otros idiomas. Con el vídeo de iOS Academy.
Terminé de obtener del infoPList un listado para las frases que las muestra en una pantalla y las edita en otra.
Aunque no se guardan…
Por lo que he entendido en el infopList no se deberían escribir datos desde la aplicación.

21.Oct.22

Episodio 34 publicado! https://anchor.fm/adrintro/episodes/let-clases–Episodio34-e1piq69…
561 Reproducciones

20.Oct.22

He terminado de hacer el tutorial de la vista de calendario. Después de añadir un evento y que se vieran reflejados en la vista semanal.
Que puntos podría mejorar para la próxima versión:
• Añadir una arquitectura
• Guardar los datos en CoreData
• Afinar las vistas. No cuadra las etiquetas del día con los números de la fecha.
No he querido entretenerme demasiado con la interfaz. Me gustaría volver después, cuando haya practicado más la persistencia de datos.
Lo siguiente que tengo en mente es crear una copia lo más parecida que pueda hacer a la app de Domino’s Pizza, con los datos de otro restaurante, al que solemos ir: /el/ Antojitos.
/Tropicalizarlo/ un poco a las imágenes y datos de su página web y porque no, podría ser una plantilla de app para restaurantes de comida rápida que podría ser mi proyecto del bootcamp.

17.Oct.22

Estoy practicando la vista de calendario, con un tutorial de YouTube. Es realmente increíble que con unos pocos métodos y una clase puede generar los días que corresponden a cada vista de mes y semana.
Lo que me parece motivador es que al ir pausando el vídeo me permite entender los métodos. He incluso probado la funcionalidad de add documentation de xCode para describir la función.

13.Oct.22

He comenzado hoy a hacer muchas persistencias de datos. Primero userDefaults, un par de ejercicios y mañana tocará core data, de un vídeo de Udemy, que ya he hecho pero ahora lo practicare de una manera diferente.
Estoy aplicando en todos los casos la arquitectura MVVM.

12.Oct.22

El binding, lo he podido replicar a las pantallas que tengo de las urlSession que tengo. Menos en una que me está costando, quizá por que ya llevaba 5 horas practicando y ya no estaba comprendiendo nada. Era momento de dejarlo.
Quizá pueda explicar estos conceptos en el podcast, con los propias palabras, como yo lo entiendo. La definición no se ajustará al 100% de la realidad y puede que me equivoque, pero no es una manera de bajar el concepto a algo tangible, algo más familiar y que no quede en esa abstracción de significados difíciles de comprender.

11.Oct.22

He logrado entender concepto de bind() en la arquitectura MVVM. He encontrado muchos vídeos donde te explican cómo hacerlo pero ¿Por qué no te explican porque hay que hacerlo así? Puedes copiar y pegar o si quieres escribir tú el código, pero eso al final no sirve sino lo comprendes , sino puedes aplicarlo a otro caso, a otro proyecto, a otro ejemplo diferente.

10.Oct.22

Estoy haciendo la última práctica del curso de Combine. El instructor, Julio César la está haciendo en SwiftUI, yo quiero replicarla en UIKit con un CollectionView, y la semana pasada a mientras comía, vi un vídeo de SwiftBeta sobre DiffableDatasource en CollectionViews. Mi idea es utilizar este método y combine. Aunque parezca que puedo seguir los dos vídeos y unirlos. El hecho de personalizar como necesito que funcionen cada uno de ellos me hace pensar sobre cómo adaptarlos y que modificaciones hacer para poder reutilizarlos y no solo copiar y pegar el código. Un reto.

07.Oct.22

Episodio 33 -> Preparativos para el Boot Camp ¡Publicado!
Reproducciones en total 537

06.Oct.22

Es momento de plantearme como haré durante los meses que dure el bootcamp que es de febrero a junio.

05.Oct.22

Con el poco tiempo que me queda para poder sentarme a practicar, lo único que me queda es leer un algoritmo e intentar resolverlo mientras voy en el bus. Pensando en las posibles soluciones y los casos extremos. Lo apunto en una nota, hago un pseudocódigo y luego intentar resolverlo en el playgrounds en 20 minutos.
Es como si estuviera programando dentro de mi cabeza.

03.Oct.22

Que poco tiempo me da para estudiar cuando voy de horario partido. Aunque sean 58 minutos, lo importante es no perder la racha.

26.Sep.22

Estoy por terminar el curso de Combine, de julio César Fernández que compré en Udemy.
Es una combinación de teoría y práctica. Me quedan los conceptos aún sin aterrizar. Puedo ver los ejemplos, reproducirlos, pero me hace falta saber exactamente cómo implementarlos en algún proyecto.
Es cierto que hemos hecho una simulación de petición de red, pero es un playgrounds, me falta poder saber, o mejor dicho practicar y usarlo en un proyecto de los que estoy haciendo. Mi idea es poder usarlo con la api de Bus, en la que la descarga de los datos tarda mucho, y refactorizar las que ya tengo, o mejor aún crear otra class Providerque puede intercambiar.

23.Sep.22

Podría mostrar un gráfico donde muestre el tiempo dedicado a este gran proyecto por meses desde que tengo el toggl.
Lo comencé a usar a mediados del mes de agosto del 2021, aunque viendo los datos, quizá agosto y septiembre no sean los más fiables.

22.Sep.22

He empezado con el curso de Julio César Fernández de Combine. Espero me ayude a comprender mejor el funcionamiento de las tareas asíncronas.
Me he encontrado que en una llamada de red, tarda más tiempo en procesar y no se refrescan los datos en la pantalla. Así que tendré que hacer algo, mostrar algún dato en espera de que se descargue la info y se muestre en pantalla en cuanto esté.
Muy bien explicado, mi interés es entender no solo replicar una y otra vez sin saber por que lo hago, esa no es la manera de aprender, sino encontrarte problemas y resolverlos. Mi idea es meterme en esos problemas y encontrar una solución, no de copiar y pegar sino seguir una secuencia de pasos que me lleven a identificar que está pasando.

21.Sep.22

Y si cambio la escaleta del podcast? Que podría cambiar?
• Podría poner las analogías sobre programación.
• Dejar solo las horas que he estudiado en la semana
• Anécdotas mejor como lo que me ha enseñando trabajar en tienda
• Decir algún algoritmo
• Que libro estoy leyendo
He logrado añadir la funcionalidad de login a través de un package. Creo que eso fue lo que me pidieron en la prueba técnica de MovieDB

20.Sep.22

Episodio 32 -> Aprendiendo a aprender
Reproducciones: 507

19.Sep.22

Practice 01:39
hoy he podido corregir relativamente rápido una sección del proyecto LotsOfUrlSessions, que era una llamada de red para obtener los nombres de las líneas de autobús. La segunda parte es pasar el número de línea y volver a hacer otra llamada de red para obtener el nombre y las coordenadas de las paradas para pintarlas en el mapa.
Me gustaría hacer dos más, y luego pasar a copiar pantallas de apps que uso. Mostrando los collection view, labels y table view que utilizan. Hay algunas que he visto que tienen botones para cerrar y hacer desaparece esa vista.
Un reto, las que tengo en el punto de mira son AimHarder, MiMovistar y Endesa.
No solo copiar el diseño sino las interacciones que el usuario tiene con la pantalla. Elegir una pantalla e intentar replicarla.

18.Sep.22

Practice 03:53
He podido pasar de la collection view al detalle con el patrón de diseño MVVM, quizá lo más importante es que estoy a punto de comprender cómo funciona.
Este proyecto de hacer varios veces el modelo de urlSession es lo que necesitaba para practicar lo suficiente lo mismo de diferente manera.

16.Sep.22

Practice 02:56

15.Sep.22

Practice 03:02

14.Sep.22

Practice 05:00

13.Sep.22

Practice 04:43

12.Sep.22

Practice 05:42

11.Sep.22

Practice 25 min

09.Sep.22

Practice 01:50

08.Sep.22

Practice 04:51

07.Sep.22

Practice 04:14

06.Sep.22

Practice: 05:37
Publicado el episodio 31 Episodio 31 -> Frustración -> aprende a vivir con ella
Reproducciones 493
Me ha salido muy mal el contar la anécdota del trabajo 🫣 … pero prefiero que quede así sin editar.

05.Sep.22

Practice 04:56
Hoy hubiera sido mejor si no sintiera este nivel de FRUSTRACIÓN.
Es la sensación de no saber nada, de no avanzar, de no poder aprender, de no poder crear porque sencillamente no sé dónde buscar, cómo hacer la aplicación de Bus que tenia pensada.
Es como si empezara de cero, quizá han sido estos días sin apenas estudiar nada, que lo había dejado, y luego los anteriores porque no tenia las ganas ni el tiempo.
Por momentos tenía ganas de borrar todo el proyecto, de comenzar de cero.
No sé si eso serviría de algo.
¿Si no puedo hacer este proyecto?
¿Qué puedo hacer?
Tengo cursos por terminar.
Básicamente lo que no te enseñan esos cursos es pasar de una pantalla a otra con los datos, con la información, que es con lo que me estoy topando.
Descargo la info, pero luego no sé como pasarla a la siguiente pantalla, quizá es la forma de inicializar la app, quizá es que empleo mal la inicialización de los viewControllers.
Es terrible, me siento terrible, como si fuera un gran fracaso, hace días que no tengo un Yes, I’m invincible que solía decir.
Me estoy topando con el techo de lo que te enseñan los cursos.
Porque no hay alguno que te enseñe a hacer una app completa y funcional con una arquitectura, en el que se vean todos los temas que se tocan, pero de una manera ya práctica, tangible, estructurada y unificada par aun objetivo.
Todo son pequeños temas, aislados, que luego es difícil conectar porque te hacen falta otros, de los que no encuentras información o que sencillamente no sabes cómo personalizar, como adaptar a lo que tienes la intención de hacer.
Sinceramente no sé que hacer, si
¿dedicarme estos 15 días a hacer cursos, esos cursos que no he logrado terminar, o que hacer?
¿Seguir intentando con la app de Buz?

02.Sep.22

El lunes empiezan mis 15 días de vacaciones, tengo como objetivo estudiar 4 horas diarias, excepto los sábados que es el día que me suelo tomar como descanso.

01.Sep.22

Aunque por momentos pienso que no sé absolutamente sobre cómo programar.
Si vuelvo la vista atrás, se mucho más que hace un año.
Me es más fácil identificar dónde está el error, ahora tengo que aprender a resolverlo.

31.Ago.22

Sigo avanzando el la app ZgzTiempozBuz, tengo la vista de detalle y me hace falta hacer el Push desde el listado de líneas.
Me gustaría también poner las marcas de todas las paradas en el mapa.

30.Ago.22

Sigo trabajando en la app ZgzTiempozBuz. Empezaré por lo básico y luego iré implementando cambios. Lamentablemente por la huelga no funciona la api del ayuntamiento.
Tengo alguno json de prueba que descargue hace tiempo del que me podré basar para trabajar el Modelo.

29.Ago.22

Hoy ha respondido del banco y han aprobado el préstamo para hacer el bootcamp de apple coding el próximo año.
Ahora solo queda resolver el tema de horarios en el trabajo.
He empezado con la app de ZgZTiempozBuz Justo cundon esta temporada que la api no funciona muy bien que digamos. Me imagino que están haciendo cambios porque implementarán una app que tendrá varias funcionalidades y detrás está el ayuntamiento de zgz.
No tengo que olvidar el objetivo, hacer una app que publicar en la App Store.

28.Ago.22

He publicado el cuaderno de bitácora. Pronto quizá podría hacerlo blog.
Escribir un poco.
Además de la escaleta que es lo que suelo tener.
Al leerlo sigo pensando en la frustración que se debe soportar para alcanzar el objetivo que buscas, pequeños logros te alimentan y deben dar fuerzas para continuar, para seguir luchando a pesar de las dificultades.
Puede que el secreto esté ahí, que con un poco de satisfacción tengas suficiente para enfrentarte a los siguientes retos.
Nunca sabrás exactamente cuando vendrá el siguiente logro, ni que tanta energía te pueda aportar.
Tienes que seguir trabajando en ello.

27.Ago.22

Sigo trabajando en el cuaderno de bitácora, pasando de mi diario personal a una nota en Bear.
He descubierto cuánta frustración hay que tolerar para alcanzar tu objetivo.
¿Durante cuánto tiempo puedes aguantar que nivel de frustración, mientras continúas trabajando en tu meta?

26.Ago.22

Este fin de semana empezaré con la app de BuZgz. Tengo que ponerme las pilas ya!

25.Ago.22

Hoy me han tagleado de codygos.com. Una web que busca facilitar las mayorías a desarrolladores juniors de Latinoamérica. Ha escrito un post en LinkedIn invitando a que me contacten.
He grabado, aunque no sé si me ha gustado del todo el episodio.
No he sentido que lo haya contando considerando que el escucha no sabe nada sobre mí. Y quizá daba cosas por hecho.
Aunque la finalidad no era contar su muerte sino lo que me ha dejado de aprendizaje.
Lo publicaré tal cual.
He pensado en grabarlo de nuevo, pero no creo que salga igual.
Y no sé si mejor.
Podcast: 481 reproducciones
Publicado el episodio 30 : graciasPorEstosOnceAños: Personal

24.Ago.22

Estos días en los que he perdido un poco la rutina, he dejado un poco los hábitos.
Me cuesta ponerme manos a la obra, me falta energía.
Esa voluntad inicial para comenzar, para no perder la inercia.
Pierdo el tiempo con el móvil mas de lo habitual, me cuesta concentrarme como si encontrara mis pensamientos densos.
Es tristeza, tristeza por la muerte de Patxi, mañana cumple una semana y aunque sigo sacando a pasear a Kelly, no es lo mismo.
Lo que estoy haciendo es leer los algoritmos de hackerrank e irlos resolviendo en mi cabeza fuera de casa. Para escribir la solución en una nota y para después probarla en el playgrounds.
Por el momento va dando resultado.
Llevo 4 o 5 resueltos así, que siempre hay que afinar algo, pero el pseudo código lo pone un poco más claro.

19.Ago.22

Pensaba grabar un episodio, he preparado la escaleta, pero no le he sentido con ánimos.
Mañana espero tener ganas de hablar sobre la Patxi.
Y espero no me salten las lagrimas.
Y si saltan pues quedarán ahí.

16.Ago.22

Repasando la arquitectura VIPER. Lo complicado es que cada maestrillo tiene su librillo.
Así que cambia cada vez que veo una explicación de esa arquitectura.
Asumir básicamente es lo mismo.
Estos días no estoy muy concentrado.
La Patxi está muy mala y son su últimos días.
Así que cuesta concentrarse, la memoria y las ganas son pocas.
Espero sea solo esta semana.

15.Ago.22

Estoy trabajando en la lista de enlaces que será parte de la guia.
Organizándolos por tema, idioma y dificultad. Tengo varios enlaces.
Espero que sean de utilidad.
11:50:40

11.Ago.22

Terminadas las guías de Arquitectura MVC, MVVM y MVP.
Creí que sabía como era, pero cuando se complica un poco y comienza a salir errores es cuando no sé cómo salir.
Me cuesta, y tengo que dar mil vueltas.
Ayer por la noche y hoy se me han ido clarificando las ideas.
Me gustaría hacer un diagrama para diferenciar las 3.
Lo tengo en la cabeza pero me hace falta plasmarlo.
23:59

10.Ago.22

Llevo esto días intentando comprender la arquitectura MVVM, que creía que la tenía sabida.
Pero cuando tratas de implementarla en tu proyecto te das cuenta de que no la conoces a fondo.
Entonces es cuando comienzo a buscar manuales, guías, posts de expertos en los que muestren cómo es la arquitectura. Después me encuentro ejemplos que implementan con tableViews, todo en UIKit, y me doy cuenta de que tampoco domino los tableViews, con lo cual toca hacer un mix de MVVM y tableViews, y me encuentro con errores, cierres forzosos.
Me digo a mi mismo, déjalo, pero sigo intentando, pasan las horas y voy descartando lo que podría ser.
Hay momentos más oscuros, de frustración, reaparecen las intenciones de abandonar.
Al final entre la rutina, practicar , otras tareas y practicar, llegan las soluciones.
Me digo a mi mismo, debe ser una tontería, algo simple que estoy pasando por algo.
Intento ir tirando del hilo, hasta que por fin la luz.
Los errores se van eliminando, y logro reproducir el proyecto.
Al final una sensación de satisfacción, de que el trabajo y la insistencia han dado sus frutos.
23:39:13

09.Ago.22

Arquitectura. tableView. En eso estoy ahora.
Creyendo que ya lo sabía, lo único que pasaba era que no lo había practicado lo suficiente.
Poco a poco se van aclarando, a base se prueba y error, quitar, poner leer voy descubriendo cómo funciona.
Quizá no es la manera más rápida de aprender, pero es la más económica.
Al menos hasta que entre al bootcamp.
Había pensado en dejarlo, pero quizá es momento de seguir.
Son 6 meses que puedo aclarar lo que se, tener más dudas.
Que se vayan clarificando un poco los conceptos.
Tener los puntos y que el bootcamp me sirva para unirlos, descubriendo lo que me hace falta y viendo ya la imagen completa.

08.Ago.22

Buscando algún post que me ayude a entender el tableView con arquitectura MVVM.

04.Ago.22

Estoy intentando hacer una llamada a red con MVVM, y sacando la manera o tomando idea de la app de movies, y estoy oxidado.
Me cuesta entenderlo, transformarlo, pero me imagino que será a part le del aprendizaje.
Me desespero porque no se si estoy perdiendo el tiempo.
Sé que lo estoy haciendo mal, pero hasta que no haga el Bootcamp, no quiero dejarlo , ni quiero dejar de estudiar.
De enfrentarme a esto, porque quizá me pase como en el curso de la consultora.
Al final conseguí hacer la app.
No con el mejor código, siguen sin llamarme pero lo logré.
Me costará más tiempo, pero estoy convencido de que lo lograré.

03.Ago.22

Quizá tenga que encontrar algún proyecto de app con la arquitectura MVVM.
Estoy haciendo ahora uno, pero está saliendo una combinación entre viper y lo que pueda parecer MVVM.
Quizá va todo con funciones, en lugar de con variables.
No lo sé, me gustaría ver alguno, para saber a ciencia cierta cómo es, porque seguramente lo estoy haciendo mal.
Saldrá, pero no sé si sea correcto.

02.Ago.22

Hoy he estado con el algoritmo de appendAndDelete que no he podido completar.
No consigo entender los casos, tendría que repensar todo, cuando creía que lo tenía ya resuelto, pero los edge cases son los que me dificultan.
En fin.
Mañana a empezar con la app bus

01.Ago.22

Había pensado en una app que cuente los minutos de felicidad que tienes.
Y que al final del día o del mes, o del año te dé el total de lo que has vivido.
Me gusta hacer algoritmos.
He estado practicando en hackerrank y he redescubierto lo mucho que me gustan.
Hice 2, el primero me costó más tiempo, el segundo menos y el tercero unos 15 minutos.
Me hizo falta una cosa que resolví camino al trabajo.
Luego se me ha ocurrido una mejor forma de implementarlo, para no hacer tantos bucles operaciones for in

31.Jul.22

Hoy he terminado la guía de Modern AutoLayout.
Podría aún practicar más, pero quiero empezar con la app de zaragoza Bus.
Quizá antes me haga unos algoritmos para calentar motores.
Unas llamadas a red.
Una app de llamadas a red de todos los apisque hay en el enlace de la enunciado técnico.
No se mañana, será otro día

28.Jul.22

28 episodios: 385 reproducciones
He hablado con una chica de codygos una empresa que busca dar mentorías a desarrolladores juniors.
Bueno por hablar con alguien de mi aventura para volverme desarrollador esta bien.
No espero mucho.
He grabado el episodio 29 del podcast. Sobre la guía de Modern AutoLayout.

25.Jul.22

Sigo trabajando con el tableview y la guia AutoModernLayout, ayer y hoy he estado intentado descifrar cómo funciona la tabla, como pasa los datos.
Por un momento lo dejaré, pensé en saltármelo, pero el siguiente tema era de lo mismo, y el ejemplo no me servía porque no lo podría añadir al proyecto que tenía ya.
Así que he seguido insistiendo, prueba y error, hasta lograr hacerlo por código.
Muchas cosas sobraban, algunas no sé si quiere porque las tenía implementadas, he ido quitando y descubriendo.
Por momentos me desesperaba, de no avanzar, de no comprender, pero es sentir que estoy cerca, que pronto daré con la tecla para motivarme a seguir.

19.Jul.22

Poco más de 3 horas es lo que estudie la semana pasada.
Lo que le pude dedicar a Swift.
No sé si resignarme a esperar el bootcamp, a febrero, si aún no tengo el dinero, no se si podremos económicamente si dejamos de tener mis ingresos.
No se si estaré trabajando o no.
Pero eso me recuerda al curso se monitor de natación que iba a tomar hace tiempo, hace 10 años, como estaba solo en la tienda no me permitieron cerrar viernes tarde y sábado, que eran los días que se tomaba el curso.
Y lo dejé pasar, creo que eran 500€, y no recuerdo durante cuanto tiempo.
Pase las pruebas de velocidad, aún sin haber nadado en mucho tiempo.
Y lo dejé ir…
Esta vez no me va a volver a pasar.

11.Jul.22

Episodio 28 -> Mis errores hasta ahora
368 reproducciones
Grabé por la tarde, y edité y publiqué por la noche. Más o menos cada mes publico un episodio. Quizá debería ser quincenal, pero por una u otra razón no encuentro el tema, no me decido o lo que sea.
Bueno satisfecho, espero sea una puerta para publicar esa guía, ese activo, esa stock, que de algún euro de entrada alguna vez.
Me gusta grabar, cada vez me encuentro mas cómodo, más suelto. Lo único que quito es cuando trueno la boca, es lo que edito. Las equivocaciones y demás se quedan.

05.Jul.22

Hay muchos programadores.
¿Que tienes tu que te diferencie del resto?
¿Porque una empresa debería elegirme a mi?
¿Cómo puedo probar mis conocimientos?
Estudios en Desarrollo de aplicaciones móviles.
Un bootcamp.
Quizá es un poco como el carnet de conducir.
Yo estudie por mi cuenta, aprendí lo necesario para poder aprobar el examen.
Pero necesitaba que una autoescuela me preparara y validara que estaba preparado para hacer un examen.
No puedes hacer el examen sin ello.
Haré el bootcamp, la pega es que es hasta el año próximo.
La entrega de la práctica hasta septiembre, lo cual es un año y dos meses dentro de hoy.
Lo único que tengo es la bolsa de trabajo de la consultoría.
De los que no sé nada desde hace 5 meses.
No tengo nada a que más agarrarme.

04.Jul.22

Hoy he hablado con un seguidor del podcast.
La primera vez, que alguien en serio me contacta.
Hemos hablado cerca de una hora.
Me he sentido muy identificado.
Incluso hemos estado los dos en videollamada sin habernos duchado ni nada.
Le llevo unos meses de ventaja y se me ha ocurrido hacer un episodio con los errores que he cometido.

02.Jul.22

Hoy estoy agradecido por por haber podido crear del proyecto de conviértete desarrollador una pequeña guía de ejercicios. Primero en Excel algunos y después algoritmos.
Comienza a tener algo de forma y fondo lo que quiero crear.
Lo siguiente será trabajar en enlaces que estén estructurados por secciones, por temas.
La idea es poder crear desde el principio una app en la que se tenga todo lo aprendido y sirva a manera de consulta, de base para otros proyectos.

29.Jun.22

He trabajado en el widget.
Aunque parece que le he sacado los errores a Xcode con el intento de obtener el json desde la api de zaragoza.
Después de eso no iniciaba el simulador.

28.Jun.22

Creo que he estado poco más de 4 horas programando.
He logrado darle forma a la vista de los buses.
También he trabajado con los mapas, ya tengo como poner varios pines para lo que serán las paradas de bus.
En general he logrado lo propuesto.
Mañana tocará trabajar en el widget.
Aún tengo que afinar cosas como una mejor legibilidad en los tiempos de la parada.
Para que quede claro con las mínimas palabras o indicaciones.
La principal característica es que debe ser minimalista

26.Jun.22

Hoy he trabajado con fechas.
Mejor dicho con horas y minutos.
En un playground, preparando lo que será la app.
He logrado poner los cuatro cuadros como había pensado.
Es como hacer el mock-up de la app.
Después vendrá la parte lógica. Los retos son:

  • Las 4 vistas
  • La suma de los minutos
  • La tabla en cada vista
  • La búsqueda por número de poste o dirección
  • El mapa con las paradas.
  • El widget
17.Jun.22

Publicado episodio 27
306 reproducciones en total

16.Jun.22

Sigo co la práctica de Layout con el manual.
Voy avanzando poco a poco, pero me está gustando mucho.
Me han rechazado de la oferta que metí ayer, pero en fin, así es esto.
Me gustaría en julio, alguna fecha ya comenzar con la app de bus.
Podría llamarse: MiBuz, o Zarabuz, Gozabus, MañoBus, ZabusZa

12.Jun.22

También he leído la recomendación de descargar proyectos de terceros y hacer cambios, que es básicamente lo que tocará hacer en un entorno colaborativo con otras personas.

10.Jun.22

Estoy practicando con los layouts y afortunadamente me está saliendo bien.
He pensado en que podría hacer una app con información de zaragoza.
Hay APIs públicas de los servicios del ayuntamiento.
La puedo publicar y que sea lo carta de presentación.
No será fácil elegir algún tema, o varios y poderlo poner en una pantalla.

07.Jun.22

Hoy he comprado la guía Modern AutoLayout, quiero saber más sobre los layouts en UIKit.
Tocará practicar y practicar.
Hace meses que no compraba ningún recurso.
¿Cuánto provecho le podré sacar?

06.Jun.22

He comenzado a escribir una guía para convertirse en desarrollador de software.
Los pasos que debes seguir para aprender a programar Swift, desarrollador apps en iOS y cambiar de profesión.
Es básicamente lo que yo estoy haciendo, evitando que el que quiera hacerlo también comenta los mismos errores que yo.
Que sea un camino más llano, sabiendo a lo que te vas a enfrentar, más eficiente y no perder el tiempo aprendiendo funcionalidades que no son necesarias al menos para iniciar tu carrera.
Ahorrarte dinero, que sepas con seguridad que cursos comprar y no pagar por pagar.
No pagar y no sacar provecho de ello.

02.Jun.22

Me deprimo porque soy rechazado de todas las ofertas a las que me inscribo de desarrollador iOS.
Pienso que no tendré ninguna oportunidad.
Son momentos bajos, en los que lo único que hay que hacer es seguir con el hábito, estudiar, estudiar y ya se pasarán.

31.May.22

Estoy dudando si comprar los libros de hacking with swift que empiezan con descuento del 50%.
75€ cuesta el pack.
O 20€ creo cada uno.

29.May.22

Hoy he practicado con la app Adrian Playgrounds he añadido el mini juego de Wordle del tutorial de SwiftBetay mi intención es añadir la versión de RayWanderlichtambién.
Para ver las diferencias en la implementación de cada uno.

27.May.22

Publicado episodio 26-> Refactorizando mi cv
Reproducciones 287

22.May.22

Hoy he hecho la vista detalle de las películas populares.
Queda la vista de las películas favoritas, pero es un poco lo mismo.
He podido descargar la imagen sin utilizar ningún framework.

19.May.22

Hoy he logrado hacer la vista de los favoritos.
Se actualiza cuando marco de películas populares, de las películas buscadas y de borran también.
Aún me queda que se puedan quitar al desmarcar desde favoritos.
Y eso tendría que afectar a la pantalla de populares.

18.May.22

Hoy he logrado resolver el tema de la barra de búsqueda de las películas, con su respectiva llamada a red y reinicializarse al borrar la búsqueda o hacer otra.
Estuve a punto de dejarlo, de comenzar con otra cosa, de comenzar incluso otro proyecto, pero tuve la perseverancia de seguir adelante.
Y lo conseguí.

17.May.22

Hoy he estado trabajando en movieDB.
Estoy un poco atascado, se me han juntado las películas populares y las filtradas en la misma tabla y se mezclan todas.
Por lo menos he descubierto cómo hacer un delay a la hora de buscar, así da tiempo a escribir la palabra completa antes de hacer la petición.
Cuesta hacer esto sin una guía, sin alguien que te ayude.
Tengo los grupos de telegram y de discord pero no me he atrevido a preguntar todavía.

16.May.22

Estoy ahora aplicando los conceptos SOLID al proyecto de adrián MovieDB, a la arquitectura Viper, y aunque leyendo puede que tenga claro el concepto, al momento de escribir es como si me quedara en blanco, no se como implementarlo.
Tendré que hacer pruebas y experimentar.

13.May.22

Comienzan mis vacaciones. 15 días, espero poder aprovecharlos para mejorar cosas en casa y de cara a el proyecto con Nic, y mi búsqueda y aprendizaje como desarrollador de software.
Tengo parado el proyecto con esta persona de dog App, tampoco es que esa persona haya aportado mucho, le he enviado la keynote con las pantallas, pero no ha dado ningún feedback.

04.May.22

Hoy he trabajado en el adrianMovieDB y he logrado cargar más películas al hacer el scrollDown.
Ha sido más fácil de lo que esperaba.
He buscado en internet la función del scrollView, implementado a manera de ejemplo, he quitado aquello no utilizaba y lo he probado. Y funciona!!
Esto que pensaba que sería más difícil de implantar ha sido más rápido.
Me queda aún unificar la función de fetch porque he creado otra con el parámetro page, que bien podría hacerlo con uno solo.

03.May.22

Publicado el episodio 25. Hasta antes de publicarlo llevaba 266 escuchas.
No se si son pocas o muchas, tampoco me quiero centrar demasiado en ello.
Mi objetivo es grabar los episodios de esta aventura, para que quede un registro para mi.
En algún momento pueda recordar este recorrido, del que no se exactamente cómo será el camino, pero sé donde quiero llegar.

01.May.22

Hoy he estado trabajando 6 horas su media en el proyecto.
He logrado avanzar bastante, y lo que más tenía que era la llamada a red de la API de movieDB al final me llevo menos tiempo del que había contemplado.
No fue fácil, he tenido que buscar en foros, y lo que sucedía era que no serializaba bien los datos descargados.
Lo que me queda es ir avanzando las páginas según se vaya haciendo scroll en la tabla.
Eso lo dejaré cuando ya tenga el botón de favoritos terminado.

29.Abr.22

Hoy he avanzado con la app adrianMovieDB

28.Abr.22

Hoy me ha pasado algo genial he tenido una segunda entrevista telefónica para desarrollador iOS.
Me llamaron ayer, pero no pude coger la llamada, llame de vuelta y era de una oferta que me inscribí en LinkedIn por la mañana, pero no me pudieron coger el teléfono.
Dejé un mensaje de voz diciendo que llamaría hoy por la mañana.
Ha sido una entrevista corta, me preguntó por mi experiencia, cuando le dije que no tenía si sentí que me iba a decir gracias pero no.
Me preguntó sobre lo que había estado trabajando en Swift, y me ha enviado una prueba técnica que tengo que resolver cómo muy tarde el martes por la mañana.
He recibido el correo, y ahora que termine de escribir lo abriré.
Hoy he comenzado a trabajar en el proyecto que tengo que entregar el martes por la tarde.
La entrevista realmente no ha durado mucho, menos de 9 minutos.
Es el primer filtro, preguntan si conoces las herramientas de desarrollo, con que has trabajado.
El entrevistador realmente no sabe desarrollar, sabe de reclutamiento y selección, pero conoce los nombres de lo que tienes que saber.
Si tu comunicación es coherente y segura, pasas a la siguiente etapa, en este caso la prueba técnica, a ellos solo les costará si la envías cuando la tengan que revisar.
En función al valor que encuentren pasas a otra entrevista seguramente.
Vuelvo a estar nervioso y un poco estresado con los tiempos de entrega, me vienen dudas sobre si soy realmente capaz de hacerlo.
Me lo debo tomar como una guía de estudio, sobre lo que tengo que saber al derecho y al revés respecto a este lenguaje.
Después de esto, podría hacer una app que tenga varias llamadas a red diferentes, con la arquitectura viper o mvvm o mvc.

26.Abr.22

Estoy pensando y haciendo pruebas de cómo tener frases en un json.
No sé si ponerlas en el servidor o en local, pero primero tengo que pasar de la nota de Bear a un Excel, y después a un json.
Hay alguna app y creo que una página web donde te lo crea.

25.Abr.22

Cuando me cuesta ponerme, iniciar a escribir código, darme un poco de confianza.
Lo que hago es calentar motores, copio y pego de algún tutorial, y cuando me sale el mismo resultado puedo continuar con algo más.

23.Abr.22

Hoy hemos hablado el contacto que he conseguido por twitter para crear una app.
Es programador de Java, pero quiere pasarse a iOS.
Lo haremos en SwiftUI, la app que tenía idea el diario de los perros.
Hemos quedado en hacer el diseño primero.
Ha ido bien, espero esto se lleve a cabo, es el tercero.
Las otras dos personas al final no dijeron nada más.

20.Abr.22

outro podcast:
Bueno yo me bajo en esta parada, nos vemos en la próxima y te cuento algo más sobre mi aventura con Swift.

12.Abr.22

Estoy un poco atascado en la app porque no estoy seguro cómo mostrar los datos que ha almacenado CoreData.
Así que tengo guardado los mensajes pero ahora toca llevarlos de vuelta.
He visto el curso que he comprado de master en desarrollo iOS.
Me ha ayudado a entender las arquitecturas, los test, la parte de git le ha quedado no clara, pero algo me ha aportado.
A última hora he copiado una lección de Swift Beta sobre botones, aunque parece que ya lo conocía, ha sido ilustrador la confirmación hecha en UIKit. Quizá deba para calentar hacer una lección.

08.Abr.22

Estoy pasando horas bajas porque no veo avances.
Solicitudes rechazadas, ni una sola entrevista.
Aún pienso que fui seleccionado por suerte para el curso de la consultora.
Aún sigo pensando que no me llamarán.
Hoy han pasado dos meses desde la entrega del proyecto y si recibí el correo de que en cuanto hubiera necesidad por parte de la empresa y en función de las notas nos llamarían.
Hay quien lo ha hecho mejor que yo y seguramente le llamarán antes.
También me pongo a pensar que realmente de momento no se hacer mucho, no se programar demasiado, no podría hacer una app funcional yo solo. Hay gente a la que le ha costado mucho más tiempo, que ha creado una app que la ha publicado y entonces es cuando le han llamado.
No creo que vaya por mal camino, simplemente que me está tomando más tiempo del que había creído, del que me había hecho a la idea.
No estoy valorando lo suficientemente los avances que he hecho.
Quizá tengo que hablarlo con Nic, que me dé su punto de vista, a ver si consigo salir de esta.
Ahora mismo estoy refactorizando mi C.V. Quiero mejorarlo, quiero cambiar TODO, volverlo a pensar desde cero.
Quizá me ayude, pero tengo que también seguir trabajado en la app, y comenzar ya con la app de los perros que tengo en mente.

05.Abr.22

Pensaba mientras iba en bici al Crossfit, que ya llevo tiempo buscando trabajo de desarrollador y no encuentro, que si realmente iba a encontrar.
He leído que el 24% de los programadores aprenden por si solos, son autodidactas, como yo.
Realmente podría decir que hasta no poder hacer una app por mi cuenta no podría pedir o buscar trabajo con desarrollador.
Creo que una vez publicando una app ya tengo más bazas para ello.
No debo desesperar, no debo apresurarme.
Es seguir aprendiendo, seguir estudiando y mantener el rumbo.
Los resultados llegarán, en algún momento, pero llegarán.

28.Mar.22

Sigo trabajando en la app PPS, voy escribiendo cada día lo poco que avanzo, aunque avanzo más rápido de lo que pensaría, siento que podría aún ir mas rápido.
La siguiente app podría ser una copia de alguna app ya existente.
Una que sea estéticamente atractiva, es lo que me falta.
Me ha contactado otra persona, esta vez de Colombia para desarrollar algo juntos.
No tengo idea ni cómo comenzar, pero primero había que poner en claro que es lo que queremos hacer.
Sería cuestión de hablarlo y sobre la marcha ir viendo que hacer.

22.Mar.22

Sigue tomando forma la app Próxima Parada Swift, estoy ahora añadiendo un formulario de contacto, después estaría bien añadir una página de login, y poder poner favorito a los episodios.
No se si desde la app puede subir o agregar algún tipo de comentario o post, o algo hacia el blog.

20.Mar.22

He publicado el mensaje y una persona ha respondido.
Aprendiz también, yo creo que podremos hacer alguna app o algún proyecto juntos.
No tengo idea de que proyecto, ni como pero seguro algo sacaremos.

19.Mar.22

He pensado en publicar en Twitter si alguien está en la misma situación que yo: en búsqueda de un cambio de profesión hacia desarrollador de su primer empleo y aprendiendo Swift para desarrollar una app en conjunto para portfolio profesional.
Lo podría poner en Twitter a ver si en algún momento alguien me contacta.
Se busca: persona aprendiendo Swift para desarrollar apps en iOS, con miras a cambiar de profesión consiguiendo su primer empleo como desarrollador de software, para crear una app en conjunto que podamos añadir a nuestro portfolio profesional.

12.Mar.22

Tendría que ponerme como objetivo estudiar 1, 2 o 3 horas diarias.
Ahora mismo lo he dejado de lado.
Esta semana he ido de partido y apenas le he dedicado tiempo a estudiar.
Hoy sábado no he practicado nada.
Mañana domingo entre el alisado y demás no sé cuánto tiempo pueda finalmente dedicarle.
Pero estoy perdiendo ritmo, estoy perdiendo constancia y no me está gustando.
Quiero volverlo mi prioridad, pero el trabajo y las labores de casa, entrenar y pasar tiempo con Nic no me dejan.
Tengo que encontrar un hueco.

08.Mar.22

Hoy he empezado con la app de Próxima Parada Swift, una app para mostrar los episodios y probar otra vez el patrón VIPER, ponerla en GitHub y tener otra app en mi portfolio.

23.Feb.22

Ayer compré -un- otro curso en Udemy sobre Swift. Master en Desarrollo iOS 15.1 – Completo con Swift 5.5
Un poco general, arquitectura y demás. 14€.
Quería un curso de iOS y Viper, aún tengo el de concurrencia por terminar y el de programación asíncrona con combine por empezar.
Estaba de promoción y decidí comprarlo.
A veces me da ese gusanillo por comprar cursos.
Tengo aún el libro de Clean code que no he terminado de leer.
Quizá porque me he puesto a mejorar el readme del proyecto que presenté para la consultoría, a buscar ofertas de empleo en Infojobs y vi los requerimientos.
Así puedo saber que buscar, que mejorar.
Me hubiera gustado hacer el Boot Camp de Apple coding, pero por horarios me es imposible ahora mismo.
Necesitaría ir siempre de mañanas.
Cuando lo haga seguramente tendré muy complicado venir a entrenar Crossfit.
Son muchos meses.
De febrero a junio y luego septiembre y no sé si octubre.
Pero tengo que especializarme, y no he encontrado algo tan especializado como eso.

20.Feb.22

Hoy he vuelto a estudiar un poco, a retomar ese hábito.
Unas pocas horas continuando con el curso de Concurrencia en iOS. Aún tengo otro curso por hacer de Julio César Fernández. Esta semana tengo que retomar la búsqueda de empleo:

  • Mejorar la presentación del proyecto en GitHub.
  • Mejorar el currículum
17.Feb.22

Estos días me encuentro un poco perdido, después del curso no se por donde tirar.
He descargado el proyecto de demo de arquitectura Viper de una base de datos de películas.
Pero es demasiado avanzado para mi.
No lo he entendido del todo.
En general si, pero no para poder replicarlo.
No sé por donde seguir.
Quizá debo terminar los dos cursos de Udemy que tengo comprados y que no he podido terminar.
Una vez hechos, me suscribo a HWS+
Y seguir buscando empleo.

10.Feb.22

He recibido el correo con las notas sobre el proyecto de app que hice del curso de la consultora.
Cuando lo recibí me puse muy nervioso, de hecho no lo quise mirar enseguida.
Pensé lo peor porque la primera parte fue de lo que no había hecho bien o me había faltado.
Estaba tan nervioso que decidí verlo para quitarme ya esa incógnita de la cabeza.
Me dio una grata sorpresa.
Ha sido de los mejores y de nota que he entendido la arquitectura viper.
Yo creo que me falta mucho, pero ha estado bien.
Muy contento por sus palabras y retroalimentación.

07.Feb.22

¿Has entendido la arquitectura VIPER?
La he entendido, aunque podría replicar ahora mismo poco.
Creo que se lo mínimo para montar una app con unos pocos botones y funciones siguiendo esa arquitectura.
Aún tengo dudas entre lo que hace el interactor y lo que hace presenter.
Y como delegar de la vista al presenter.
¿Has entregado el proyecto en tiempo y forma?
Lo he entregado, me ha hecho falta el manejo de memoria.
Que descargando 30 animales el iPhone consumía 1Gb 🙁 .
Me ha hecho falta que el formulario pase al siguiente campo.
Y el iPhone no sé si mantiene la persistencia de datos.
¿Qué tan satisfecho estás con lo que has hecho?
Bastante satisfecho, pasado el martes en el que logré hacer que la tableView funcionara me comencé a sentir más tranquilo, hasta la última hora que descubrí la fuga de memoria.
¿Cuál ha sido la mayor dificultad a la que te has enfrentado?
El entender la arquitectura VIPER, hasta que no me hice un diagrama no lo entendía; no me entraba en la cabeza; no comprendía qué hacía que.
Aún no me queda del todo claro, pero mucho más que al principio, aún tengo que practicar mucho más.
Tengo ya un post donde explica la arquitectura con su proyecto.
Espero entender mejor cómo funciona.

05.Feb.22

Bueno salgo de la tienda cansado.. ahora toca llegar a comer y continuar con el segundo turno.
Tengo que grabar e insistir con los permisos.
Espero terminarlo hoy y añadir el botón de random fact al de Chuck Norris.
Y otro random fact de perros para la vista detalle.
Tampoco la bolsa de trabajo de la consultora es una cosa segura.
Tengo que terminar este proyecto.
Descansar un día y volver a buscar trabajo.
Actualizar mi C.V.
Ahora con lo que he aprendido.

04.Feb.22

He logrado terminar con la persistencia de datos del formulario.
He comenzado con los permisos, pero eso lo hemos visto el jueves.
En el que no copié todo y me dio todos los errores posible.
Así que no estoy seguro si lo conseguiré. sería el último módulo y después afinar bien la app, corregir los pequeños detalles y añadir ese plus.
Pero estoy demasiado cansado, he trabajado hasta las 8, unas 3 horas después he ido a por Nic a la parada de bus.
Y he decidió descansar, me he ido a dormir a las 10:30

03.Feb.22

Podría añadir un ítem random que muestre la vista detalle obteniendo de red. 🧐
He hecho la validación del formulario y tengo los datos en un plist.
Están en user defaults??

02.Feb.22

16:10:02
En el bus a casa para iniciar el segundo turno.
A picar código,
Hoy espero tener la vista detalle hecha al final de la tarde.
Tendré que añadir una llamada a red añadiendo un campo adicional de /Did you know…?/
Que tengo que sacar y así cumplir el requisito de hacer una llamada a red también.
Eso lo dejaré al final.
Me pongo la lista de reproducción 💯 por la mañana para ir al trabajo y por la tarde al volver.
Necesito motivación, y confianza en mí mismo.
No caer en la desesperación, no perder la calma.
Me gustaría grabar unos minutos al día para el podcast y que queden registrados esos estados de ánimo como van cambiando a lo largo de lo que queda de esta semana.
Y juntarlos en un episodio.
00:05
He terminado la vista detalle, queda ajustar mucho la vista, para que quede bien.
He comenzado con el Form.
Me falta hacer la persistencia de datos usando viper.
Tengo las traducciones, falta terminar todos los labels.
He grabado antes y al terminar. 2 minutos

01.Feb.22

Segunda tarde de maratón de trabajar con el proyecto a entregar.
No he logrado hacerlo funcionar con la api de chucknorris.
Así que después de trabajar en un módulo de categorías y de búsqueda por palabra he decidido dejarlo y retomar el de animales.
Ese proyecto me hacía falta poco, que lo he aprendido en el de chucknorris, de cómo funciona la arquitectura (o eso creo), así que trabajando en el he logrado descargar la tabla.
Estaba un poco tenso y pensaba que lo tenía que ver estos dos días como de repaso y aprendizaje.
Si salía mal empezaría mañana.
Pero tengo algo, mañana trabajaré en la vista detalle.
Espero terminarla, aunque tengo que pensar cómo hacer esa llamada a red, sin un id.

31.Ene.22

Hoy por la tarde he estado trabajando en el proyecto en la vista de tabla.
Estoy en el mismo punto de ayer y se me ha complicado.
Vista ➡️ Presenter ➡️ Interactor ➡️ Provider ➡️ Interactor ➡️ Presenter ❌ View ❌ Cell
Cómo hacer casting de un array de strings a una celda de una tabla que pide un array de objeto.
Los valores (string) del array es el valor category del objeto FactCategory.
Struct
let catetogories = [“sport”,”carreer”]
let factCategories =

30.Ene.22

Este proyecto está siendo un reto.
Y al tener fecha de entrega añade un poco de presión.
Lo cual me gusta.
Es un desafío, y lo estoy haciendo.
Quiero llegar al domingo con un proyecto que cumpla todas o casi todos los requerimientos para poder entrar a la bolsa de trabajo.
Teniendo esta primera pantalla tengo una posibilidad.
Era lo que quería probar, si soy capaz de aprender, entender y replicar esta arquitectura tan complicada como VIPER.
Qué bien se podría llamar VPIEW.
Por qué creo yo que es el orden en que se ejecutan.
Sabía ayer por la tarde que estaba cerca, que me estaba faltando algo, pero era una cosa de nada.
Volví a ver el vídeo del curso, y logré entender porque no era igual a lo que estaba yo haciendo, en el nombre de las variables, pero cuál era ese punto que me hacía falta.
Me dio un subidón de alegría, el haberlo conseguido.

28.Ene.22

Preguntas que me hice el 11 diciembre del 2021
¿Qué tal ha ido el curso de formación?
En general bien, me ha abierto la perspectiva, ahora estoy seguro que necesito un bootcamp.
Uno especializado en Swift.
He aprendido y me ha dejado muchas cosas para repasar y un reto que lograr.
Eso ahora es mi prioridad.
Yo hubiese dado la formación de otra manera, quizá teniendo un poco más en cuenta el nivel de cada uno.
Más esquemático, más que para escribir código, para que la gente entienda lo que está haciendo y no lo copie.
Más teoría y no 100% práctica.
A veces siento que se detenía en nimiedades y pasaba rápidamente por lo que si era importante.
Pero para ser gratuito no ha estado nada mal.
¿Han sido los temas tan abundantes?
No hemos cubierto todos los temas. Algunos los hemos repetido como las tablas, otros los ha pasado demasiado rápido como la arquitectura Viper y base de datos ni siquiera hemos tocado.
¿Ha sido suficiente lo que he estudiado y preparado?
Sabía mucho de los temas, pero al hacerlo de una manera tan diferente los últimos días estaba un poco perdido, lo que si sé es que puedo escribir y copiar rápido. Y me compila el código sin si quiera saber lo que estoy haciendo.
Lo que cambia es que al ser un trabajo colaborativo, la manera en cómo se integran los módulos de los proyectos cambia totalmente su forma.
Es algo que debo aprender si quiero dedicarme a ello.
Yo diría que tengo un 20% de posibilidades de entrar. ¿Cuánto es ahora?
Pues si solo 6 personas y suponiendo que todas hagan un mejor proyecto que el mío.
Tengo un 16%.
Si nadie está en la bolsa antes que yo, o si no tienen a nadie más.
No se cuando puedan tardar en llamarnos, pueden ser 2 o 6 meses.
En cuanto entregue el proyecto volveré a la búsqueda de empleo, pero podré poner dos aplicaciones en el portfolio.
Hoy le dedicaré horas a entender mejor la arquitectura VIPER.
Aunque lo estoy haciendo en un proyecto ya empezado.
e gustaría luego volverlo a hacer para el proyecto final.
Espero me de tiempo, pero lo que más espero es aprender de verdad.
No me creo que no sea capaz de aprender algo nuevo, aunque sea un poco complicado.

27.Ene.22

Haber terminado el curso.
Ayer, pero sobre todo hoy pensé en abandonar.
No logré seguir el ritmo de la práctica.
Preferí poner atención y enterarme de algo.
No sé si soy el único, pocas preguntas hubo al final me parece a mí.
Menos participación el día de hoy en general, excepto de dos chicas que es a las que he visto más sólidas en cuanto al aprendizaje y los conocimientos.
Se me hace ahora mismo muy difícil, veo muy lejos el poder cambiar de profesión a desarrollador.
Siento que es porque no he practicado lo suficiente, no he tenido el tiempo que mis compañeros para practicar, no sé si todos o sólo yo estoy trabajando.
Necesitaré dedicarle este fin de semana a intentar poner las cosas claras , probar y saber el flujo de la arquitectura.
He estado hasta las 12, después de un tiempo de descanso para ir por Nic a la parada de bus y cenar.
Esa segunda parte la he seguido pero no la he entendido.

26.Ene.22

Hoy ha sido un día no tan bueno en el curso.
Por no decir malo.
Parecía que tenía la mente en blanco.
Ha ido tan rápido que me he perdido y no he sabido responder a las preguntas.
No sé si soy el único que está tan perdido, otra persona parece que también, el resto saben más que yo.
Pero después me he puesto a leer un poco sobre arquitectura limpia y demás y me he quedado un poco más tranquilo.
Porque tenía más claro los conceptos aunque con algo de neblina.
Tengo que ver el curso como una oportunidad no es la oportunidad sino una de las que tendré.
He aprendido mucho y me ha aclarado el panorama general de cómo es crear una app colaborando con más personas.

25.Ene.22

Hoy ha sido un poco más fácil las primeras dos horas que eran formularios.
Me va quedando un poco más claro.
Pude entenderlo mejor y me da un poco más de confianza para poder replicarlo.
La segunda parte del curso de hoy quizá la última con el botón me ha costado un poco mas.
Ha sido demasiado rápido y no lo he visto suficientemente claro.
Tengo un error y no sé por donde tirar.

24.Ene.22

Sigo un poco nervioso por esa inseguridad de poder hacer el proyecto en tiempo y forma.
Entiendo los conceptos pero me falta practicar, pode hacerlos yo mismo en la arquitectura que piden: VIPER.
Como crear módulos intercámbiales de los componentes de la app.
Como estructurarlos.
Entiendo el concepto, pero temo no poder llevarlo a la práctica.
Hoy me imprimiré los archivos y me haré un mapa mental.
No sé si empezar de nuevo el proyecto.

23.Ene.22

Tengo que preparar el proyecto de app que voy a presentar cómo práctica para el curso.
Quizá me estoy enfocando demasiado en el contenido más que en la estructura.
Al final el contenido da igual, lo que importa es como lo presente, que funcione.
Hay 10 días después de terminado el curso, pero podría ponerme ya este fin de semana.
Hoy he estado 8 horas trabajando en el proyecto que voy a entregar.
Quiero verlo como practicar, me ha dado uno que otro dolor de cabeza.
Sobre todos un error al cargar los datos a las celdas.
He estado un par de horas intentando subsanar el error, pero sigo sin encontrarlo.
Hoy preguntaré a ver si me ayudan.

22.Ene.22

Estoy nervioso por si el proyecto no sale.
Me estoy encontrando con errores y me estresa, tengo el tiempo suficiente para lograrlo.
No quiero hacer commits a ver si va a quedar plasmado algo que denote que dudo o que no lo hago bien.
Mañana será el día en que le dedicaré varias horas.
Seguro saldrá mejor y todo irá sobre ruedas.

21.Ene.22

He empezado a trabajar en el proyecto del curso.
Primero me he hecho un listado con los pasos a seguir. Para tener una idea clara de por donde avanzar.
He elegido una api de animales random.
Tiene imágenes y suficientes campos para hacer un detalle interesante.
He comenzado por elegir la api, me ha costado porque había muchas, pero no todas con imagen, varias muy complicadas, otras que piden autenticación, y tampoco quiero meterme en demasiado jaleo.
Algo sencillo pero vistoso.
Lo siguiente fue diseñar las pantallas, algo sencillo y navegable.
Aún tengo dudas sobre que extras añadir, pero los haré si me queda algo de tiempo.
No quiero perder el objetivo del proyecto.
Primero los requisitos luego lo demás.

20.Ene.22

Me sugiere Nic que acorte los podcast, que conforme va pasando el tiempo al final se nota que decae un poco el ritmo y se vuelve monótono.
Así que puede que quite la sección de enlaces, los dejaré ahí.
Sin más o comentaré solo uno.
El que me parezca más interesante.

17.Ene.22

Ha iniciado el curso somos 7, varios con más experiencia que yo.
Siento que aún estoy al nivel del curso.
Vamos bastante rápido.

12.Ene.22

Estoy poniendo en papel la idea que tengo de la app sobre perros.
Dogmory
Petmory
Petbook
Petgister
Dogminder
Petminder
Petister
Dogister
Dogiary
Petiary
He comenzado por las bases de datos, por la tabla que necesitaré. Quizá sea buena idea ponerla en un -Excel- numbers y ahí visualizar como se enlazan.
También hay que hacer el mockup, el diseño de las pantallas.
Quizá al final, cuando ya sepa que datos tiene que llevar.
También podría en el -Excel- numbers hacer una simulación del registro a ver qué campos necesito.

06.Ene.22

Episodio grabado.
Después de 26 días sin episodios publicados hoy por fin retomo la publicación.
Me ha gustado.

05.Ene.22

Quiero grabar ya, pero no encuentro ningún momento a solas.
Quizá deba probar grabar en el iPhone con el micro de cable a ver qué tal se escucha.

04.Ene.22

Tengo la esperanza de que después del curso me llamen y pueda entrar a trabajar.
Lo veo probable, un poco increíble, porque fue mi primera entrevista, quizá ha sido suerte.
Aún tengo que pedir permiso para poder salir a las 3.
Espero me llame pronto, cuando podrá ser ¿Febrero? Marzo? Abril?
Demasiada confianza en una sola oportunidad.
Ayer metí varias ofertas de empleo, pero aún la que veo más probable es esta.
El feedback que he recibido ha sido positivo, quizá es lo que me lleva a depositar esa gran confianza.

2022

31.Dic.21

Desde el día 10 que no publico el podcast.
Grabé el 24 una parte, quizá debí haber grabado y publicado el episodio. Mañana ¿grabaré?

14.Dic.21

Hoy he tenido la entrevista “técnica” y tengo sensaciones positivas, aunque con un poco de dudas.
En general bien.
Positivas porque creo que seré seleccionado para el curso y dudas porque en realidad no ha sido tan técnica, sino más bien comentar un poco sobre lo que he hecho, que me conociera y que viera el código que había escrito de la app Adrian Playgrounds.
Dudas por cómo es el proceso de selección, formación gratuita y luego irán llamando.
Aunque así se ahorran contratar formar y que luego no sea el candidato adecuado.
De esta manera conocen al candidato, lo forman y en cuanto tengan necesidad de personal te llaman.
Es lo que quiero pensar.
Minimizan el riesgo de contratar a una persona que no sepa.
Además de que con una entrevista técnica y test no siempre se puede saber cómo realmente se va a desenvolver esa persona laboralmente.
Así que es otra manera de integrar personal a la empresa y que no sea tan costoso.

10.Dic.21

Grabado el episodio 18 entrevistasTrabajo0
Me han dado ya fecha para la segunda entrevista.
El temario de lo que será el curso de formación.
En el que me he dado cuenta de que me tengo que poner a estudiar mucho más.
Tengo un mes.
Mi idea es hacer un proyecto donde tenga esas recetas para poder re-utilizarlas en el proyecto final.
He visto el temario y me parece muchísimo.
Pero es lo que tengo que saber para poder trabajar de desarrollador junior.

05.Dic.21

Hoy les he contado a Marta y a a José sobre el podcast.

03.Dic.21

Ha sido lo primera entrevista para desarrollador de software.
Me ha ido bien. Me contactaran para una segunda entrevista.
Y me ha dejado un buen sabor de boca, de lo que he dicho y de lo que me han ofrecido.
He pasado a la siguiente entrevista técnica.
Al terminar no cabía de la emoción; estoy muy contento.
Ahora más que nunca creo que es posible, que podría cambiar de profesión el próximo año.
Tengo ya una lista de tareas en las que tengo que ponerme al día, de cara al curso que comenzará el 17 de enero:
UIKit

01.Dic.21

Hoy he grabado el episodio 16, añosProgramando += 1
Creo que me ha salido bien el episodio, a ver que me dice mi madre y mi hermano.

29.Nov.21

Qué poco estoy estudiando últimamente.
Me está costando la lógica del mini juego de Black Jack.
La suma de los As del jugador es complicada.

25.Nov.21

He recibido un correo de respuesta de una inscripción a una oferta.
Por lo que puedo ver es una consultoría, dan cursos de formación y después me imagino que seleccionarán a los que más destaquen y les ofrecerán una vacante.
En principio dudaba un poco sobre la oferta, pensaba a ver si me van a querer vender un curso.
Pero parece ser que forman a gente que quiere iniciarse en el mundo de la programación o de TI, los forman y los ubican en algún proyecto.
Le conteste el correo y ahora a la espera a ver qué día tengo la entrevista telefónica.
Busque en la web la empresa, la empresa de los cursos, en LinkedIn el nombre de la persona que me contacto y me quede un poco más tranquilo.

24.Nov.21

Podría hablar en el próximo episodio sobre lo que he avanzado en este primer año.
Lo que he aprendido.

  • Empecé aprendiendo UIKit, hasta que descubrí que era mejor comenzar por SwiftUI
  • Cursos que he hecho
  • Swift 5.5
  • Programación funcional
    Cambios que he hecho en mi vida diaria
  • Veo menos tv, menos películas, menos series
  • Leo menos libros de otros temas
  • Estoy menos tiempo con mi familia
  • Entreno menos
  • Escucho menos podcast de otros temas
    Que ha mejorado
  • Pasar de la pantalla de Hola Mundo a una app de mini juegos.
  • Donde buscar cuando me enfrento a un problema. No memorizo sino he aprendido como debería ser.
  • Buscar en notas, en otros proyectos, en internet
    Planes
    Curos por hacer
  • Hacking with Swift+
  • Programación asíncrona con Combine
  • Async / Await
  • Mejorar la interfaz
    Portfolio
  • Publicar mi app de Diario de perro
  • Página web personal CV
    Continuar el podcast
    Otros conocimientos
  • GitHub
  • SwiftPackageManager
19.Nov.21

Grabado el episodio 15 -> Ofertas por Infojobs
Creía que no le daría tiempo hacer mi CV, inscribirme a ofertas de empleo y grabar el podcast.
Lo he conseguido, no lo he publicado, pero ya lo tengo. Por la noche lo editaré.
Ayer y hoy escuché el episodio 5 , no ha sido el mejor pero eso me da mucho margen de mejora.

18.Nov.21

Estoy escuchando el episodio 5 -> Algoritmos.
Es el primero que escucho más de 30 Segundos y no me está gustando.
Además recuerdo que lo estaba grabando o al terminar de grabar y dije que no había sido un buen episodio.
No me sentía seguro del todo sobre lo que estaba diciendo.
Quizá ahora podría hacer una versión 2. Jajaja
Me he descubierto diciendo muchos por eso, y, eeemm. Muletillas que tengo que ir corrigiendo.
No está mal escucharme. Me ayudará a mejorar.

17.Nov.21

Tengo que seguir buscando ofertas, ahora seguiré con Infojobs, meteré mi currículum y me inscribiré a algunas.
De eso podría hablar en el siguiente episodio.

11.Nov.21

Grabado el episodio 14 sobre las ofertas de LinkedIn.

07.Nov.21

Estas últimas 3 semanas he estudiado bastante poco.
No he avanzado todo lo que me gustaría.
Entre la llegada de Val, y los preparativos y la post-llegada apenas me queda tiempo.
Espero recuperarlo poco a poco.

05.Nov.21

Hoy publiqué el episodio visadoEstanciaEstudios : Personal es el número 14.
El siguiente yo creo que será sobre las ofertas de empleo a las que he aplicado. El nerviosismo que he tenido.

28.Oct.21

He aplicado a mis primeras 3 ofertas como desarrollador iOS.
En las tres pedían al menos un año de experiencia, buscaban puesto Junior, así que he buscado las 3 ofertas más “básicas” en las que podría tener cabida.
Me entra el síndrome del impostor y creo que me falta muchísima experiencia para ser un buen candidato, pero
¿buscan a una persona que cumpla todos los requisitos hoy o que tenga el potencial para aportar a la empresa?

22.Oct.21

Publicado el episodio 13 -> Primeros Proyectos
Voy teniendo ya una escalera para el podcast, va tomando forma.
Muchas secciones en las que hablo en general de todo, es mi Podcasts y puedo hablar de lo que quiera.
Hoy que he publicado me he metido al Dashboard y he visto 60 reproducciones.
Quiera o no es una recompensa que me gusta mirar, son los me gusta de las redes sociales a los que la gente se vuelve adicto.

21.Oct.21

A las 12:30 me dije que tenía que grabar, pero no tenía idea sobre qué.
Incluso pensé en grabar un episodio off topic sobre la llegada de Val.
Al final decidí grabar sobre mis primeros proyectos en Xcode.
Comencé a hablar de ellos al minuto 21 y la duración total fue de 31.
Hablo más sobre otros temas que sobre el tema principal en si.
Creo que esta bien.
Suele ser así en los podcast, un espacio donde hablas de lo que quieres, como quieres, cuanto quieras.
Episodio 13, semanal.
Tengo un compromiso y quiero ver hasta dónde me lleva.

19.Oct.21

Publicado el episodio 12 ➡️ AudioLibros

18.Oct.21

He estado preparando mi perfil de LinkedIn para comenzar a buscar trabajo de desarrollador de software.
Aún no se bien cómo funciona, pero he puesto mis datos y rellenado lo más que he podido.
Aún tengo que afinar mucho los textos sobre todo, sobre mi, sobre los empleos que he tenido.
Me he decidido por esta foto para el perfil.
Y esta otra foto para el currículum, que a Nic le gusta un poco más, porque se muestra mas cuerpo.
11.Oct.21

Me he comprometido a grabar un episodio a la semana.
Aún no decido el día.
Podría ser cualquier día realmente.
Quizá podría ser los viernes, así podría grabar martes o jueves que Nic año esté en casa, editar y publicar.

07.Oct.21

Ya podría publicar el podcast.
Tengo sino recuerdo mal 11 episodios.
Ayer volvía grabar el episodio 7 que por error no quedó grabado.
Así que esta semana terminaré de editar y los publicaré en cuanto los tenga.
20:19:41
He terminado de editar los 11 episodios.
Estaba decidido a publicarlo en ivoox , pero he visto que sin pagar tenía muchas limitaciones.
Lo mínimo a pagar eran 6€ / mes.
Así que me he puesto a buscar y la mejor opción para mí y este momento es Anchor. Me he registrado y puesto la info del podcast, lo único que falta es… subir los episodios.
Me entran dudas, si voy a ser constante, si es buena idea, sino voy a quedar luego expuesto.
Si es contenido se valor. Y demás. He dejado como siguiente paso subir los mp3.
23:56:36
Publicados los dos primeros episodios del podcast

30.Sep.21

No se ha grabado el episodio 7 del podcast.
Tendré que volver a grabarlo. No recuerdo ni lo que dije.

29.Sep.21

/So, you don’t just have to work hard to build a strong productive habit that your brain doesn’t particularly want you to build. You will have to do it while trying to demolish another strong habit that is already well-established./ James Clear

28.Sep.21

No estoy seguro del rumbo que quiero que tome el podcast, no sé muy bien cuál podría ser el siguiente tema.
Quizá haga falta ese feedback de la persona que lo escucha.
Para saber por dónde tirar, aún así terminare de editarlos y publicarlos.
Quizá podría leer libros de autoayuda o con los resúmenes que ya tengo hacer el podcast también.
Que no solo sea aprender a desarrollar sino a a mejorar tu vida.

27.Sep.21

A los programadores junior les gusta escribir código, a los programadores senior borrarlo.
El podcast dev. Episodio 25

26.Sep.21

Idea de app:
Una app de buzón de sugerencias.
El propietario define encuestas, horarios, precios, sondeo de nuevos productos.

24.Sep.21

Este fin de semana editaré los podcast.
Le daré a escuchar a Nic los dos primeros y esperare su feedback.
Lo subiré, no me gustaría quitar nada, tal como lo grabé que se suba.

03.Sep.21

Hoy he puesto la página de redireccionamiento.
Muy pronto el podcast.

02.Sep.21

Segundo día consecutivo grabando el podcast.
Después de grabar me entra un subidón de emoción y sobre todo el saber que se hará público.
Tengo ya el dominio.
Tengo 9 episodios grabados y queda uno por grabar para seguir con el plan de publicarlos.
Tengo más emoción que cuando tenía mi anterior blog.
El cual también empecé con unos cuántos post bajo la manga.
No quiero imaginar el alcance que pueda tener, quizá ayudando a una sola persona me sea suficiente.
Espero que a mí me ayude a encontrar empleo y a ponerme un poco de presión en este proyecto de cambiar de profesión.

31.Ago.21

Hoy he comprado el curso programación asíncrona con Combine en Udemy de Julio Cesar Fernandez. He aprovechado el descuento que ofrecía por el lanzamiento del curso de programación funcional.
El que estoy estudiando ahora.
El curso lo estoy resumiendo en Bear y creando un Playgrounds en xCode para ir probando yo y sacar el código para el resumen.

26.Ago.21

Estoy empezando a preparar mi CV. Me gustaría poner argumentos interesantes relacionados con la programación, no tanto con las funciones de ventas en sí.
Hay que hacer una primera versión, y luego mejorarla.
Busco también ideas y consejos en webs de empleo y de creación de CV.
Lo tendré que llevar a Linkdin para buscar ahí trabajo.

24.Ago.21

He comprado el curso de programación funcional de Julio Cesar Fernández Muñoz en Udemy. 31,99€ lo publicó ayer.
Y estoy por comprar también el libro de Clean Code de Robert C. Martin en inglés, he descargado una muestra y lo entiendo.

20.Ago.21

Hoy algoritmos.
O son más fáciles cada vez o me estoy haciendo mejor.
Creo que he resuelto hoy 3. Eran fáciles, por error me puse un intermedio y me costaba entender el problema.
Volví a los fáciles.

18.Ago.21

Hoy me he puesto a hacer algoritmos.
Necesitaba un respiro antes de seguir y ponerme con Adrian Playgrounds.
Algo más que podría hacer son diseños.
De botones, de listas, textos, animaciones en otro proyecto.
Algo así como de demo.
También quiero ir viendo lo que pone en el mapa mental de Swift, para irlo haciendo en esa demo.
He terminado de leer el libro de The complete software developer career guide.
Quiero sacar el resumen que tengo en telegram.
Puede que empiece ahora con el booklet de https://swanros.blog y después me compré el código limpio.
Que aún dudo si comprarlo en papel o en digital.
La ventaja de papel es que siempre lo voy a tener, lo puedo prestar.
No lo puedo llevar a cualquier parte, tendría que leerlo solo en casa, es un libro extenso.
Cualquiera de los dos casos sería la versión en inglés.
Porque la versión en español está agotada, incluso podría pedirla en español si es en papel.

16.Ago.21

Por fin, he podido terminar el mini juego de MasterMind.
Hace una semana no estaba con la motivación de ahora, casi podía decir que no lo veía posible, pero ya está terminado.
Aún podría mejorar mucho, pero primero tiene que funcionar.
Y funciona.

11.Ago.21

Hoy tocaba repaso de MVVM.
Creía que lo estaba haciendo fatal.
Sobre todo en esta vista de MasterMind, pero no estaba tan perdido.
Es clasificador ver de nuevo un vídeo tan explicativo del modelo.
Ver además dos vídeos es mucho mejor.
Refuerza la idea que tenía, me hace pensar que no estaba tan perdido.
Solo necesitaba un refuerzo, una retroalimentación.
Cuando estudias por tu cuenta te encuentras a veces en momentos sin motivación en los que solo el plan que te has trazado te ayuda a no perder el rumbo.
La constancia y el tener el siguiente paso a la vista.
No sé cuál podría ser el siguiente episodio del podcast.

09.Ago.21

Debería empezar a contabilizar las horas que le dedico a cada vista.
Hoy por ejemplo 2 horas a la vista de MasterMind.
Espero tenerlo listo esta semana.
Me quedan 2, que si va bien son 3 semanas en total.
Finales de agosto.
Me siento como si me faltara empuje, me estoy encontrando en una zona en la que no me queda muy claro el funcionamiento, es una zona oscura.
No sé muy bien por dónde tirar.
Sé por donde debo ir, pero siento que no encuentro los conocimientos que necesito, o no se dónde están.
Busco en Google y en YouTube.
Luego hay una que saber implementarlos a mi juego.
También es verdad que no estoy muy conforme con el aspecto, sé que podría quedar mejor.
Ahora mismo lo que busco, y me tiene que quedar claro, es que funcione.
Que la app responda como debe, ya habrá una versión 2.
Con animaciones, colores y una mejor composición.
Quizá sea bueno comenzar a buscar para septiembre, postularme para alguna oferta, dudo que me llamen a la primera.
Es probable que vayan retirando esas ofertas, así que no tengo mucho que perder, no sé cuánto me pueda llevar encontrar una oferta, de la cual me llamen, me entrevisten y me contraten.
Tengo que mejorar mi curriculum, preparar la web para alojar los vídeos de presentación.
/Cuanto más tarden en llamarme,/
/más sabré,/
/estaré mejor preparado./

08.Ago.21

Casi estoy por terminar la vista de GastaFortunas. Solo quiero añadir una cosa más que es el ticket de compra.
Aún no me queda del todo claro lo de environmentObject, StateObject y ObservedObject.
Un poco más claro que antes de hacer este ejercicio.
Me quedo con que he podido resolver los retos que me puse:
Una vista, dentro de otra vista, dentro de otra vista.
Una fila por cada categoría
Un total general
forEach y picker de un diccionario

07.Ago.21

Me gustaría mañana domingo terminar el mini juego de Gasta Fortunas
Me queda terminar de dar el diseño, y las funciones para ir añadiendo lo gastado.
Un botón que ponga pagar y una ventana que muestre el listado de lo comprado.
Me debería llevar uno por semana, más tiempo me parece mucho. Más si quiero terminarlos en agosto.

05.Ago.21

He conseguido el efecto que quería, excepto por algún pequeño problema de visualización.
No como quería.
Me gustaría hacer un ForEach.
Ahora lo único que tengo que hacer es darle forma al encabezado y al pie de página.
Dónde se verán los textos y la lógica de pulsar, añadir en un array, y sumar el importe.
Restarlo de la fortuna elegida y ver el remanente.
Aún tengo que hacer el picker de los ricos y sus fortunas.
Espero mañana avanzar algo.
No me siento del todo satisfecho, pero al menos me permite continuar, ya habrá una revisión de esa versión.

04.Ago.21

A ratos pienso que esto me está llevando demasiado tiempo.
Que ya estamos en agosto y aún sigo sin saber nada.
Que no tengo las bases para poder aplicar a un entrevista, que me estoy precipitando demasiado.
¿Esperar?
¿Cuánto tiempo más debería esperar?
¿Cómo saber cuándo estoy preparado?
No quiero pensar en eso, ayer me di una gran satisfacción, un grito de ¡Yes, I’m invincible!Como Boris de Golden Eye.
Seguiré avanzando, e intentaré que no me agobie.
Hoy he trabajado en hacer un scroll view horizontal con cada categoría.
Por un momento pensé en dejarlo como estaba, decidí darme un margen de tiempo: hoy para hacer las filas de artículos por categorías.
Casi las tengo, me está costando filtrar cada fila por categoría.

03.Ago.21

Trabajando con: Adrián Playgrounds. Gasta la fortuna de…
He logrado ya tener el horizontal scroll con las vistas particulares de cada artículo.
He tenido que mirar el proyecto de letras donde había hecho ya una carga de JSON.
Menos mal que había puesto las notas de Paso 1, paso 2.
Eso me ha ayudado a volver a hacerlo en este proyecto.
Los cursos están bien, las notas o comentarios que puedas hacer dentro del proyecto te ayudarán mucho más.

02.Ago.21

Ayer domingo empecé con lo que será la nueva vista: Gasta Fortunas.
Una vista que usará un JSON para cargar los datos.
Empecé por hacer la vista del artículo y lo siguiente será la pantalla en sí.
Para ir añadiendo al carrito lo que voy comprando.
Empecé por hacer el mockup de las vistas.
Ahora me estoy enfrentando a pensar en la lógica.
Ya iremos viendo.
Tengo pendiente un algoritmo de contar los valles, en el que por la noche se me ocurrió como resolverlo.
Mañana lo probaré.

31.Jul.21

Idea: diseñar una app para el registro de toda la vida de nuestra mascota.

30.Jul.21

Sigo con algoritmos.
Es de las partes que más disfruto.
Estoy creando una metodología.
Leer el caso.
Escribir un pseudo código y después volverlo a la función.
En lugar de volcarme al código directamente.
Hace que tenga el panorama más claro y es cómo resolver el 70-80% del problema.
El resto transformarlo.
He leído un post de una persona que después de 3 años ha logrado ser contratado.
Publicó su app en la apple store y ahora está ahí. Eso me motiva mucho a saber que es posible.
Mi idea de app:
Un súper timer con todas la posibilidades de contar el tiempo.

29.Jul.21

Sigo con algoritmos. Pensé que serían tan difíciles como el de los canguros, y no ha sido así.
Más fáciles de lo que pensaba, he resuelto uno por poco mas de una hora.
Hubo uno que me lo tuve que saltar porque directamente no entendí qué era lo que había que hacer.

27.Jul.21

He aparcado adrian Playgroundspara hacer algoritmos en hackerrank.
Mientras pienso cómo va a ser el siguiente mini juego. Una idea: gastar la fortuna de Elon Musk.
Es básicamente poner un listado de productos e irlos añadiendo a la cesta y restarlos del importe.
Quizá resolver 2 o 3 algoritmos, ver la manera de implementarlos en una app y mostrarla en GitHub.

22.Jul.21

A veces es mejor replanteárselo de nuevo.
Llevo toda la semana intentando hacer funcionar el mini juego del ahorcado de Adrian Playgrounds.
Es un juego sencillo.
Elige la dificultad, que es la cantidad de vocales que puedes pedir.
Empieza el juego : func empezar()
Intenta adivinar la palabra()
Pide letra()
Condiciones:

  • Deshabilitados los botones pedir letra e intentar palabra si el juego no está empezado o los intentos fallidos ya son 6.
  • Maximo número de letras fallidas es 6.
  • Si se te acabaron las vocales y pides vocal: strike.
  • Si letra que pides no está en la palabra: strike.
    Hice la función pideLetra()imaginando los casos posibles, uniendo dos condiciones en un if y lo que se debía ejecutar en cada caso.
    Lo hice con las letras y funcionaba (aun sin validar los strikes), pero cuando añadí la opción de dificultad con cantidad de vocales todo se fue al garete. Intentaba ese mismo if darle la nueva forma.
    Aunque no fue posible.
    Al final, después de 2 días, decidí empezar de nuevo.
    Hacer antes el flujograma.
    Lo hice en un Excel y consideré cada caso.
    Al final ha salido bien.
21.Jul.21

Como añadir una funcionalidad y que se convierta en un verdadero calvario. He pasado las horas esta mañana intentando hacer que funcionara la funcionalidad de elegir dificultad en la que limita las vocales que se pueden elegir.
Llego un momento en el que no entendía nada, no entendida cómo funcionaban los bool!! Cuando entraba en casa caso if, he tenido que imprimir en pantalla cuando entra en cada caso para así saber porque.
Al final he logrado que se limite a las vocales.
Ahora tengo que enlazar que cuando se elija la dificultad se establezcan esas cantidad de vocales.
22:38:01
Es ver las ofertas de empleo que hay publicada en infojobs y me hace bajar a la realidad, me pone los pies en la tierra. Lo que me me dice que aún me hace falta mucho por aprender, que no sé realmente nada.

19.Jul.21

Como cambia todo cuando lo haces en un app.
Con el juego del ahorcado.
Están las letras, puedes pujar por una letra.
También tienes que saber cuándo va a empezar el juego, cuando termina, cuándo gana, cuando pierde el usuario.
Y si le das opciones como último intento, o este es el fin.
Hay que de alguna manera tenerlo todo validado. Lo que podrá hacer y no hacer en cada momento.
Me está gustando.
Quizá voy algo lento, estoy aprendiendo mucho.
Es justo lo que necesitaba. Ponerme manos a la obra en un proyecto propio.
En algo hecho por mí y que sea un reto, que sea una motivación.
Haré esta semana, y luego puede que vuelva a vídeos, o algoritmos, aún no lo sé.
Tengo que hacer un plan, lo que debo saber.
Ese 20% que debo /tener controlado/ que me de seguridad para las entrevistas de trabajo.
Sobre eso debe haber proyecto que mostrar.
Aún tengo que averiguar cuál es ese 20%.

18.Jul.21

Mini juego: Ahorcado
Hasta ahora el más difícil de los 3 que llevo.
Hay que introducir una letra en un campo de texto.
Al pulsar el botón, tenía que mostrar en pantalla esa letra en todas las posiciones de la palabra elegida al azar (previo botón de empezar).
Primero decidí copiar de playgrounds, que ya lo había hecho en forma de una función.
Aquí era totalmente diferente.
De hecho tuve que rehacerlo todo porque era algo con NSString, que hasta ahora no tengo ni idea aún cómo funciona exactamente.
No estaba funcionando por el casting entre tipos de valor.
Así que lo he tenido que convertir a Character. Trabajando en arrays en lugar de posiciones en un String.
A veces me daba la sensación de no comprender que era lo que estaba haciendo, más o menos sabía por dónde tenía que ir. Era prueba y error.
Al final lo he logrado. Después de 2 horas y media.
Las letras se cambiaban.
Aun queda mucho por validar, y dar formato y demás, el core del juego está hecho.
Ha sido una buena tarde.

15.Jul.21

He estado dos horas estudiando. Ya he terminado la pantalla de validación de DNI / NIE y ahora empezaré otra que es el juego del ahorcado. He sacado las imágenes de una emoji y dibujadas.
La premisa debe ser primero que funcione y como versión 2 hacerlo bonito, mejorarlo visualmente.
Me va gustando, si he tenido que consultar alguno que otro proyecto que ha había hecho para refrescarme la memoria, al final lo he podido adaptar al actual.
De eso se trata, de ir comprendiendo no de memorizar.
El siguiente sería otro mini juego de piedra, papel, tijeras, lagarto, Spock.

12.Jul.21

Algoritmos : solo resuelvo el problema de los canguros y ya
Es un YES. Si la diferencia entre (v2 – v1) y (x2-x1) es menor que el menor de esos 2 o si el remanente es mayor a 1.

06.Jul.21

Cookbook: un proyecto en el que vengan todos los botones, estructuras, algoritmos, clases que usar en otros proyectos

5.Jul.21

Lunes 5 julio
Xcode : algoritmos hackerrank 50‘ + 20’
Podcast : 25’ + 45’
Vídeos : 0’
Podcast:
Cargar lo más importante primero.
Dar feedback al usuario de que algo está cargando.
Aunque sean marcos grises.

1.Jul.21
  • Call to action al final de episodio:
  • tengo alguna muletilla?
  • me recomendarías algún libro?
  • recomiéndame un recurso, libro, curso, app
  • Hablar sobre el libro de the dip
  • Como afronto los esos errores en el código que el curso no te explica
30.Jun.21

Idea para app de proyecto:
App de mini juegos
Colgado
Basta
Gato
Sudoku
Adivina el color
Calculadora al revés
Adivina la bandera

29.Jun.21

Noto el bajón de no hacer ejercicio, hoy no estaba muy seguro de mi mismo y de lo que estaba haciendo.
Me entró esa sensación de estar perdiendo el tiempo porque esto de programar es mucho más de lo que estoy viendo.
Es como venirme abajo, quizá es también por el WhatsApp que recibí, quizá porque lo veo aún tan lejano el poder encontrar un empleo de desarrollador.
Mañana iré al Crossfit y espero que todo mejore.

28.Jun.21

Estoy agradecido por poder dedicar tiempo a estudiar. He estado de 11 hasta la 13:30.
Antes me pude dar el lujo de levantar a las 9:00 hasta que quise prácticamente, me desperté a las 8:20 y decidí volver a dormir.
Di un paseo a las chicas, desayuné tranquilamente y luego a estudiar.
He podido resolver el problema de JSON que me decía un error de nil o algo así.
Probé hacer otro modelo en el mismo proyecto, modificar los nombres, descargue el proyecto del curso de Udemy e hice un proyecto nuevo.
Descubrí que el problema estaba en el nombre de la variable.
He tenido que dejarle data, por alguna razón no funcionaba con el nombre dataProvider.
Me ha roto la cabeza toda la mañana pero he aprendido algo.
Mañana la siguiente lección.

23.Jun.2021

Haber tenido tiempo para practicar programación. De 17:30 a 19 más o menos.
Voy avanzando y resolviendo los errores por mi cuenta.
He hecho algunos cambios respecto al curso, así que está un poco más complicado y tengo que adaptar, van saliendo poco a poco.

17.Jun.21

Ayer grabé el segundo episodio de lo que será el podcast próxima Parada: Swift. Mi mudanza profesional
He diseñado un par de logos, aunque creo que sé cuál será el que usaré.
Aún no me siento del todo cómodo grabando. Sobre todo hoy que estaba Nic.
Aunque estaba en la habitación de Val trabajando y no me interrumpió en ningún momento, no creo que sea el mejor de los episodios.
Esto me imagino que se irá mejorando con el tiempo, con la práctica.
Quiero que el mismo podcast también vaya tomando forma en estos primeros diez episodios.
Voy mejorando las notas, añadiendo la intro, luego tendré que hacer un outro.
Quizá nunca estaré del todo satisfecho con él, pero lo que debo de pensar es que lo hago no para tener audiencia sino como proyecto curricular, cuando busque empleo.
Quizá después haga la página web, ya iré viendo.
Me gusta más la versión 1. Es más minimalista.

OpciónB Próxima Parada Swift
15.Jun.21

Hoy estoy agradecido por haber grabado lo que podría ser el primer episodio del podcast: Proxima parada: Swift
casi media hora de duración.
He elegido una música y seguramente será en ivoox donde publique.
No me interesa tener muchas escuchas, sino más bien ir registrando mi aprendizaje y mis avances en Swift para poder después añadirlo a mi CV, cuando me presente a alguna oferta.
aún no está publicado, lo publicaré cuando lleve unos 10 episodios.
Ep 1: Probando…probando
Hoy va a ser un día especial porque… he grabado mi primer episodio del podcast y he abierto mi cuenta de twitter.
@adrintro
Próxima parada: Swift
aun pueden surgir cambios en el nombre…

11.Jun.21

/What is one action that would make today a success?/

  • Venir a entrenar.
  • Practicar programación.
    Si puedo hacer esas dos cosas en el día, lo demás podría decir que me da igual. He cumplido conmigo mismo.
10.Jun.21

Debería empezar ya a crear el podcast de aprendiendo a programar.
No sé como se podría llamar.
Hacerlo y ya veremos después las mejoras, hacerme al hábito de grabar, de escribir el guion y hablar.
Tengo que encontrar el momento, donde encajar ese hábito, esa tarea.
Crear una cuenta de twiter, una de GitHub.
Necesito una foto de perfile e ideas para el nombre de usuario.
AdrusNueve

03.Jun.21

Voy en buena dirección.
Siento que estoy aprendiendo, siento que estoy un paso más cerca de convertirme en programador.
Aún me queda mucho tiempo, el año que me he propuesto lo veo realista.
Estoy motivado, o sigo motivado.
A veces es bueno tomarse un respiro y cambiar alguna cosa en el aprendizaje.
Intentaré seguir las recomendaciones de Paul Hudson del vídeo convertirse en desarrollador en 2021.

02.Jun.21

Hoy estoy agradecido por que me ha dado tiempo de aprender a programar y entrenar.
Siento que voy avanzando poco a poco.

01.Jun.21

Que ahora estoy entendiendo lo que es @StateObject, @EnviromentObject y @ObservedObject
Poco a poco, aún no los domino, aún me acuerdo cuando no entendía absolutamente nada y lo veía tan complejo.
Y ahora poco a poco va haciéndose en mi mente.
Vi en un vídeo de Paul Hudson de convertirse en desarrollador en 2021y coincide con el tiempo que me había propuesto: 1 Año.
Eso me motiva y pone un poco de presión y una fecha límite para poder cambiar de profesión.
Sigo motivado, me gusta y Nic tiene puesta su confianza en mi.
Me gustaría dedicarle más tiempo, no sé si dedicarle 4 o 6 horas al día sea realmente productivo.
Lo decía también Paul Hudson.
Siento que voy avanzando, veo progresos y lo único que debo hacer es seguir haciendo y dedicándole tiempo día a día.
Ahora estoy viendo vídeos de hacking with Swift de Paul Hudson en el bus. En lugar de leer.

20.May.21

Que voy entendiendo mejor, con el curso de Jorge Maldonado de Udemy, como funciona Swift.
Voy viendo avances, aún con el poco tiempo que le dedico.

12.May.21

He vuelto a hacer el curso de Swift essentials, cambiando las var por los nombres que he elegido yo, así puedo saber o descubrir de dónde viene y a dónde va cada uno.
Puede que lo esté descubriendo.
Ahora lo que quiero aprender es que el usuario introduzca o haga modificaciones y esas se guarden.

10.May.21

Me senté a intentar resolver porque el modelo de datos no funciona en lo que estoy haciendo.
Tampoco pude resolverlo.
Son 7 pasos que no entiendo aún qué son y para que son.
No les encuentro lógica… por ahora.

07.May.21

Estoy rehaciendo los Swift essentials cambiando las variables y las vistas.
Así puedo entender de dónde viene cada una de ellas.
El primero era difícil porque tenía que prestar atención a lo que sucedía cuando ponía el código, ahora puedo darme el lujo de cambiar esos nombres y aún lograr que funcione.
He creado mi propio Json y struct, identificando de donde viene cada etiqueta.
Me va saliendo bien.

27.Abr.21

Voy a hacer el curso que compré ayer de SwifUI: Desarrollo de apps para iOs con SwiftUI y UIKit.Es de un mexicano y hasta ahora bien.
Me he saltado un poco las variables, constantes y demás para ir a lo que me interesa que es SwiftUI.
He aprendido a hacer la Launch View, a añadir los iconos. Y he hecho probatinas con las vistas.
Así parece fácil.
Ir toqueteando sin miedo a romper algo, e ir probando con la vistan previa.
Sin ir a entrenar he aprovechado la mañana, y eso que podría haberme levantado antes para que estar más tiempo.
Si siento que aprendo no me cuesta tanto.
Si veo que no estoy haciendo o aprendiendo nada es lo que me cuesta.
Mañana me gustaría hacer el juego de ahorcado.

26.Abr.21

Una sensación de no aprender, de estar perdiendo el tiempo al copiar y pegar funciones que no entendía de nada. Así que frustración total.

16.Abr.21

¿Cómo puedo crear un ambiente que me facilite mi cambio?
Necesito tener tiempo para aprender a programar.
He hablado con Nic y me dará ese tiempo los fines de semana.
Ahora tengo también que escribir y comenzar a grabar.
Hoy he recordado cuando escribí que debía aprender a programar y han tenido que pasar 5 años para que comenzara.
Me he sacado una sonrisa, al menos sé que voy por el buen camino.
Me reafirmo en lo que quiero hacer, ahora solo falta hacerlo.

11.Abr.21

He estudiado un par de horas.
Eso del observable object, state y published me está costando más trabajo entenderlo de lo que me gustaría.
Pero sé que no me queda mucho.

05.Abr.21

Que ganas tengo de cambiar de profesión.
A la vez me entra la incertidumbre, pero tengo que hacerlo.
También estaría muy bien hacer lo podcast, mi canal de YouTube, o vídeos, yo que sé.

04.Abr.21

Me he puesto a estudiar, haciendo el curso de Stanford.
Aun no termino de comprender muy bien el MVVM, y sobre todo la relación entre las clases y las estructuras, lo tendré que ver nuevamente y dedicarle tiempo a leer el código.

03.Abr.21

Hoy he hecho la primera parte del curso de Stanford de SwiftUI
Y la aplicación de demo que vamos a hacer es un juego de memoria con Cartas esta vez lo que haré es en el mismo proyecto seguir la lección pausar cada vez y hacer otro SwiftUI con las pruebas así podré poner pausa ir cambiando y hacer mis probatinas por mi cuenta.

02.Abr.21

Hubiéramos aprovechado más el día. Nos despertamos a las 11.
Desayunamos y me puse a estudiar 12 a 16.
Quizá fue demasiado tiempo, terminé frustrado porque no podía resolver lo que quería hacer.
Un listado con los datos, como la app de ayer.
Cuando paso tantas horas en el ordenador me digo que no le hago caso a Nic, y cuando estoy con ella pienso que debería estar en el ordenador.
Es una contradicción.
Quizá es por que hoy termine frustrado de no haber logrado, si me hubiera salido, estaría feliz.
Mañana será otro día y le dedicaré unas horas por la tarde.

25.Mar.21

Creo que lo mejor será estos días que tengo tan poco tiempo hacer ejercicios.
Porque hacer la app me toma más tiempo /echar a andar los motores/, además siento que algo me está faltando en el curso de la app calculadora.
No lo estoy entendiendo del todo.
No entiendo la razón de cada función.
Tengo que fijarme en tantas cosas que pierdo de vista todo.
Los formateos del número, la lógica, las operaciones, que no son complicadas. Unos pocos if y switch, tengo que saber porque están ahí.
Quizá si empezara por una calculadora sin decimales.
O saber cuándo se llama a qué, con eso me quedaría un poco más claro.
Mañana Nic está en casa, así que no sé si podré practicar.
Me está faltando enfocarme y realmente aprender en lugar de copiar y escribir.

24.Mar.21

Es frustrante, tengo poco tiempo media hora para poder dedicar a aprender a programar.
Le debería dedicar más, lo sé, me está dando tantos problemas el que se compile la app que paso más tiempo intentando solucionar que se compile que lo que de dedicó a ver el vídeo.
Es frustrante, ya lo tenía resuelto, que desde un principio dio problemas, y hoy otra vez.
No sé si copiar el texto y hacer un nuevo proyecto o intentar arreglar el mismo.
Mañana seguro funcionará.
Me he pillado un cabreo que he salido antes de casa y he apagado todo de mala gana.

21.Mar.21

He avanzado con el proyecto de la calculadora que estoy haciendo con el video de Brais Moure.
Es una copia de lo que él va haciendo, estoy haciendo algunas modificaciones.
Hemos llegado a la parte de la definición de las variables y es dónde quiero yo hacer un trabajo previo para definirlas antes de volverlas a ver.

20.Mar.21

Después me he puesto con la master class de SwiftUI de Julio César en appleCoding en Twitch.

19.Mar.21

Quizá debería haber practicado más programación, pero no lo he dejado.
Tengo que ponerme más, me imagino que cuando vuelva al trabajo ya lo retomaré.

17.Mar.21

Hoy comenzaré con los 50 siguientes ejercicios del libro la lógica de la programación.
Cada vez voy teniendo más soltura.
Tengo que empezar también a probar el diseño de la app.
Con los temas que he visto ya podría comenzar a dar forma, aun no me decido muy bien qué hacer.
Podría quedar:

  • Calculadora
  • Cuestionario
  • Ahorcado
  • Juego de Memoria
  • Mecanografía
    No sé, tengo que poner varias e ir probando.
    Quiero también ya ir grabando episodios del podcast.
    Ya veremos.
    Son muchos proyectos y tan poco tiempo.
02.Mar.21

Ha llegado mi monitor. Un LG de 29” ultra wide. Lo he colocado en el escritorio e instalado la aplicación para ordenar las ventanas. He practicado poco, ya lo dejaré listo para mañana.
Me gusta que las aplicaciones y todo lo que tengo en el iPhone y en el iPad esté sincronizado, es lo mejor que puede tener.

28.Feb.21

Practique un poco en el iPad, terminé los 50 ejercicios del libro la lógica de la programacióny pedí el monitor ultraWide LG de 29” a Macnificos 220€, llegará el martes, según.

21.Feb.21

He practicado Swift con los ejercicios del libro.

12.Feb.21

He encendido la Mac mini.
No ha funcionado con el monitor con la conexión vga, será seguramente por la resolución de pantalla. Así que lo he tenido que poner en la tv.
Configuración inicial hecha. He descargado 2 aplicaciones Grid Diary y Xcode.
Tendré que cambiar la resolución y luego ponerla en el escritorio para poder trabajar en condiciones.
Dependiendo cómo se vea el monitor tendré que comprar otro.

30.Ene.21

Es el día en que me pedido a través de la web de apple el Mac mini. Un M1 de 16gb y 512gb de memoria interna.
Quizá es un poco grande para lo que voy a utilizarlo, pero como no se le puede añadir memoria después.
Prefiero tenerlo así, quizá me dure 10 años.
1.259€ me ha costado, lo he puesto a 6 meses con la financiera Cetelem y en principio estaba pre-autorizada la operación.
Al poco rato me llego el correo con la aprobación, y me falta el correo de apple para confirmar el pedido.
La entrega será para el 17 de febrero aproximadamente.

25.Ene.21

Quiero ya cambiar de profesión, aún no tengo ninguna base sobre programación, me queda un largo trecho.
Estoy intentando aprender lo más que puedo, quizá deba dedicar más horas, también a las chicas siento que les estoy dejando de prestar atención.
No llego a todo y deja una sensación mala de conciencia.

20.Ene.21

Estoy dedicando todo el tiempo que puedo a aprender Swift.
Como me gustaría ya saber y poder cambiar de profesión ahora mismo.
Tengo que aprender lo más rápido posible y después encontrar un trabajo de ello.
Podría ahorrar 9.500€ que es lo que cuesta el boot camp de apple coding con la posibilidad de encontrar un empleo.
Este año no, el próximo ese sería una opción.

9.Ene.21

He podido hacer lo que tenía pensado hacer sobre el ahorcado en el Swift Playgrounds. Aún no es un juego funcional, falta mostrarlo en la consola y que sea interactivo.
He podido ir cambiando los _ espacios por las letras.
Se resumen así, para hacerlo me ha llevado, eso sí menos del tiempo que creía.
Esta parte está hecha, lo siguiente es ponerlo en la consola.

8.Ene.21

Estoy haciendo mi segunda actividad en Swift Playgrounds. La primera una calculadora.
Una pequeña función que pedía dos números y un operador y devolvía una frase con los números, la operación y el resultado.
Ahora he comenzado a hacer un mini juego de ahorcado.
Una palabra al azar y luego ir adivinando letras.
Me he atascado en : a partir de una letra recibida, sustituirla en la cadena mostrada con los _,
Ya veremos..

5.Ene.21

Debería grabar en el diario que inicie el año pasado en mayo. Quizá con mi relato sobre cómo estoy aprendiendo programación. Me gustaría hacerlo, con el podcast programación 101que estoy escuchando me motiva mucho para grabar y para seguir adelante. Pensar que es posible aprender y cambiar de profesión, además me da la idea de cómo es ese mundo.

2.Ene.21

I’m on level 12 in Unwrap by @twostraws. Download it here: https://itunes.apple.com/app/id1440611372

2021

21.Dic.20

Me he decidido a aprender a programar.
Tengo que dedicar por lo menos una hora a aprender sobre programación.
No solo el lenguaje, sino todo lo que lleva consigo.
Hay que aprender la lógica que lleva, Xcode, las mejores prácticas, de los errores de otros programadores.
Tendré que ver vídeos, escuchar podcast, practicar código, hacer min proyectos, ver vídeos.
Algo global, y no solo el lenguaje en sí.
Tendré que comprarme un Max mini. 799€, espero para el mes de enero, para mediados poder comprarlo. Y hacerme un hueco para ello.
El 2021 será el año en que dedique mi tiempo a ello. Además de entrenar.
Se lo he dicho a mi mamá y a mi hermano, ellos serán los testigos de que lo haga, además claro de Nic y yo mismo.
Es momento de cambiar de profesión.

16.Dic.20

he empezado con el curso 100 días Swift con Paul Hudson. Un curso gratuito para aprender Swift. Me he descargado la app.
Consiste en hacer cada día durante 100 días seguidos el curso y compartirlo en redes sociales lo que has aprendido.
He escuchado sobre el curso en un vídeo de YouTube y lo recomendaban. Así que empezaré con él.
Este primer día ha sido fácil porque es empezar básicamente, lo haré mientras voy en el bus.
Quizá antes de comprarme un iPhone compraré un Mac mini, para ponerme manos a la obra. Es dedicarle tiempo.

10.Dic.20

Luego, me puse a estudiar Swift y llevaba ya varios días con un ejercicio en la cabeza que vi en los vídeos de Code with Chris, que era con un For in crear lo siguiente:
x
xx
xxx
xxxx
xxxxx
No lo logré hacer y me quedo ahí grabado que se podía hacer.
Y ayer con el libro de aprendiendo Swift de Julio César Fernández Muñozme animé a hacerlo.
Busque un poco en internet el comando para quitar el espacio inicial y me salió!
Pocas líneas de código y relativamente rápido.

4.Dic.20

Me siento desbordado con la presión del trabajo, con ganas de abandonar, de cambiar de giro.
He empezado a , mejor dicho continuado a hacer el curso de Swift a ver si algún día puedo aprender algo y comenzar a programar y así tener otra salida profesional.

19.Nov.2020

Estoy dedicando tiempo aprender Swift. YouTube y Udemy, con varios programadores que cada uno lo explica de manera distinta y me ayuda a comprenderlo mejor. Quizá sea la salida profesional que necesito, siempre tarde, algo tengo que hacer.
Estoy aprendiendo pero me cuesta bajarlo a la práctica, ver el producto final. Me imagino que ya llegará.
Ahora esto dudando en comprarme un Mac mini799€, con el iPad voy apañándome, no sé si lo necesite realmente ahora. Como el de iPhone que me va aguantando más de lo que esperaba.

11.Nov.2020

Me diera tiempo de comer tranquilamente.
Me voy a entrenar y luego vuelvo, desayuno y me pongo a estudiar Swift; estoy con unos vídeos de YouTube y ahora estoy entendiendo aléguense cosas más, de las básicas.
Tendré que hacer muchos ejercicios prácticos para poder afianzar lo que estoy aprendiendo.

09.Nov.2020

he tenido la mañana libre. En este horario de 2 a 8, me ha permitido levantarme casi a las 8:30, bajar a las chicas, poner 2 lavadoras, entrenar en casa, comprar fruta, ver un par de vídeos de aprendiendo Swift, almorzar, ducharme y volverlas a bajar.

31.Ago.2020

Las otras compañías de telefonía empiezan a cerrar tiendas, me imagino que donde estoy irá por el mismo camino. Es momento de ir pensando en el próximo paso:
Programar
Ya lo escuché en una entrevista no es difícil. Solo hay que dedicarle horas, como ha todo. Constancia. Tendré que organizarme para volver a hacer los cursos de Swift.

09.Jun.2020

Dedicarle a algo de tiempo de Swift. Hace varios días que no puedo hacerlo por falta de tiempo.

23.Abr.2020

Hoy hubiera sido mejor si esta semana si hubiera podido practicar Swift.

Practicar con aprendiendo Swift.
Nic se ha tomado el día libre, aún así he preferido practicar el curso.
Sigo viendo avances, poco a poco.
Estoy ya en la última lección, y es crear tu propio mundo.

21.Abr.2020

Hoy he hecho avances en el curso de aprendiendo Swift, ha servido volver atrás para reafirmar los conocimientos.
Hay veces que siento que voy avanzando de alguna manera.
Sin saber exactamente cómo resuelvo los puzzles, los completo, eso si a prueba y error.
Luego tengo que repetir varias veces los ejercicios de diferentes maneras para asegurarme de que he entendido cada lección.

20.Abr.2020

Hoy por la mañana en el curso de Swift me ha sido imposible realizar el rompecabezas, tuve que pedir la solución, y sabía que era una tontería, un par de frases de código y ya, no lo lograba entender.
He tenido que volver atrás a las lecciones donde comienzan a hablar de colecciones e intentar hacer que me entre de nuevo en la cabeza.
Ha sido frustrante debo admitir, me pasa también cuando leo algunos libros en los que leo palabras, no entiendo lo que quieren decir, no consigo entender lo que está explicando.
Es frustrante, mañana será otro día.

17.Abr.2020

Ya había comprado hace un par de semanas el curso de Julio Cesar Fernandezaprendiendo Swift, es una manera de demostrar mi apoyo a los podcast que escucho.

13.Abr.2020

Me he puesto con el curso de Aprendiendo Swift, creo que voy haciendo progresos.

06.Abr.2020

Hacer progresos en Aprendiendo Swift, ya estoy en el curso 2.
Cada vez va siendo más fácil, los puzzles que pone en los retos van avanzando en dificultad, los voy superando.
A veces hay que descansar si me encuentro atorado en alguno, para luego volver con más ideas o ver las cosas de otra manera.

03.Abr.2020

Sigo con Swift Playgrounds y es curioso pensar en que aprendes mientras te diviertes, mientras resuelves /rompecabezas/ que son los problemas que te van poniendo confirme avanzas de nivel.
A veces lo pienso y digo que programar es demasiado, es un campo demasiado amplio y que formándome ahora no tendré tiempo siquiera de que sea una salida laboral en un futuro.
Es mejor comenzar ahora, ir aprendiendo, pasar años y años antes de que se pueda convertir en una fuente de ingresos si es que en lo que pueda trabajar ya no me lo permita.
Es adquirir conocimientos y experiencia, en un futuro, aunque esto avance, podré utilizarlo, no debo desanimarme, ni ver que no soy capaz, al contrario, en que lo aprendo rápido.
Recuerdo cuando surgió un problema cuando vendía /software ERP/, a la Galería X tenía que preparar unos formatos que debían incluir las imágenes de las obras, mi jefe solo me dijo que con el formato HTML se podía hacer, después de mucho probar descubrí como se hacían y aún recuerdo como sentí esa satisfacción de haber podido hacerlo.
Tiempo después cuando en Microsoft Access creaba mis propias consultas, toqueteando código SQL, con ayuda del generador. La necesidad me hizo aprender y lograrlo.
¿Porqué iba a ser diferente esta vez?
No me lo creo cuando parece que estoy jugando, si lo pienso bien, ya estoy entendiendo la estructura del código, sin que me haya tenido que /aprender/ que llave va después de que comando, es a base de repetición, prueba y error lo que hace que mi cerebro 🧠 aprenda.

26.Mar.2020

Hoy voy a omenzar con el curso de programación de apple coding. Lo estoy haciendo a través de Udemy y con la app swift playground en el iPad. Han sido 70€. Espero aprovecharlo al máximo.

18.Mar.2020

Yo aún tengo duda si contratar el curso de aprendiendo Swift de Apple Coding Academy, con descuento son 70€, de normal 90€. Con Swift Playgrounds que tengo en el iPad instalada podría hacer el curso. Entre hoy y mañana tengo que tomar una decisión. Me gustaría ademas que Nic lo tomara también, quizá nos podríamos poner el fin de semana a aprender. Hacerlo juntos.

2020

09.Dic.2015

Hoy me he despertado a las 10. Entre que bajo a las chicas al paseo, me levanto, y desayuno dan las 11:50, a esa hora he hecho cosas de casa, y me he metido a los cursos gratuitos de Platzi, de programación.
Probaré los curso gratis que tienen varios antes de pagar los 29 dólares que cuesta al mes el acceso a todos los cursos.
Tengo que aprovechar las mañanas, aún no sé bien en qué, podría empezar por hacer ejercicio, machacarme a nadar, correr y hacer TRX.
Tomar cursos, hay que ver
¿De qué?,
¿De programación?
¿Para que?
¿Realmente quiero aprender a programar?