<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>slekens.dev — Blog</title>
    <link>https://slekens.dev/es/blog/</link>
    <atom:link href="https://slekens.dev/rss.xml" rel="self" type="application/rss+xml" />
    <description>Desarrollo iOS y macOS con Swift, por Slekens.</description>
    <language>es</language>
    <lastBuildDate>Tue, 23 Jun 2026 16:27:42 GMT</lastBuildDate>
    <item>
      <title>WWDC 2026 para devs (parte 4): visionOS, el giro de Siri y el resto del ecosistema</title>
      <link>https://slekens.dev/es/blog/wwdc-2026-parte-4-para-devs/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/wwdc-2026-parte-4-para-devs/</guid>
      <pubDate>Sun, 21 Jun 2026 10:00:00 GMT</pubDate>
      <description>Cuarta entrega del resumen de WWDC 2026 para devs: visionOS 27 y RealityKit, App Intents como nuevo contrato de Siri, novedades de StoreKit y la adopción automática de Liquid Glass.</description>
      <category>WWDC</category>
      <category>visionOS</category>
      <category>App Intents</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Narcisse 1.2.0 ya está disponible</title>
      <link>https://slekens.dev/es/blog/narcisse-1-2-0-disponible/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/narcisse-1-2-0-disponible/</guid>
      <pubDate>Wed, 17 Jun 2026 18:00:00 GMT</pubDate>
      <description>Salió Narcisse 1.2.0: rediseño visual completo, subtono de piel y 9 colores de cabello, wishlist «Lo tengo», widget gratis y modo oscuro.</description>
      <category>Apps</category>
      <category>Narcisse</category>
      <category>iOS</category>
    </item>
    <item>
      <title>WWDC 2026 para devs (parte 3): Agent Skills de Xcode y las APIs oficiales de SwiftUI</title>
      <link>https://slekens.dev/es/blog/wwdc-2026-parte-3-para-devs/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/wwdc-2026-parte-3-para-devs/</guid>
      <pubDate>Sun, 14 Jun 2026 15:00:00 GMT</pubDate>
      <description>Tercera entrega del resumen de WWDC 2026 para devs: los Agent Skills que Xcode 27 trae de fábrica (y cómo crear los tuyos) y los nombres oficiales de las nuevas APIs de SwiftUI según la guía de Apple.</description>
      <category>WWDC</category>
      <category>Xcode</category>
      <category>SwiftUI</category>
      <category>Swift</category>
    </item>
    <item>
      <title>WWDC 2026 para devs (parte 2): IA en apps, agentes y más SwiftUI</title>
      <link>https://slekens.dev/es/blog/wwdc-2026-parte-2-para-devs/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/wwdc-2026-parte-2-para-devs/</guid>
      <pubDate>Sun, 14 Jun 2026 09:00:00 GMT</pubDate>
      <description>Segunda entrega del resumen de WWDC 2026 para desarrolladores: el protocolo LanguageModel de Foundation Models, los agentes de doble motor en Xcode 27 y más detalles de SwiftUI/SwiftData.</description>
      <category>WWDC</category>
      <category>Swift</category>
      <category>SwiftUI</category>
      <category>IA</category>
    </item>
    <item>
      <title>WWDC 2026 para desarrolladores: lo que sabemos hasta ahora</title>
      <link>https://slekens.dev/es/blog/wwdc-2026-novedades-para-devs/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/wwdc-2026-novedades-para-devs/</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
      <description>Resumen para devs de WWDC 2026: novedades de SwiftUI, Swift 6.4, Xcode 27 y las nuevas APIs de IA (App Intents y Foundation Models). Información preliminar.</description>
      <category>WWDC</category>
      <category>Swift</category>
      <category>SwiftUI</category>
      <category>Xcode</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 10: CI/CD con GitHub Actions</title>
      <link>https://slekens.dev/es/blog/poketracker-10-cicd/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-10-cicd/</guid>
      <pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
      <description>Última parte de la serie PokeTracker: configuramos un pipeline de CI/CD con GitHub Actions que compila y prueba la app en cada push. Y el repositorio.</description>
      <category>Swift</category>
      <category>CI/CD</category>
      <category>GitHub Actions</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 9: Pruebas unitarias con Swift Testing</title>
      <link>https://slekens.dev/es/blog/poketracker-09-testing/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-09-testing/</guid>
      <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
      <description>Parte 9 de la serie PokeTracker: escribimos pruebas unitarias con el nuevo framework Swift Testing usando Mocks, @Suite y #expect.</description>
      <category>Swift</category>
      <category>Testing</category>
      <category>Unit Tests</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 8: ViewModel con @Observable</title>
      <link>https://slekens.dev/es/blog/poketracker-08-viewmodel/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-08-viewmodel/</guid>
      <pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate>
      <description>Parte 8 de la serie PokeTracker: construimos PokemonListViewModel con el nuevo macro @Observable, manejamos paginación, búsqueda, filtros y la lógica cache-first.</description>
      <category>Swift</category>
      <category>SwiftUI</category>
      <category>Observable</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 7: Caché de imágenes</title>
      <link>https://slekens.dev/es/blog/poketracker-07-image-cache/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-07-image-cache/</guid>
      <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
      <description>Parte 7 de la serie PokeTracker: implementamos un sistema de caché de imágenes en dos niveles — NSCache en memoria y FileManager en disco — usando actors de Swift.</description>
      <category>Swift</category>
      <category>Cache</category>
      <category>actor</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 6: Persistencia offline con SwiftData</title>
      <link>https://slekens.dev/es/blog/poketracker-06-swiftdata/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-06-swiftdata/</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <description>Parte 6 de la serie PokeTracker: implementamos los modelos @Model, el servicio de datos y la estrategia cache-first para que la app funcione sin conexión.</description>
      <category>Swift</category>
      <category>SwiftData</category>
      <category>Persistencia</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 5: Modelos de dominio y Use Cases</title>
      <link>https://slekens.dev/es/blog/poketracker-05-dominio/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-05-dominio/</guid>
      <pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
      <description>Parte 5 de la serie PokeTracker: creamos los modelos propios de la app y los Use Cases que convierten DTOs en datos listos para la interfaz.</description>
      <category>Swift</category>
      <category>Arquitectura</category>
      <category>Domain</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 4: Repository Pattern</title>
      <link>https://slekens.dev/es/blog/poketracker-04-repository/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-04-repository/</guid>
      <pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate>
      <description>Parte 4 de la serie PokeTracker: qué es el Repository Pattern, por qué lo usamos y cómo implementamos PokemonRepository.</description>
      <category>Swift</category>
      <category>Arquitectura</category>
      <category>Repository</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 3: DTOs y el contrato con la API</title>
      <link>https://slekens.dev/es/blog/poketracker-03-dtos/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-03-dtos/</guid>
      <pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate>
      <description>Parte 3 de la serie PokeTracker: qué son los DTOs, por qué no usamos los datos de la API directamente y cómo definimos el contrato con PokéAPI.</description>
      <category>Swift</category>
      <category>DTOs</category>
      <category>Networking</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 2: Capa de red</title>
      <link>https://slekens.dev/es/blog/poketracker-02-capa-de-red/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-02-capa-de-red/</guid>
      <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
      <description>Parte 2 de la serie PokeTracker: construimos el cliente HTTP, definimos los endpoints con un enum y creamos errores de red tipados.</description>
      <category>Swift</category>
      <category>Networking</category>
      <category>async/await</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Construyendo una Pokédex en iOS — Parte 1: Estructura del proyecto</title>
      <link>https://slekens.dev/es/blog/poketracker-01-arquitectura/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/poketracker-01-arquitectura/</guid>
      <pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate>
      <description>Primer post de la serie PokeTracker: qué vamos a construir, cómo estructuramos el proyecto y por qué organizamos el código en capas.</description>
      <category>Swift</category>
      <category>SwiftUI</category>
      <category>Arquitectura</category>
      <category>iOS</category>
    </item>
    <item>
      <title>Compilación condicional en Swift</title>
      <link>https://slekens.dev/es/blog/compilacion-condicional-en-swift/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/compilacion-condicional-en-swift/</guid>
      <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
      <description>Qué es #if en Swift, cómo difiere de un if normal, y cuándo usarlo: DEBUG, plataformas, simulador, flags propios y la diferencia con assert().</description>
      <category>Swift</category>
      <category>macOS</category>
      <category>Xcode</category>
    </item>
    <item>
      <title>Generics en Swift</title>
      <link>https://slekens.dev/es/blog/generics-en-swift/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/generics-en-swift/</guid>
      <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
      <description>Qué son los generics, cómo se escriben, cuándo restringir tipos con Comparable o Equatable, y por qué es normal llegar a ellos después de haber escrito código repetitivo primero.</description>
      <category>Swift</category>
      <category>macOS</category>
    </item>
    <item>
      <title>@propertyWrapper en Swift: más allá de UserDefaults</title>
      <link>https://slekens.dev/es/blog/property-wrappers-en-swift/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/property-wrappers-en-swift/</guid>
      <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
      <description>Qué son los property wrappers, cómo construirlos desde cero y cuándo usarlos — con ejemplos prácticos: @Clamped, @Trimmed y projectedValue.</description>
      <category>Swift</category>
      <category>macOS</category>
    </item>
    <item>
      <title>Feature flags con UserDefaults en macOS</title>
      <link>https://slekens.dev/es/blog/feature-flags-con-userdefaults/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/feature-flags-con-userdefaults/</guid>
      <pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
      <description>Cómo usar UserDefaults como sistema de feature flags local en macOS: un @propertyWrapper tipado, reset limpio y log automático de flags activos al arrancar.</description>
      <category>Swift</category>
      <category>macOS</category>
      <category>Xcode</category>
    </item>
    <item>
      <title>Lanzamiento de Narcisse</title>
      <link>https://slekens.dev/es/blog/lanzamiento-de-narcisse/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/lanzamiento-de-narcisse/</guid>
      <pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate>
      <description>Narcisse ya está en la App Store. La app que mi esposa y yo construimos juntos para resolver un problema real: generar un look coordinado con base a tu temporada de color.</description>
      <category>apps</category>
      <category>iOS</category>
      <category>Narcisse</category>
    </item>
    <item>
      <title>Lanzamiento de Algo Viewer</title>
      <link>https://slekens.dev/es/blog/lanzamiento-de-algo-viewer/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/lanzamiento-de-algo-viewer/</guid>
      <pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate>
      <description>AlgoViewer ya está disponible en la App Store. Una app para visualizar algoritmos y estructuras de datos paso a paso, con código en Swift, Python y Java.</description>
      <category>apps</category>
      <category>iOS</category>
      <category>AlgoViewer</category>
    </item>
    <item>
      <title>FigureDex: Tu Colección de Amiibos, Finalmente Organizada</title>
      <link>https://slekens.dev/es/blog/figuredex-coleccion-de-amiibos/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/figuredex-coleccion-de-amiibos/</guid>
      <pubDate>Fri, 02 Jan 2026 00:00:00 GMT</pubDate>
      <description>FigureDex ya está en la App Store. Un catálogo nativo para coleccionistas de Amiibo con seguimiento de estado, estadísticas por serie y sincronización iCloud.</description>
      <category>apps</category>
      <category>iOS</category>
      <category>FigureDex</category>
    </item>
    <item>
      <title>¿Qué son las variables y constantes?</title>
      <link>https://slekens.dev/es/blog/basico-01-variables-y-constantes/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/basico-01-variables-y-constantes/</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description>Aprende a declarar variables con var y constantes con let en Swift moderno. Los fundamentos que todo desarrollador iOS necesita desde el primer día.</description>
      <category>Swift</category>
      <category>Lo Básico</category>
    </item>
    <item>
      <title>Operadores aritméticos</title>
      <link>https://slekens.dev/es/blog/basico-02-operadores-basicos/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/basico-02-operadores-basicos/</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description>Aritméticos, de comparación, lógicos y el nil-coalescing ??. Todo lo que necesitas saber sobre operadores en Swift moderno, con ejemplos prácticos.</description>
      <category>Swift</category>
      <category>Lo Básico</category>
    </item>
    <item>
      <title>if / else if / else</title>
      <link>https://slekens.dev/es/blog/basico-03-control-de-flujo/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/basico-03-control-de-flujo/</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description>Domina if, switch, bucles y el poderoso guard de Swift. Control de flujo con el estilo del Swift moderno que se usa en producción hoy.</description>
      <category>Swift</category>
      <category>Lo Básico</category>
    </item>
    <item>
      <title>¿Qué es un opcional?</title>
      <link>https://slekens.dev/es/blog/basico-04-opcionales/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/basico-04-opcionales/</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description>Los opcionales son la razón por la que las apps en Swift crashean menos. Aprende qué son, cómo desenvolverlos de forma segura y cuándo usar cada técnica.</description>
      <category>Swift</category>
      <category>Lo Básico</category>
    </item>
    <item>
      <title>Declaración básica</title>
      <link>https://slekens.dev/es/blog/basico-05-funciones/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/basico-05-funciones/</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description>Swift tiene un sistema de funciones muy expresivo: etiquetas de parámetros, valores por defecto y funciones como tipos. Todo lo que necesitas para escribir código reutilizable.</description>
      <category>Swift</category>
      <category>Lo Básico</category>
    </item>
    <item>
      <title>struct — tipo por valor</title>
      <link>https://slekens.dev/es/blog/basico-06-clases-y-estructuras/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/basico-06-clases-y-estructuras/</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description>La diferencia clave entre struct y class en Swift: tipos por valor vs tipos por referencia. Entiende cuándo usar cada uno y por qué es fundamental para tu código.</description>
      <category>Swift</category>
      <category>Lo Básico</category>
    </item>
    <item>
      <title>¿Qué es un Swift Playground?</title>
      <link>https://slekens.dev/es/blog/como-usar-swift-playgrounds-con-xcode/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/como-usar-swift-playgrounds-con-xcode/</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description>Los Playgrounds de Xcode te permiten escribir y ejecutar Swift en tiempo real, sin crear un proyecto completo. Ideal para aprender, experimentar y prototipar ideas rápido.</description>
      <category>Swift</category>
      <category>Herramientas</category>
    </item>
    <item>
      <title>Cómo exponer una interfaz HTML en una app macOS</title>
      <link>https://slekens.dev/es/blog/como-exponer-interfaz-html-en-macos/</link>
      <guid isPermaLink="true">https://slekens.dev/es/blog/como-exponer-interfaz-html-en-macos/</guid>
      <pubDate>Fri, 04 Jul 2025 00:00:00 GMT</pubDate>
      <description>FlyingFox + swift-html: cómo montar un servidor HTTP embebido en una app macOS para servir interfaces web desde el Bundle, sin frameworks pesados.</description>
      <category>Swift</category>
      <category>macOS</category>
      <category>FlyingFox</category>
    </item>
  </channel>
</rss>