Envíanos tu consulta
Términos y condiciones *
*Si no puedes asistir en directo de facilitaremos un enlace para verlo en diferido
logoImagina
iconoCurso

Curso completo de Swift

DISPONIBLE EN MODALIDAD:
Este curso ofrece una inmersión completa en el lenguaje de programación Swift, abarcando desde conceptos básicos hasta técnicas intermedias. A través de una serie de temas detallados, los estudiantes aprenderán sobre tipos de datos, estructuras de control, funciones, protocolos, y mucho más. El curso está diseñado para proporcionar una comprensión sólida de Swift.
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient
Formación en Swift bonificable para empresas

¿A quién va dirigido?

Desarrolladores y todo profesional o estudiante que desee aprender Swift para asentar el lenguaje esencial en el desarrollo de aplicaciones iOS y macOS para productos Apple.

Objetivos

  • Comprender y aplicar los conceptos fundamentales de Swift, incluyendo tipos de datos, operadores y estructuras de control
  • Utilizar eficientemente las colecciones en Swift, como arrays, diccionarios y sets
  • Implementar funciones, closures y protocolos para estructurar código de manera eficaz y modular
  • Aprender los principios de la programación orientada a objetos en Swift, incluyendo clases, herencia y propiedades
  • Desarrollar una comprensión práctica del manejo de errores, el encadenamiento de opcionales y las extensiones para escribir código robusto y mantenible

¿Qué vas a aprender?

Este curso ofrece una inmersión completa en el lenguaje de programación Swift, abarcando desde conceptos básicos hasta técnicas intermedias. A través de una serie de temas detallados, los estudiantes aprenderán sobre tipos de datos, estructuras de control, funciones, protocolos, y mucho más. El curso está diseñado para proporcionar una comprensión sólida de Swift.

Requisitos

  • Se requieren conocimientos básicos de programación estructurada y/o programación Orientada a Objetos.
  • Es necesario contar con un equipo MacOs con sistema operativo OS Sierra o superior, Xcode (11 o superior) como entorno de desarrollo instalado previamente y configurado al menos un dispositivo móvil iOS emulado que puedas iniciar desde XCode durante el curso
  • Tener acceso a un usuario con permisos de instalción y conexión estable a Internet

Temario del curso

tema 1

Introducción a XCode y Swift Playgrounds

  • Introducción a XCode y primeros pasos de iniciación
  • Introducción a Playgrounds
  • ¿Qué son los Playgrounds en el contexto de Swift?
  • ¿Cómo facilitan el aprendizaje y la experimentación con el lenguaje?
  • Instalación y configuraciones esenciales para dar tus primeros pasos en Swift Playgrounds
  • Redacción de "Hola Mundo" en Swift
  • Exploración de cómo modificar y ver inmediatamente los resultados de los cambios en el código
  • Uso de Playgrounds para experimentar con código Swift en tiempo real
  • Ejemplos de cómo usar Playgrounds para probar diferentes funciones y conceptos de Swift
  • ¿Cómo añadir comentarios al código swift?
  • Uso de comentarios de una línea con //
  • Uso de comentarios de múltiples líneas con /* ... */
  • Buenas prácticas para documentar el código y hacerlo más legible y mantenible.
  • Ideas y ejemplos de proyectos pequeños y ejercicios prácticos para realizar en Playgrounds
  • Consejos sobre cómo usar Playgrounds para mejorar habilidades de programación en Swift y construir una base sólida
tema 2

Fundamentos de Swift

  • Declaración de variables y constantes en Swift
  • Introducción a los tipos "primitivos" en Swift
  • Explicación de la importancia de los tipos de datos en Swift
  • Tipado fuerte para prevenir errores y mejorar la claridad del código
  • Tipos de datos fundamentales con Int, Double y Float
  • Tipos de datos de texto con String
  • Uso de valores booleanos con Bool
  • Consejos sobre cómo seleccionar el tipo de dato más adecuado para una variable o constante
  • Diferencias entre enteros y números de punto flotante ¿Cuándo usar cada uno?
  • Consideraciones sobre rendimiento y claridad al elegir entre tipos de datos
tema 3

