Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una 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.
struct, class o enum— más adecuado en cada caso de uso.do/try/catch aplicado a llamadas de red con URLSession.async/await, manteniendo el manejo de errores tipado y eliminando el anidamiento de clausuras.UserDefaults y CoreData según el volumen y la estructura de los datos.@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.
struct, class y enum sin énfasis en semántica de memoria.Estos conocimientos se adquieren en el curso SWI01 (Swift — Iniciación), que es prerrequisito obligatorio de este curso.