wandres.dev
El lenguaje, de la sintaxis al compilador

Domina Swift
hasta nivel dios

Swift 6 a fondo: el modelo de tipos y valores, protocolos y genéricos, macros y result builders, memoria y ownership, concurrencia estricta, y Swift fuera de Apple.

La ruta

40 niveles, de novato a dios

Cada nivel construye sobre el anterior. Sin saltos, sin huecos.

Ontología Nivel 0 · El mapa de Swift

La visión aérea del lenguaje: el modelo de tipos y valores, protocolos y genéricos, concurrencia estructurada, macros, memoria y el ecosistema.

Mapa mentalSwift

Fundamentos Nivel 1 · tipos, opcionales, closures

La base del lenguaje: instalar el toolchain, tipos y variables, opcionales (el corazón de Swift), colecciones, funciones y closures.

XcodeOpcionalesClosures

El modelo de tipos Nivel 2 · structs, enums, protocolos

Structs vs clases, enums con valores asociados, protocolos, genéricos y el manejo de errores con typed throws.

StructsEnumsProtocolos

Concurrencia Nivel 3 · async/await y actores

La concurrencia moderna: async/await, actores, Sendable, la concurrencia estricta de Swift 6, streams y redes con URLSession.

async/awaitActoresSendable

Sintaxis y control Nivel 4 · la gramática completa

El resto de la sintaxis: control de flujo, `guard`, `defer`, bucles con etiquetas, operadores propios y precedencia.

guarddeferoperadores

Strings y texto Nivel 5 · Unicode bien hecho

El tipo String de Swift: grafemas frente a bytes, índices, `Substring`, expresiones regulares y formateo localizado.

StringUnicoderegex

Colecciones a fondo Nivel 6 · protocolos y algoritmos

La jerarquía de Collection: Sequence, Collection, RandomAccess; algoritmos, `lazy`, y escribir tu propia colección.

Sequencelazyalgoritmos

Opcionales a fondo Nivel 7 · el arte de la ausencia

Todo sobre los opcionales: encadenamiento, `map`/`flatMap`, `guard let`, los peligros del force unwrap y el diseño de APIs opcionales.

opcionalchainingdiseño

Funciones y closures Nivel 8 · captura y escape

Funciones de primera clase: captura de variables, `@escaping`, `@autoclosure`, closures que retienen, y funciones anidadas.

closuresescapingcaptura

Valor y referencia Nivel 9 · la semántica que define Swift

La diferencia profunda entre value types y reference types: copia, identidad, mutabilidad, y cómo elegir en cada caso.

valuereferencesemántica

Enums avanzados Nivel 10 · modelar con precisión

Enums indirectos, genéricos, con raw values; modelar estados imposibles fuera del dominio y el pattern matching completo.

indirectpatternmodelar

Protocolos a fondo Nivel 11 · POP y sus límites

Programación orientada a protocolos: extensiones con implementación por defecto, requisitos asociados, y dónde el enfoque se rompe.

POPextensionesassociatedtype

Genéricos avanzados Nivel 12 · restricciones y where

Genéricos en serio: cláusulas `where`, especialización, tipos condicionalmente conformes y el sistema de resolución.

genéricoswhereconstraints

some y any Nivel 13 · opacos y existenciales

Los dos modos de abstracción: tipos opacos (`some`) y existenciales (`any`); su coste en rendimiento y cuándo usar cada uno.

someanyexistencial

Property wrappers Nivel 14 · comportamiento reutilizable

Property wrappers: cómo funcionan, escribir el tuyo, `projectedValue`, y los que ya usas sin saberlo en SwiftUI.

@propertyWrapperprojectedValue

Result builders Nivel 15 · DSLs en el lenguaje

Result builders: la magia detrás de SwiftUI; construir tu propio DSL declarativo y entender qué genera el compilador.

resultBuilderDSLSwiftUI

Macros Nivel 16 · metaprogramación

Las macros de Swift: freestanding y attached, SwiftSyntax, escribir una macro propia y depurar su expansión.

macrosSwiftSyntaxexpansión

Errores avanzados Nivel 17 · typed throws y diseño

El sistema de errores: `typed throws`, `Result`, `rethrows`, diseñar jerarquías de error y la conversión en las fronteras.

typed throwsResultrethrows

Memoria y ARC Nivel 18 · ciclos y captura

Automatic Reference Counting: retain/release, ciclos de retención, `weak` y `unowned`, y diagnosticar fugas.

ARCweakciclos

Copy-on-write Nivel 19 · el coste de los valores

Cómo Swift hace baratos los value types: copy-on-write, `isKnownUniquelyReferenced`, y escribir tus propios tipos COW.

COWrendimientovalores

Ownership Nivel 20 · borrowing y consuming

El modelo de ownership de Swift: `borrowing`, `consuming`, tipos no copiables (`~Copyable`), y su parentesco con Rust.

ownershipnoncopyableborrowing

Unsafe y punteros Nivel 21 · bajar al metal

Las APIs unsafe: punteros tipados y crudos, buffers, gestión manual de memoria, y cuándo se justifica salir del jardín.