Operadores

  • Operadores Aritméticos (Suma, resta, multiplicación, división, módulo, etc.)
  • Ejemplos prácticos de cómo utilizar estos operadores en operaciones matemáticas cotidianas
  • Uso de operadores de comparación de igualdad y diferencia
  • Uso de operadores de comparación Mayor Que, Menor Que, Mayor o Igual Que y Menor o Igual Que
  • Implementación de estos operadores de comparación en estructuras de control para tomar decisiones basadas en comparaciones
  • Operadores Lógicos en Swift
  • AND Lógico: (`&&`)
  • OR Lógico: (`||`)
  • NOT Lógico: (`!`)
  • Combinación de operadores para formular condiciones complejas en estructuras de control
  • Introducción a operadores avanzados
  • Operadores de rango (`...` y `..<`)
  • Operador ternario (`? :`)
  • Operador nil-coalescing (`??`)
  • Aplicaciones prácticas de estos operadores en escenarios específicos
  • Introducción a la precedencia y asociatividad de operadores
  • ¿Cómo determina, Swift, el orden en que se evalúan los operadores en una expresión?
  • Importancia de entender la precedencia para escribir expresiones claras y evitar errores comunes
tema 4

Contro de Flujo en Swift

  • Introducción a los condicionales en Swift
  • Uso de `if` y `else` para tomar decisiones en el código
  • Ejemplos de condiciones simples y compuestas
  • Importancia de la legibilidad y la claridad en las estructuras de decisión
  • Estructura de Decisión `switch`
  • Funcionamiento y ventajas del uso de `switch` en Swift
  • Casos de uso de `switch` con diferentes tipos de datos, incluyendo tipos enumerados
  • Implementación de `switch` con casos múltiples y el uso de `where` para condiciones más complejas
  • Introducción a los bucles en Swift
  • Uso del bucle `for-in` para iterar sobre colecciones como arrays y rangos
  • Implementación de bucles `while` y `repeat-while` para repetir acciones hasta que se cumpla una condición
  • Ejemplos prácticos que demuestran la utilidad de cada tipo de bucle
  • Uso de `break` para salir prematuramente de un bucle
  • Implementación de `continue` para saltar la iteración actual de un bucle
  • Ejemplos y casos prácticos donde `break` y `continue` son útiles
  • Introducción a la Lógica de Control en Swift
  • Introducción al uso de `guard` para verificaciones tempranas y reducir el anidamiento
  • Comparación entre `guard` y `if` para entender mejor cuándo usar cada uno.
  • Ejemplos de cómo `guard` puede mejorar la legibilidad y fluidez del código
tema 5

Opcionales en Swift

  • Introducción a los opcionales como una característica fundamental de Swift
  • Explicación de cómo los opcionales permiten manejar la ausencia de un valor
  • ¿Cómo declarar variables opcionales y por qué son útiles?
  • Ejemplos de situaciones en las que los opcionales son valiosos
  • Introducción al concepto de Optional Binding en Swift
  • Uso de `if let` y `guard let` para desempaquetar opcionales de manera segura
  • Diferencias entre estas dos técnicas y cuándo usar cada una
  • ¿Qué es el forced unwrapping (`!`) y cuándo se utiliza?
  • Discusión sobre los riesgos asociados con el forced unwrapping y cómo evitarlos
  • Introducción al Optional Chaining y Nil-Coalescing Operator (`??`) en Swift
  • Implementación de optional chaining para simplificar el acceso a propiedades y métodos de opcionales
  • Uso del operador nil-coalescing para proporcionar un valor por defecto si opcional es `nil`
tema 6

Profundizando en el trabajo con cadenas de texto en Swift

  • Exploración de la importancia de las cadenas (`String`) en Swift
  • Características básicas de las cadenas, como la inmutabilidad
  • Métodos comunes para trabajar con cadenas: concatenación, inserción, eliminación y modificación
  • Uso de operadores y métodos específicos para manipular cadenas
  • Implementación de la interpolación de cadenas para incluir expresiones dentro de una cadena
  • Diferencias y usos de la interpolación frente a la concatenación directa
  • Exploración de la propiedad `length`
  • Exploración de la propiedad `isEmpty`
  • Exploración del método `contains`
  • Exploración del método `startsWith`
  • Exploración del método `endsWith`
  • Uso de métodos para buscar y reemplazar subcadenas
  • Acceso y manipulación de caracteres individuales dentro de una cadena.
  • Uso de la colección de caracteres de una cadena para operaciones como recorrido, comparación y construcción de cadenas
