¡Bienvenido al repositorio de Swift Learning! Este proyecto ha sido creado con el objetivo de ofrecer un recurso práctico y dinámico para aprender y practicar Swift.
El Swift Learning es un conjunto de recursos organizados donde encontrarás ejemplos, ejercicios y explicaciones de conceptos clave de Swift. Cada sección está diseñada para facilitar tu aprendizaje, desde los fundamentos hasta temas más avanzados.
Este repositorio es perfecto para:
- Principiantes que quieran aprender Swift desde cero.
- Desarrolladores que busquen practicar conceptos específicos.
- Estudiantes de programación que necesiten un material de apoyo.
- Variables y Constantes en Swift
- Anotaciones de Tipo
- Nomenclatura de Constantes y Variables
- Comentarios en Swift
- Enteros
- Números de Punto Flotante
- Type Alias
- Booleanos
- Tuplas
- Opcionales
- Operador de Asignación
- Operadores Aritméticos
- Operadores de Asignación Compuesta
- Operadores de Comparación
- Operador Condicional Ternario
- Operador de Fusión de Nil
- Operadores de Rango
- Operadores Lógicos
- Funciones
- Parámetros y Valores de Retorno
- Tuplas Opcionales
- Etiquetas de Argumentos
- Parámetros Variádicos
- Parámetros In-Out
- Tipos de Función
- Funciones como Parámetros
- Funciones como Retorno
- Funciones Anidadas
- Qué son los Enums
- Iterar sobre los Enums
- Valores asociados en Enums
- Raw Values
- Valores Brutos Implícitos
- Inicializar desde un valor en bruto
- Recursividad en los Enums
- Comparación entre Struct y Class
- Definir la Sintaxis
- Instancias en Struct y Class
- Accediendo a Propiedades
- Inicialización (
init
) - Struct y Enum como tipos de valor
- Clases como tipos de referencia
- Stored Properties
- Propiedades en constantes
- Lazy Properties
- Propiedades en variables
- Computed Properties
- Declaración simplificada de Getter
- Computed Properties (Read-Only)
- Observadores de Propiedades (
willSet
ydidSet
) - Property Wrappers
- Valores iniciales en Property Wrappers
- Property Wrappers con valores proyectados
- Variables globales y locales
- Type Properties
- Type Property Syntax
- Consultar y Modificar Propiedades de Tipo
- Inicialización en Swift
- Creando un Inicializador
- Propiedades Opcionales
- Inicializador Predeterminado
- Delegación de Inicialización en Tipos de Valor
- Herencia en Inicialización
- Delegación de Inicialización en Clases
- Inicializadores Fallables
- Propagación de Fallos en la Inicialización
- Inicializadores Requeridos
- Encadenamiento Opcional
- Clases de Modelo
- Propiedades con Encadenamiento Opcional
- Métodos con Encadenamiento Opcional
- Subscripts con Encadenamiento Opcional
- Métodos de Retorno Opcionales
- Multiple Levels Optional Chaining
- Optional Return Methods
- Lanzamiento de Errores (Throwing Errors)
- Propagación de Errores
- Manejo de Errores con Do-Catch
- Convertir Errores en Valores Opcionales
- Deshabilitar la Propagación de Errores
- Especificar Tipos de Error
- Especificar Acciones de Limpieza
- Introducción a la Concurrencia
- Definir y Llamar Funciones Asíncronas
- Secuencias Asíncronas
- Llamadas Asíncronas en Paralelo
- Tareas y Grupos de Tareas
- Cancelación de Tareas
- Concurrencia No Estructurada
- Actores
- Tipos Sendable
- ¿Qué son las Macros?
- Macros Independientes
- Macros Adjuntas
- Declaraciones de Macros
- Expansión de Macros
- Implementación de Macro
- Desarrollo de Macros
- Sintaxis de Extensiones
- Computed Properties
- Inicializadores
- Methods
- Mutating Instance
- Subscripts
- Nested Type
- Sintaxis básica
- Requisitos de propiedades
- Requisitos de métodos
- Requisitos de inicializadores
- Protocolos de tipo
- Delegation
- Agregar conformidad a un protocolo
- Conformidad condicional
- Adoptar un protocolo con implementación sintetizada
- Colecciones de Tipos
- Herencia de protocolo
- Protocolos exclusivos para clases
- Composición de protocolos
- Verificación de conformidad con un protocolo
- Requisitos opcionales en protocolos
- Extensiones de protocolos
- Proporcionar implementaciones por defecto
- Agregar restricciones a extensiones de protocolos
- Código Reutilizable sin Genéricos
- Funciones Genéricas
- Parámetros de Tipo
- Nombrando Parámetros de Tipo
- Tipos Genéricos
- Extender un Tipo Genérico
- Restricciones de Tipo
- Sintaxis de Restricciones de Tipo
- Tipos Asociados
- Uso de Tipos Asociados
- Cláusulas
where
en Genéricos - Cláusulas Contextuales
- Tipos Asociados con Cláusula
where
- Subíndices Genéricos
- El Problema de los Tipos Opacos
- Devolviendo un Tipo Opaco
- Tipos de Protocolo Encapsulados
- Diferencias entre Tipos Opacos y Encapsulados
- Cómo Funciona ARC
- ARC en Acción
- Ciclos de Referencias Fuertes Entre Instancias de Clase
- Resolviendo Ciclos de Referencias Fuertes
- Referencias
unowned
- Referencias
unowned
Opcionales - Ciclos de Referencias Fuertes en Closures
- [Resolviendo Ciclos de Referencias Fuertes en Closures](https://github.com/kontroldev/Swift-Learning/
- Entendiendo el Acceso a la Memoria
- Características del Acceso a la Memoria
- Acceso en Parámetros inout
- Acceso en self dentro de Métodos
- Acceso a Propiedades
- Niveles de Acceso
- Principios de Acceso
- Sintaxis de Control de Acceso
- Control de Acceso en Tipos Personalizados
- Control de Acceso en Tipos Tupla
- Control de Acceso en Tipos Anidados
- Control de Acceso en Constantes, Variables y Propiedades
- Control de Acceso en Protocolos
- Control de Acceso en Herencia de Protocolos
- Control de Acceso en Implementación de Protocolos
- Generics y Control de Acceso
- Control de Acceso en Type Aliases
- Bitwise Operator
- Bitwise AND Operator
- Bitwise OR Operator
- Bitwise XOR Operator
- Overflow Operator
- Value Overflow
- Precedence and Associativity
- Operator Methods
- Prefix and Postfix Operators
- Compound Assignment Operators
- Equivalence Operators
- Custom Operators
- Result Builders
¡Esperamos que encuentres útil este repositorio y que te ayude en tu camino para dominar Swift!
Este repositorio se actualizará constantemente para incluir nuevas lecciones, ejercicios y características introducidas en las versiones más recientes de Swift, ¡manteniéndolo siempre al día!