Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Swift — Intermedio

10h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • Swift

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a desarrolladoras y desarrolladores iOS que ya dominan los fundamentos del lenguaje y quieren consolidar patrones de diseño y técnicas de ingeniería propias del desarrollo profesional con Swift. A lo largo de diez horas, el participante profundizará en el modelado de datos con semántica de valor y referencia, la orientación a protocolos con extensiones por defecto, la concurrencia moderna con async/await, la gestión del ciclo de vida de objetos observables en SwiftUI, la arquitectura MVVM y la persistencia local, reforzando todo ello con técnicas reales de depuración en Xcode. Al finalizar, el participante será capaz de diseñar y mantener features completas —desde la capa de datos hasta la interfaz— aplicando criterios técnicos justificados y resolviendo de forma autónoma los problemas más habituales en un proyecto iOS de nivel intermedio.

  1. Distinguir la semántica de valor y de referencia en Swift para seleccionar el tipo de dato —struct, class o enum— más adecuado en cada caso de uso.
  2. Explicar los mecanismos de gestión de memoria de Swift, identificando las condiciones que producen ciclos de retención en closures y las estrategias para evitarlos.
  3. Describir el modelo de concurrencia estructurada de Swift y el contrato de do/try/catch aplicado a llamadas de red con URLSession.
  4. Diseñar un modelo de datos justificando la elección de tipo según semántica de valor o referencia, e integrando un protocolo propio con extensión por defecto compartido entre al menos dos tipos.
  5. Adaptar un flujo de red basado en callbacks a async/await, manteniendo el manejo de errores tipado y eliminando el anidamiento de clausuras.
  6. Diseñar la capa de presentación de una pantalla con patrón MVVM, separando lógica de negocio y vista, e integrando persistencia local seleccionando entre UserDefaults y CoreData según el volumen y la estructura de los datos.
  7. Depurar fallos de retención de memoria con el Memory Graph de Xcode y crashes en scheme Release con breakpoints de excepción, documentando causa raíz y solución aplicada.
  8. Evaluar el uso de @StateObject frente a @ObservedObject en SwiftUI y adaptar interfaces UIKit para soportar Dark Mode y Dynamic Type, razonando las decisiones de diseño tomadas en cada escenario.

Bloque 1 — Modelado de datos y orientación a protocolos Este bloque establece los fundamentos del diseño estructural en Swift. Se revisa la semántica de valor (struct, enum) frente a la semántica de referencia (class), analizando criterios de elección según mutabilidad, identidad y rendimiento en casos de uso reales. A continuación se estudia la orientación a protocolos: definición de protocolos propios, implementación de extensiones con comportamiento por defecto y composición de tipos para compartir lógica entre distintas entidades de una misma feature sin recurrir a herencia.

Bloque 2 — Gestión de memoria y depuración de retención Se examina el modelo de conteo de referencias de Swift (ARC), con especial atención a los ciclos de retención que aparecen al capturar self en closures. El participante aprenderá a identificar estos ciclos usando el Memory Graph de Xcode, a romperlos con referencias débiles y sin propietario (weak/unowned), y a documentar la causa raíz y la corrección aplicada siguiendo un flujo de diagnóstico reproducible.

Bloque 3 — Concurrencia moderna con async/await Este bloque aborda la migración de código asíncrono basado en callbacks y completionHandler al modelo estructurado de async/await. Se trabaja la transformación de llamadas URLSession existentes, la propagación y captura de errores con do/try/catch, y las reglas de ejecución en el hilo principal. Se ponen de manifiesto las ventajas de legibilidad y las garantías de seguridad de datos frente al modelo anterior.

Bloque 4 — Arquitectura MVVM y estado en SwiftUI/UIKit Se introduce el patrón MVVM como estrategia para separar lógica de negocio y capa de presentación. El bloque cubre la creación de ViewModel observables tanto en SwiftUI como en UIKit, la distinción entre @StateObject y @ObservedObject según el ciclo de vida de la vista, y la integración de persistencia local eligiendo entre UserDefaults para preferencias ligeras y CoreData (nivel entidad simple) para estructuras de mayor complejidad. El bloque cierra con la adaptación de interfaces UIKit para Dark Mode y Dynamic Type, asegurando que el diseño base no se degrada en ninguna configuración del sistema.

Bloque 5 — Depuración avanzada en Xcode El bloque final integra las habilidades de diagnóstico trabajadas a lo largo del curso. Se profundiza en el uso de breakpoints de excepción, la consola de Xcode y el scheme Release para reproducir y analizar crashes en condiciones próximas a producción. El participante practica un flujo completo: reproducción del fallo, identificación de la causa raíz, corrección y documentación, consolidando así un método de trabajo sistemático aplicable en proyectos reales.

  • macOS Ventura (13) o superior.
  • Xcode 15 o superior con los simuladores de iOS instalados.
  • Cuenta de desarrollador de Apple (plan gratuito es suficiente para ejecutar en simulador).
  • Acceso a internet para descargar los materiales del curso y realizar las llamadas de red de los ejercicios prácticos.
  • Se recomienda disponer de un dispositivo físico con iOS 16 o superior para los ejercicios de Dark Mode y Dynamic Type, aunque el simulador es aceptable.
  • Sintaxis fundamental de Swift: variables, constantes, tipos básicos, colecciones y control de flujo.
  • Definición y uso básico de funciones, closures y opcionales.
  • Conceptos elementales de orientación a objetos en Swift: definición de struct, class y enum sin énfasis en semántica de memoria.
  • Experiencia mínima con Xcode: crear un proyecto, compilar y ejecutar en simulador.
  • Noción introductoria de SwiftUI o UIKit: al menos haber construido una vista sencilla.

Estos conocimientos se adquieren en el curso SWI01 (Swift — Iniciación), que es prerrequisito obligatorio de este curso.