tema 7

Profundizando en el trabajo con colecciones: Arrays

  • Introducción a los Arrays en Swift y su uso
  • Diferencias entre arrays y otros tipos de colecciones
  • Métodos para crear arrays
  • Arrays vacíos
  • Arrays con valores predeterminados.
  • Añadir elementos en un array
  • Modificación elementos dentro de un array
  • Eliminación de elementos dentro de un array
  • Técnicas para acceder a elementos específicos, manejo de índices
  • Posibles errores de índices fuera de rango
  • Uso de métodos como `first`, `last` y acceso mediante índices
  • Introducción a la iteración sobre Arrays en Swift
  • Uso de bucles `for-in` para recorrer todos los elementos de un array
  • Ejemplos de cómo combinar bucles con condicionales para filtrar y procesar datos
  • Introducción a la implementación de funciones de alto orden en Arrays
  • Aplicando `map`, `filter` y `reduce` en arrays
  • Ejemplos para demostrar la potencia y flexibilidad de funciones de alto orden para manipular y transformar arrays
tema 8

Profundizando en el trabajo con colecciones: Diccionarios

  • Introducción a los Diccionarios en Swift y su uso
  • Creación de diccionarios y diferencias clave con otros tipos de colecciones.
  • Añadir pares clave-valor en un diccionario
  • Modificación de pares clave-valor en un diccionario
  • Eliminación de pares clave-valor en un diccionario
  • Acceso seguro a los valores y manejo de claves inexistentes
  • Uso de bucles `for-in` para iterar sobre pares clave-valor
  • Técnicas para extraer y utilizar tanto las claves como los valores
  • Aplicación de funciones de alto orden en diccionarios
  • Aplicando `map`, `filter`, y `reduce` a diccionarios
  • Transformación de diccionarios y creación de estructuras de datos más complejas
  • Uso de opcionales para manejar la posibilidad de valores nulos en diccionarios.
  • Estrategias para el manejo seguro y efectivo de datos opcionales.
tema 9

Profundizando en el trabajo con colecciones: Sets

  • Introducción a los Sets en Swift y su uso
  • Diferencias entre Sets, Arrays y Diccionarios
  • Unicidad de elementos y falta de orden como características principales
  • Creación de un Set en Swift
  • Añadiendo elementos a un Set
  • Modificando elementos de un Set
  • Eliminando elementos de un Set
  • La unión entre Sets
  • La intersección entre Sets
  • La diferencia entre Sets
  • La comparación entre Sets
  • Casos de uso de Sets: Eliminación de duplicados en colecciones
  • Casos de uso de Sets: Pruebas de pertenencia
  • Otros casos de uso de Sets destacables
  • Consejos para elegir entre arrays, sets y diccionarios según la situación
  • ¿Qué son los protocolos `Sequence` y `Collection`?
  • ¿Cómo los Sets en Swift cumplen con protocolos como `Sequence` y `Collection`?
  • Exploración de métodos avanzados disponibles para Sets debido a estos protocolos.
tema 10

Profundizando en el trabajo con colecciones: Tuplas

  • Introducción a las tuplas en Swift
  • Diferencias entre las tuplas y otros tipos de colecciones
  • Declaración de tuplas
  • Uso de Tuplas para agrupar múltiples valores
  • Discusión sobre casos de uso típicos y ventajas de usar tuplas
  • Acceso por índice a elementos de una tupla
  • Acceso por nombre a elementos de una tupla
  • Modificación y actualización de valores en tuplas
  • Introducción al desempaquetado de tuplas
  • Técnicas para desempaquetar los valores de una tupla en variables independientes
  • Ejemplos de cómo el desempaquetado de tuplas puede simplificar el código
  • Uso de tuplas en combinación con opcionales para manejar múltiples valores opcionales
  • Ejemplos de situaciones en las que las tuplas opcionales son útiles
