Swift
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.
00
Nivel 0
1 temas05
Nivel 5
5 temas- 01El modelo de String: grafemas y no byteshechoen curso
- 02Índices y Substring: navegar sin romper el textohechoen curso
- 03Vistas de la cadena: escalares, UTF-8 y UTF-16hechoen curso
- 04Regex literales: expresiones regulares con tiposhechoen curso
- 05Formateo y localización: texto que no se concatenahechoen curso
06
Nivel 6
5 temas- 01La jerarquía de protocolos: de Sequence a RandomAccessCollectionhechoen curso
- 02Los algoritmos de la stdlib y su complejidad realhechoen curso
- 03lazy: la evaluación perezosa de cadenas de transformacioneshechoen curso
- 04Slices y ArraySlice: vistas sobre una colección sin copiarhechoen curso
- 05Escribir tu propia colección: conformar a Collection con índices propioshechoen curso
07
Nivel 7
5 temas- 01Optional es un enum, no una anotaciónhechoen curso
- 02Desenvolver bien: if let, guard let y switchhechoen curso
- 03Transformar sin desenvolver: map, flatMap y el encadenamientohechoen curso
- 04El force unwrap: cuándo es legítimo y cómo justificarlohechoen curso
- 05Diseñar con opcionales: cuándo sí y cuándo esconden un enumhechoen curso
09
Nivel 9
5 temas- 01Copiar frente a compartir: qué ocurre al asignarhechoen curso
- 02mutating: la mutación como firma, no como permisohechoen curso
- 03inout: pasar por referencia sin usar claseshechoen curso
- 04Cuándo class y cuándo struct: identidad frente a valorhechoen curso
- 05Tipos híbridos: el struct que contiene una clasehechoen curso
10
Nivel 10
5 temas- 01Enums con valores asociados: el tipo sumahechoen curso
- 02indirect: enums recursivos, árboles y expresioneshechoen curso
- 03Raw values y CaseIterable: el dominio como datohechoen curso
- 04Pattern matching completo: la gramática de los patroneshechoen curso
- 05Modelar el dominio: estados inválidos irrepresentableshechoen curso
11
Nivel 11
5 temas- 01Protocolos como contrato: requisitos y conformidadhechoen curso
- 02Extensiones con implementación por defecto y el peligro del despacho estáticohechoen curso
- 03associatedtype y Self: protocolos con requisitos de tipohechoen curso
- 04Composición y refinamiento: combinar protocolos y acotar extensioneshechoen curso
- 05Los límites de POP: cuándo un enum o una clase son mejoreshechoen curso
12
Nivel 12
5 temas- 01Restricciones de tipo: genéricos con contratohechoen curso
- 02Cláusulas where: restricciones sobre tipos asociadoshechoen curso
- 03Conformidad condicional: heredar capacidades del parámetrohechoen curso
- 04Especialización: cómo el compilador convierte un genérico en código concretohechoen curso
- 05Genéricos variádicos: parameter packs y eachhechoen curso
13
Nivel 13
5 temas- 01El protocolo que no podía ser un tipohechoen curso
- 02some: el tipo que el compilador conoce y tú nohechoen curso
- 03any: la caja que puede contener a cualquierahechoen curso
- 04Cuándo cada uno: la regla y los casos forzadoshechoen curso
- 05Por dentro: tablas de testigos y contenedores existencialeshechoen curso
14
Nivel 14
5 temas- 01Qué es un property wrapper: envolver el acceso a una propiedadhechoen curso
- 02Escribir el tuyo: validar, persistir, registrarhechoen curso
- 03projectedValue y el dólar: la segunda cara del wrapperhechoen curso
- 04Los wrappers que ya usas: State, Binding, Environmenthechoen curso
- 05Límites y alternativas: dónde el wrapper no llegahechoen curso
15
Nivel 15
5 temas- 01Qué es un result builder: de un bloque de sentencias a un valorhechoen curso
- 02Los métodos del builder: qué habilita cada unohechoen curso
- 03Escribir tu propio DSL: un constructor de HTML paso a pasohechoen curso
- 04Cómo funciona SwiftUI: el ViewBuilder por dentrohechoen curso
- 05Límites y diagnóstico: errores crípticos y tiempos de compilaciónhechoen curso
16
Nivel 16
5 temas- 01Qué es una macro de Swift: código que genera códigohechoen curso
- 02Freestanding y attached: los dos tipos y sus roleshechoen curso
- 03SwiftSyntax: manipular el árbol y escribir tu primera macrohechoen curso
- 04Empaquetar y usar: el target de macro, el plugin y el consumidorhechoen curso
- 05Depurar e inspeccionar: expandir, testear y conocer los límiteshechoen curso
17
Nivel 17
5 temas- 01El modelo de errores de Swift: propagación explícita, no excepcioneshechoen curso
- 02typed throws: declarar qué error puede salirhechoen curso
- 03Result: el error como dato y el puente entre dos mundoshechoen curso
- 04rethrows: lanzar solo si tu clausura lanzahechoen curso
- 05Diseñar la jerarquía de errores: dominio, técnica y fronterahechoen curso
18
Nivel 18
5 temas- 01Automatic Reference Counting: el compilador que cuenta por tihechoen curso
- 02Ciclos de retención: cuando dos objetos se sostienen mutuamentehechoen curso
- 03weak y unowned: romper el ciclo sin romper el programahechoen curso
- 04deinit y el ciclo de vida: cuándo muere realmente un objetohechoen curso
- 05Diagnosticar fugas: grafo de memoria, Instruments y pruebas automáticashechoen curso
19
Nivel 19
5 temas- 01El truco: compartir el almacenamiento hasta que alguien escribehechoen curso
- 02isKnownUniquelyReferenced: la función que hace posible el COWhechoen curso
- 03Implementar copy-on-write en tu propio tipohechoen curso
- 04Cuándo el copy-on-write te traicionahechoen curso
- 05Medir: comprobar si tu tipo copia y si el COW merece la penahechoen curso
20
Nivel 20
5 temas- 01Por qué ownership en Swift: el precio de la copia implícitahechoen curso
- 02borrowing y consuming: la convención hecha explícitahechoen curso
- 03Tipos no copiables: el valor con un solo dueñohechoen curso
- 04deinit en estructuras no copiables: RAII sin claseshechoen curso
- 05Comparación con Rust: lo compartido y la divergencia deliberadahechoen curso
21
Nivel 21
5 temas- 01La familia de punteros: leer el nombre y saber qué prometehechoen curso
- 02Buffers: la dirección y la cuenta convertidas en un tipohechoen curso
- 03Reservar y liberar a mano: el ciclo completo sin ARChechoen curso
- 04Las funciones withUnsafe: un préstamo con fecha de caducidadhechoen curso
- 05Comportamiento indefinido: las reglas que Swift asume sin verificarhechoen curso
22
Nivel 22
5 temas- 01Importar C: cuando una cabecera se vuelve un módulohechoen curso
- 02Interoperabilidad con C++: lo que llega y lo que se quedahechoen curso
- 03Objective-C desde Swift: el puente que ya estaba puestohechoen curso
- 04Swift desde Objective-C: la cabecera generada y sus límiteshechoen curso
- 05Diseñar la frontera: envolver C con un tipo que se cuida solohechoen curso
23
Nivel 23
5 temas24
Nivel 24
5 temas- 01El actor como tipo: estado que se defiende solohechoen curso
- 02Reentrada: el actor atiende a otro mientras tú esperashechoen curso
- 03Global actors: `@MainActor` y el arte de aislar un dominio enterohechoen curso
- 04`nonisolated` y parámetros `isolated`: escapes con permisohechoen curso
- 05Diseñar con actores: granularidad, cuellos de botella y falsas solucioneshechoen curso
25
Nivel 25
5 temas- 01AsyncSequence: la secuencia que ocurre en el tiempohechoen curso
- 02AsyncStream: convertir callbacks en secuenciashechoen curso
- 03Contrapresión y buffering: cuando los ritmos no cuadranhechoen curso
- 04Operadores: transformar sin romper la cadenahechoen curso
- 05Cancelación y limpieza: cerrar bien un flujohechoen curso
26
Nivel 26
5 temas- 01El árbol de tareas: concurrencia que no deja huérfanoshechoen curso
- 02async let: paralelismo declarativo para un número fijo de trabajoshechoen curso
- 03TaskGroup: paralelismo dinámico con resultados y erroreshechoen curso
- 04Task y Task.detached: salir del árbol y qué cuestahechoen curso
- 05Cancelación cooperativa: pedir, observar y limpiarhechoen curso
27
Nivel 27
5 temas- 01Ubicación transparente: llamar a un actor que quizá no está aquíhechoen curso
- 02El sistema de actores: identidad, resolución y transportehechoen curso
- 03Serialización, errores de transporte y la latencia como material de diseñohechoen curso
- 04Clústeres: la implementación de referencia, el descubrimiento y la vigilanciahechoen curso
- 05Cuándo usarlos: procesos vecinos, dispositivos que se hablan y por qué esto no sustituye a una API HTTPhechoen curso
28
Nivel 28
5 temas- 01Package.swift: el manifiesto es un programahechoen curso
- 02Control de acceso: seis niveles y dos fronterashechoen curso
- 03Resolución de dependencias: una versión y solo unahechoen curso
- 04Plugins de SPM: generar código sin perder la reproducibilidadhechoen curso
- 05Diseñar la librería: la API es una promesa fechadahechoen curso
29
Nivel 29
5 temas- 01El framework moderno: la macro que sustituyó a la herenciahechoen curso
- 02Precondición y verificación: el papel de requirehechoen curso
- 03Tests parametrizados: un cuerpo, muchos casoshechoen curso
- 04Suites y traits: organizar y condicionar la ejecuciónhechoen curso
- 05Probar código asíncrono, actores y la convivencia con XCTesthechoen curso
30
Nivel 30
5 temas- 01Por qué Swift en el servidor: el argumento honestohechoen curso
- 02SwiftNIO: el motor que hay debajo de todohechoen curso
- 03Vapor y Hummingbird: elegir framework con criteriohechoen curso
- 04Desplegar en Linux: enlazado estático e imágenes mínimashechoen curso
- 05El ecosistema en 2026: qué está maduro y dónde apostarhechoen curso
31
Nivel 31
5 temas- 01Qué es Embedded Swift: el lenguaje sin su runtimehechoen curso
- 02Qué se pierde: el subconjunto y su lógica internahechoen curso
- 03Compilar para un microcontrolador: toolchain, enlazador y binariohechoen curso
- 04Interoperar con C a bajo nivel: registros, interrupciones y tiposhechoen curso
- 05El caso de uso: seguridad de memoria en firmware, frente a C y a Rusthechoen curso
32
Nivel 32
5 temas- 01Qué es realmente portable: el mapa por capashechoen curso
- 02Swift en Linux: toolchain, Foundation y las divergencias silenciosashechoen curso
- 03Swift en Windows: el estado real del soportehechoen curso
- 04SwiftWasm: compilar a WebAssembly y pagar su preciohechoen curso
- 05Escribir código portable: costuras, no condicionales dispersoshechoen curso
33
Nivel 33
5 temas- 01El pipeline: del texto fuente al código máquinahechoen curso
- 02SIL: leer la representación intermedia de Swifthechoen curso
- 03Optimizaciones clave: especialización, inlining y ARChechoen curso
- 04Whole-module optimization: ver el módulo enterohechoen curso
- 05Diagnosticar compilaciones lentashechoen curso
34
Nivel 34
5 temas- 01Los tres despachos: estático, por tabla y dinámicohechoen curso
- 02Reducir el coste: final, private y tipos concretoshechoen curso
- 03inlinable y usableFromInline: exponer el cuerpohechoen curso
- 04Asignaciones y ARC en caliente: el impuesto invisiblehechoen curso
- 05Benchmarks honestos: medir sin engañartehechoen curso
35
Nivel 35
5 temas- 01Las API Design Guidelines: la claridad mandahechoen curso
- 02Nombrar bien: etiquetas, verbos y el par que mutahechoen curso
- 03Diseñar para el consumidor: defectos y tipos que blindanhechoen curso
- 04Documentar: comentarios, DocC y ejemplos que compilanhechoen curso
- 05Evolucionar sin romper: compatibilidad y deprecaciónhechoen curso
37
Nivel 37
5 temas- 01El `!` no es el error: es el recibo de un modelo mal hechohechoen curso
- 02Clases donde tocaba struct: identidad accidental y estado compartidohechoen curso
- 03Retenciones accidentales: el closure, el delegado y el timer inmortalhechoen curso
- 04Concurrencia mal entendida: tareas huérfanas, `@MainActor` de parche y colas heredadashechoen curso
- 05Sobreingeniería con genéricos y protocolos: la abstracción que nadie necesitabahechoen curso
38
Nivel 38
5 temas- 01Swift y Rust: la memoria como contratohechoen curso
- 02Swift y Kotlin: dos herederos con el mismo encargohechoen curso
- 03Swift y Go: simplicidad contra expresividadhechoen curso
- 04Swift y C++: interoperar, generalizar, sucederhechoen curso
- 05Elegir con criterio: dónde gana Swift y dónde nohechoen curso
39
Nivel 39
5 temas- 01El modelo mental completo: una sola imagen de todo Swifthechoen curso
- 02Decisiones de diseño en código real: leer una API de la stdlibhechoen curso
- 03Leer el código fuente de Swift: navegar la stdlib y aprender de quien la escribióhechoen curso
- 04El lenguaje que viene: ownership, macros, embedded y concurrenciahechoen curso
- 05Un plan de dominio continuo: profundizar, contribuir y no quemarsehechoen curso