Artículos
-
Generales
Generics I en Swift: funciones y tipos genéricos con type constraints
Aprende a escribir código Swift reutilizable con generics: funciones con type parameters, struct Stack genérico, type constraints con Comparable y Equatable, cláusulas where y por qué los generics no tienen coste en tiempo de ejecución.
-
Generales
Generics II en Swift: conditional conformance, where clauses y extensiones genéricas
Aprende conditional conformance en Swift: cómo hacer que un tipo genérico adopte un protocolo solo cuando sus parámetros lo permiten. Where clauses en extensiones, type erasure con AnyPublisher y primary associated types de Swift 5.7.
-
Generales
Opaque types en Swift: some Protocol el compilador sabe el tipo, el llamador no
Los opaque types de Swift permiten que el compilador conozca el tipo concreto devuelto por una función sin que el llamador lo vea. Aprende a usar some Protocol, some View en SwiftUI y some en parámetros.
-
Generales
Existential types en Swift: any Protocol cuándo usarlos y sus costes
Desde Swift 5.7, any Protocol es la forma obligatoria de declarar tipos existenciales. Aprende la diferencia entre some y any, el coste en rendimiento de los existentials y cuándo usar un genérico en su lugar.
-
Generales
Protocol-Oriented Programming en Swift: composición en lugar de herencia
Aprende qué es la Programación Orientada a Protocolos en Swift y por qué Apple la propuso en WWDC 2015 como alternativa a la herencia de clases. Ejemplos prácticos de protocol extensions, composición y testing con mocks.
-
Generales
ARC en Swift: cómo funciona la gestión automática de memoria sin GC
Cómo funciona ARC en Swift: el compilador inserta retain y release automáticamente para gestionar la memoria sin recolector de basura. Ciclo de vida de objetos y cómo evitar ciclos de retención con ejemplos reales.
-
Generales
Retain cycles en Swift: strong, weak y unowned con ejemplos reales
Cómo funcionan strong, weak y unowned en Swift para gestionar la memoria sin fugas. Ejemplos de retain cycles entre clases, capture lists en closures con [weak self] y [unowned self], y el delegate pattern con AnyObject.
-
Generales
Memory safety en Swift: ownership, exclusivity y accesos en conflicto
Swift detecta accesos en conflicto a memoria en compilación. Aprende cómo funciona la exclusivity rule, por qué pasar la misma variable dos veces como inout falla, y cómo los tipos ~Copyable con consuming y borrowing previenen bugs sin overhead en tiempo de ejecución.
-
Generales
Control de acceso en Swift: open, public, internal, fileprivate y private
Swift define cinco niveles de control de acceso: open, public, internal, fileprivate y private. Aprende cuándo usar cada uno, qué diferencia open de public y cómo diseñar APIs de librería siguiendo el principio de mínima exposición.
-
Generales
Type casting en Swift: is, as?, as! y switch con tipos en pattern matching
Aprende a usar is, as?, as! y as en Swift para verificar y convertir tipos en tiempo de ejecución. Pattern matching con switch sobre tipos, casting con Any y AnyObject, y por qué el polimorfismo suele ser mejor solución que el casting.