tema 11

Funciones

  • Introducción a las funciones en Swift
  • Sintaxis para definir funciones en Swift
  • Llamada de funciones en Swift
  • Definición de parámetros en funciones
  • Paso de parámetros por valor a funciones en Swift
  • Paso de paráetros por referencia a funciones en Swift
  • Definición de tipo de retorno en funciones en Swift
  • Obtención de valores retornados al ejecutar una función
  • Almacenando valores desde funciones a través de tuplas
  • Retorno múltiple en funciones utilizando tuplas
  • Ejemplos prácticos donde las funciones retornan más de un resultado
  • Concepto de sobrecarga de funciones
  • ¿Cómo utilizar la sobrecarga de funciones para mejorar la flexibilidad del código?
  • Ejemplos de diferentes funciones con el mismo nombre pero diferentes firmas
  • Uso de funciones como variables y parámetros, destacando su naturaleza como tipos de primer orden
  • Ejemplos de cómo pasar funciones como argumentos y retornarlas desde otras funciones
tema 12

Depuración de código Swift y Gestión de Errores

  • Introducción a la depuración de código desde XCode y Playgrounds de Swift
  • Estableciendo puntos de ruptura
  • Analizando paso a paso un proceso de depuración
  • Analizando valores de variables y estableciendo watchers
  • Errores que podemos resolver a través de la depuración de código
  • Activar o desacctibar puntos de ruptura
  • Saltando al siguiente punto de ruptura
  • Reinicio del proceso de depuración
  • Parar el proceso de depuración
  • Consejos y buenas prácticas a la hora de depurar código
  • Errores en tiempo de ejecución más comunes en Swift
  • Introducción al manejo de errores por código
  • Representando y lanzando errores
  • Propagación de errores usando `throw`
  • Manejo de errores usando `do` y `catch`
  • Convirtiendo errores a valores opcionales
  • Deshabilitando la propagación de errores con `try!`
  • Especificando acciones de limpieza a través de `defer`
tema 13

Enumeraciones

  • Introducción a las enumeraciones en Swift
  • Uso de enumeraciones para representar grupos de valores relacionados
  • Ventajas de usar enumeraciones en lugar de tipos primitivos para mejorar la claridad del código
  • Sintaxis para definir enumeraciones
  • ¿Cómo y cuándo utilizar enumeraciones en el código?
  • Implementación de enumeraciones que almacenan valores adicionales de diferentes tipos
  • Ejemplos prácticos que ilustran la potencia de las enumeraciones con valores asociados
  • Uso de estructuras `switch` para manejar diferentes casos de una enumeración
  • Ejemplos de cómo las enumeraciones trabajan de manera eficiente con `switch` para el manejo de múltiples casos
  • Consehos y recomendaciones a la hora de trabajar con enumeraciones
tema 14

Conversión de Tipos

  • Introducción a la necesidad y los métodos de conversión de tipos en Swift
  • Diferencia entre conversión implícita y explícita de tipos
  • Introdución a la conversión entre tipos numéricos
  • Coversión entre diferentes tipos numéricos (`Int`, `Double`, etc.)
  • Discusión sobre la precisión y el manejo de overflow en conversiones numéricas
  • Introducción a la conversión entre cadenas de texto y números
  • Técnicas para convertir números a cadenas y viceversa
  • Manejo de errores y valores no convertibles durante la conversión.
  • Introducción al casting en Swift
  • Implementación de `as`
  • Implementación de `as?`
  • Implementación de `as!`
  • Implementación del operador `is` para comprobar el tipo de una instancia
  • Aplicación de esta verificación en estructuras de control y lógica condicional
tema 15

POO, Clases y Herencias en Swift

  • Introducción a POO y las clases en Swift
  • Creación de instancias y acceso a propiedades y métodos de clases
  • Propiedades almacenadas
  • Propiedades calculadas
  • Diferencias entre propiedades almacenadas y calculadas
  • Implementación de métodos dentro de clases y cómo se utilizan
  • Conceptos de herencia y cómo se aplica en Swift
  • Creación de clases que heredan de otras
  • Introducción al polimorfismo
  • Sobrescritura de métodos y propiedades en casos de herencia
  • Proceso de inicialización de clases
  • Constructores y parámetros de inicialización
  • Uso de `deinit` para la deinicialización y limpieza de recursos