unsafepunterosbuffer

Interoperabilidad Nivel 22 · C, C++ y Objective-C

Swift con el mundo exterior: importar C y C++, el puente con Objective-C, y exponer Swift a otros lenguajes.

CC++ObjC

Swift 6 y aislamiento Nivel 23 · data-race safety

La concurrencia estricta de Swift 6: aislamiento de actores, `Sendable`, regiones de aislamiento, y migrar código legado.

Swift 6Sendableaislamiento

Actores a fondo Nivel 24 · global actors y reentrada

Actores en serio: `@MainActor`, global actors propios, reentrada, prioridad, y los errores de diseño más comunes.

actorMainActorreentrada

AsyncSequence Nivel 25 · streams asíncronos

Secuencias asíncronas: `AsyncStream`, `AsyncThrowingStream`, escribir la tuya, backpressure y cancelación.

AsyncSequenceAsyncStream

Concurrencia estructurada Nivel 26 · tasks y grupos

La estructura del paralelismo: `Task`, `TaskGroup`, `async let`, herencia de prioridad, cancelación cooperativa y `withTaskCancellationHandler`.

TaskTaskGroupcancelar

Distributed actors Nivel 27 · actores en red

Actores distribuidos: el modelo, los sistemas de actores, serialización, y su uso en sistemas repartidos entre procesos.

distributedredcluster

SPM y módulos Nivel 28 · organizar el código

Swift Package Manager: paquetes, targets, dependencias, control de acceso entre módulos y binarios precompilados.

SPMmódulostargets

Swift Testing Nivel 29 · el framework moderno

El nuevo framework de testing: `@Test`, `#expect`, parametrización, traits, y la migración desde XCTest.

Swift Testing@Test#expect

Swift en el servidor Nivel 30 · Vapor y Hummingbird

Swift fuera de Apple: servidores con Vapor o Hummingbird, SwiftNIO por debajo, y desplegar en Linux con Docker.

VaporSwiftNIOLinux

Embedded Swift Nivel 31 · sin runtime completo

Embedded Swift: el subconjunto para microcontroladores y entornos restringidos; qué se pierde y qué se gana.

embeddedbare metal

Swift multiplataforma Nivel 32 · Linux, Windows, Wasm

El estado real fuera de Apple: la biblioteca estándar, Foundation en Linux, Windows, y WebAssembly.

LinuxWindowsWasm

El compilador Nivel 33 · SIL y optimización

Cómo compila Swift: el pipeline hasta SIL, la especialización de genéricos, el whole-module optimization, y leer el SIL generado.

SILcompiladoroptimización

Rendimiento Nivel 34 · medir y afinar

Optimizar Swift: Instruments, el coste de los existenciales y del dispatch dinámico, `@inlinable`, y los benchmarks honestos.

Instrumentsdispatchbenchmark

Diseño de APIs Nivel 35 · las guidelines

Las API Design Guidelines de Swift: nombrar con claridad, argumentos etiquetados, y diseñar bibliotecas que se leen como prosa.

APInamingdiseño

Swift Evolution Nivel 36 · cómo cambia el lenguaje

El proceso de evolución: leer una propuesta, entender por qué se aceptó, y seguir hacia dónde va Swift.

evolutionpropuestasfuturo

Errores comunes Nivel 37 · y cómo salir

Los tropiezos clásicos: abuso de opcionales, clases donde tocaba struct, retención accidental y la concurrencia mal entendida.

erroresrefactorolores

Swift comparado Nivel 38 · Rust, Kotlin, Go

Situar Swift entre sus pares: seguridad de memoria frente a Rust, ergonomía frente a Kotlin, simplicidad frente a Go.

RustKotlincomparación

Nivel Dios: síntesis Nivel 39 · el lenguaje completo

La síntesis: el modelo mental unificado de Swift, decisiones de diseño en código real, y un plan de dominio continuo.

síntesismaestríaPhD
196lecciones
40niveles
0→∞de cero a dios
Qué vas a dominar

Todo lo que hace a un experto

🔤

Swift 6.3

El lenguaje moderno de Apple: opcionales, protocolos, genéricos y typed throws.

🎨

SwiftUI declarativo

Construye interfaces con estado reactivo: describe el qué, no el cómo.

👁️

@Observable

El framework Observation: estado reactivo sin boilerplate, con @State como macro.

🗄️

SwiftData

Persistencia con @Model y @Query: sin .xcdatamodeld ni NSManagedObject.

Concurrencia Swift 6

async/await, actores y Sendable con concurrencia estricta que previene data races.

🌐

Redes modernas

URLSession con async/await y Codable para consumir APIs sin dolor.

🧪

Swift Testing

El nuevo framework de tests con @Test y #expect, más expresivo que XCTest.

🚀

A la App Store

Arquitectura, firmas, TestFlight y publicación: de la idea a la tienda.

Swift 6.3SwiftUISwiftDataObservationConcurrencyXcode 26iOS 26App Store

¿Listo para dominar Swift?

Empieza por los fundamentos y sube nivel a nivel hasta el dominio total.

Comenzar el camino →