tema 16

Profundizando en las Propiedades Almacenadas y Calculadas

  • Diferenciación entre propiedades almacenadas y calculadas.
  • Ejemplos de cómo y cuándo usar cada tipo de propiedad
  • Uso de propiedades almacenadas para guardar valores
  • Inclusión de observadores (`willSet`, `didSet`) para monitorear y responder a cambios en el valor de una propiedad
  • Creación de propiedades calculadas que calculan un valor dinámicamente
  • Discusión sobre el uso eficiente de propiedades calculadas en diferentes contextos
  • Uso de propiedades estáticas (Static) para asociar valores con un tipo en lugar de una instancia
  • Ejemplos que muestran la utilidad de propiedades estáticas
tema 17

Control de Acceso

  • Introducción a los diferentes niveles de control de acceso en Swift
  • La importancia del encapsulamiento y la seguridad del código
  • Introducción a los niveles de control de acceso
  • Private: Uso solo dentro de su declaración y extensiones en el mismo archivo
  • File-Private: Acceso solo dentro del mismo archivo fuente
  • Internal: Acceso dentro de cualquier archivo en su módulo, pero no fuera
  • Public: Acceso desde cualquier lugar
  • Open: Permitiendo que una clase sea subclaseada y un miembro de clase sea sobreescrito fuera del módulo
  • Ejemplos de cómo y cuándo usar cada nivel de acceso en el diseño de APIs y componentes de software
  • Discusión sobre las mejores prácticas para proteger y exponer propiedades y métodos en tus clases y structs
  • Implementación de control de acceso en un proyecto para demostrar su impacto en la arquitectura del software
tema 18

Structs o Estructuras en Swift

  • Introducción a las Structs en Swift
  • Similitudes y diferencias entre Structs y Clases en Swift
  • Uso de structs para modelar datos y comportamientos
  • Implementación de propiedades almacenadas y calculadas en structs
  • Uso de observadores de propiedades (`willSet`, `didSet`) para monitorear cambios
  • Creación de métodos dentro de structs
  • Métodos para la modificación de propiedades (`mutating`)
  • Ejemplos de cómo y cuándo usar métodos en structs
  • La inmutabilidad por defecto de las Structs
  • El impacto en la seguridad y el diseño del código de esta inmutabilidad
  • Uso de `mutating` para alterar datos en structs inmutables
  • Comparación detallada entre structs y clases
  • Diferencias en el tipo valor vs. referencia en Structs y Clases
  • Guía sobre cuándo usar structs en lugar de clases y viceversa
tema 19

Protocolos

  • Introducción a los protocolos en Swift
  • ¿Cómo se utilizan para definir un 'contrato' de métodos, propiedades y otros requisitos?
  • Comparación de los protocolos con interfaces en otros lenguajes de programación
  • ¿Cómo definir un protocolo?
  • ¿cómo las clases, structs y enumeraciones pueden conformarse a los protocolos definidos?
  • Ejemplos de conformidad con protocolos y la implementación de sus requisitos
  • Uso de protocolos como tipos personalizados para crear código más flexible y modular
  • Ejemplos de cómo los protocolos pueden ser utilizados como tipos en funciones, colecciones y otras estructuras
  • Extensión de protocolos para proporcionar implementaciones por defecto y comportamientos adicionales
  • Ejemplos de cómo las extensiones de protocolos pueden mejorar la reutilización del código
  • Implementación de protocolos en enumeraciones para añadir funcionalidades específicas
  • Ejemplos de cómo las enumeraciones pueden conformar y utilizar protocolos para extender su comportamiento
tema 20

Extensiones

  • Introducción a las extensiones en Swift
  • Añadiendo funcionalidades a clases, structs, enumeraciones y otros tipos con extensión
  • Ejemplos de casos en los que las extensiones pueden ser útiles para ampliar o modificar comportamientos
  • Uso de extensiones para añadir nuevos métodos y propiedades computadas a tipos existentes
  • Ejemplos que ilustran la adición de funcionalidades a tipos sin modificar su definición original
  • Implementación de extensiones para hacer que los tipos existentes cumplan con protocolos específicos
  • Discusión sobre cómo las extensiones pueden simplificar el código y mejorar la reusabilidad
  • Uso de extensiones para organizar y estructurar el código de manera más clara y mantenible
  • Ejemplos de cómo las extensiones pueden separar la funcionalidad por características o funcionalidades
  • Creación de extensiones que trabajan con tipos genéricos.
  • Ejemplos para proporcionar funcionalidades ampliamente aplicables a diferentes tipos
tema 21

Delegaciones

  • Introducción al patrón de diseño de delegación,
  • ¿Cómo este patrón permite que un objeto delegue parte de sus responsabilidades a otro objeto?
  • Ejemplos de cómo la delegación puede ser utilizada para reducir el acoplamiento entre clases
  • Introducción a los pasos para implementar el patrón de delegación
  • Definición de un protocolo para el delegado
  • Ejemplos prácticos de configuración de un objeto delegado e interacción con el objeto delegador
  • Uso de protocolos para definir las funciones y propiedades que el delegado debe implementar
  • Ejemplos de cómo diferentes objetos pueden actuar como delegados mediante la conformidad con un protocolo
  • Introducción a los usos reales de la delegación en aplicaciones de Swift
  • Delegación para comunicación entre vistas y controladores
  • Análisis de cómo la delegación contribuye a una arquitectura de software más limpia y modular
  • Introducción a las consideraciones de Memory Management en Delegación
  • La Importancia de evitar retenciones cíclicas en relaciones de delegación
  • Uso de referencias débiles (`weak`) para evitar retenciones cíclicas
  • Estrategias para una gestión de memoria segura y efectiva en patrones de delegación
tema 22

Profundizando en las Funciones Falibles de Swift

  • Las funciones falibles e inicializadores (`init?`) de Swift
  • Las funciones falibles pueden devolver un opcional (`nil`) si no cumplen con ciertas condiciones
  • Sintaxis y ejemplos de cómo definir y utilizar estos inicializadores en diversas situaciones
  • Inicializadores que lanzan errores y proporcionan detalles específicos del error con `init() throws`
  • Manejando estos errores con `try-catch` de manera profesional
  • Estrategias para capturar y responder a errores lanzado
  • Consideraciones sobre la recuperación de errores y la comunicación de problemas
  • ¿Qué debemos usar `init?` o `init() throws`?
  • Diferencias clave entre devolver un opcional (`nil`) y lanzar un error
  • Orientación sobre cuándo usar cada enfoque según las necesidades de manejo de errores y la claridad del código
  • Aplicaciones prácticas de funciones falibles y lanzamiento de errores en escenarios reales
  • Ejemplos de casos de uso donde estas técnicas son fundamentales para la robustez del código
tema 23

Asincronía en Swift

  • Introducción a la asincronía
  • ¿Cómo debemos orientar la asincronía en Swift?
  • Sintaxis para gesionar funciones asíncronas
  • Manejo de errores en procesos asíncronos
tema 24

Closures en Swift

  • Introducción a Closures de Swift
  • Características de los closures en Swift y su relación con las funciones
  • La capacidad de los closures para capturar y almacenar referencias a variables y constantes
  • Sintaxis fundamental de los closures y su declaración
  • Uso de closures como argumentos en la definición de funciones
  • Ejemplos de paso de closures a funciones
  • Uso de closures en manipulación de colecciones y operaciones asincrónicas
  • Captura y retención de valores en closures
  • Ejemplos prácticos mostrando la captura de variables y constantes.
  • ¿Qué son los closures que "escapan"?
  • ¿Cuándo podemos usar este tipo de closures que "escapan"?.
  • Uso de `@escaping` en la definición de funciones que requieren closures como parámetros.
  • Manejo de referencias, memoria y retención cíclica en closures.
  • Usos de listas de captura débil (`weak`)
  • Usos de listas de captura no poseída (`unowned`)
tema 25

Encadenamiento de Opcionales

  • Introducción al encadenamiento opcional como forma de consulta
  • Llamada de propiedades, métodos y subíndices de forma segura en opcionales
  • Accedeso a propiedades de un opcional sin necesidad de desempaquetarlo
  • Sintaxis y ejemplos prácticos de encadenamiento opcional en diversas situaciones
  • Comparación entre el encadenamiento opcional y el uso de `if let` o `guard let`
  • ¿Cómo los métodos y subíndices pueden ser llamados de manera segura en una cadena opcional?
  • Ejemplos de llamadas a métodos y acceso a elementos de un array a través de un encadenamiento opcional
  • Uso del operador de coalescencia nula (`??`) en conjunto con el encadenamiento opcional
  • Proporcionando un valor por defecto en caso de `nil`
  • Ejemplos que ilustran cómo esta técnica simplifica el código y mejora su legibilidad
  • Estrategias para incorporar el encadenamiento opcional en estructuras de control de flujo
  • Uso de encadenamiento opcional en `if`, `guard` y otras estructuras para tomar decisiones basadas en valores opcionales
tema 26

Uso de código Genérico en Swift

  • Introducción al código genérico
  • Ventajas principales de emplear código genérico
  • Declaración de funciones genéricas
  • Tipos y nombres genéricos de parámetros
  • Extendiendo un tipo genérico
  • Estableciendo restricciones de tipo cuando desarollamos de manera genérica
  • Introducción a las palabras reservadas `associatedtype`, `typealias` y `mutating func`
  • Uso de tipos asociados
  • Extendiendo tipos existentes para especificación de tipos asociados
  • Uso de Protocolos en las restricciones de tipos
  • Uso de `where` para cláusulas genéricas
  • Extensiones con cláusulas `where`
  • Cláusulas contextuales con `where`
  • Tipos asociados con cláusulas genéricas `where`
  • Introducción a los subscripts y la palabra reservada `subscript`
  • Uso de subscripts de manera genérica
  • Consejos fundamentales para el uso correcto de la programación genérica profesional
tema 27

Macros

  • ¿Qué son las macros en Swift?
  • Ventajas de emplear Macros cuando desarrollamos código Swift
  • Definiendo y llamando a macros independientes usando `#`
  • Definiendo y usando macros adjuntas usando `@`
  • Declaración e implementación de macros en Swift (`@freestanding` y `@attached`)
  • Llamadas a implentación de macros para expansión de tu código
  • Implentación de macros (tipo y librería para exposición de la macro)
  • Configuración de Package.swift para declar y exponer una macro implementada
  • Uso de `targets` en Package.swift para definir el nombre de la librería y sus dependencias
  • Consejos para el desarrollo y depuración de macros
tema 28

Proyecto Final en Swift: Aplicación Integrada en Playgrounds

  • Descripción general del proyecto
  • Estructura y Requisitos del Proyecto
  • Modelado de Datos: Definiendo structs y clases para representar el modelo de datos de la aplicación
  • Implementación de arrays, diccionarios y sets para manejar datos
  • Utilización estructuras de control de flujo (`if`, `switch`, bucles) para implementar la lógica
  • Creación de funciones con parámetros y tipos de retorno claros
  • Demostrando el uso de closures y protocolos, aplicando conceptos como delegación o patrones de diseño
  • Aplicación de niveles de control de acceso (`public`, `private`) adecuados para proteger los datos y exponer funcionalidades
  • Implementación para manejo seguro de opcionales y errores
  • Diseñando una forma de interactuar con el usuario a través de la consola
  • Utilizando extensiones para añadir funcionalidades a tipos existentes
  • Aplicando encadenamiento opcional, operadores avanzados y funciones de alto orden
  • Comentando el código de manera efectiva, siguiendo las convenciones de estilo de Swift
  • Consejos a seguir a partir de este curso

Curso de Swift bonificado para Empresas a través de FUNDAE

Somos entidad organizadora de FUNDAE, todas nuestras formaciones se pueden bonificar hasta el 100%, sujeto a vuestro crédito disponible y a cumplir con todos los requisitos de realización establecidos por la Fundación Estatal para el Empleo.

 

Si desconoces el funcionamiento de las bonificaciones, ofrecemos el servicio de gestión en FUNDAE, consúltanos cualquier duda que te surja.

Descargar Guía FUNDAE
imagenFundae
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient