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 desarrolladores iOS con experiencia sólida en Swift y UIKit/SwiftUI que buscan dominar las decisiones de ingeniería que diferencian una aplicación mantenible y de alto rendimiento de una codebase frágil. A lo largo de las 10 horas del curso, los participantes abordarán el diseño de arquitecturas modulares a escala, el modelado de concurrencia segura con Swift Concurrency, la optimización del rendimiento de rendering y del tiempo de arranque, la gestión rigurosa de memoria, el diseño de capas de resiliencia frente a fallos de red, la evaluación crítica de suites de tests y la automatización de pipelines de CI/CD; todo ello respaldado por métricas medibles obtenidas en Xcode Instruments, Energy Organizer y herramientas de análisis estático, de forma que al finalizar el participante será capaz de entregar software iOS de producción con criterios de calidad, rendimiento y operabilidad justificados y verificables.
Bloque 1 — Arquitectura modular a escala. Se estudian los patrones TCA, Clean Architecture y VIPER desde una perspectiva comparativa, analizando sus invariantes estructurales, las fronteras de módulo que imponen y el coste de mantenimiento a medida que la aplicación crece. Los participantes producen un documento de decisión arquitectónica (ADR) que justifica la elección de patrón para un caso de uso concreto, evaluando alternativas descartadas.
Bloque 2 — Concurrencia segura con Swift Concurrency. Se profundiza en el modelo de actores, la structured concurrency y los task groups como herramientas para eliminar condiciones de carrera por diseño. Se estudian las invariantes de aislamiento, la interoperabilidad con código GCD legado y las estrategias de cancelación cooperativa, con especial atención a la documentación de contratos de concurrencia en código de producción.
Bloque 3 — Rendimiento de rendering y tiempo de arranque. Se trabaja con el Time Profiler, el Hang Detection y el launch profiler de Xcode Instruments para localizar hitches en vistas SwiftUI y UIKit y cuellos de botella en el arranque en frío. Se aplican técnicas de lazy loading, diferimiento de trabajo en didFinishLaunching y reducción de dependencias estáticas, verificando las mejoras con capturas comparativas de métricas antes y después.
Bloque 4 — Gestión de memoria y consumo energético. Se utilizan el Memory Graph Debugger y el Energy Organizer para auditar codebases reales, identificar retain cycles y ciclos de referencia cruzados, y medir el consumo de CPU en background. Se proponen y aplican correcciones verificables en un entorno de staging, cerrando el ciclo con una revisión de las métricas resultantes.
Bloque 5 — Resiliencia de red, calidad de tests y CI/CD. Se diseña una capa de resiliencia que integra retry con back-off exponencial, circuit breaker y caché offline, validada mediante tests de inyección de fallos. A continuación, se evalúa la suite de tests existente con métricas de cobertura de ramas y mutation score, generando un plan de mejora priorizado. El bloque cierra con la automatización del pipeline completo en Fastlane —build, test, firma con certificados y distribución a TestFlight o un canal interno— garantizando ejecución desatendida y reproducible en un servicio de CI.
Los participantes deben haber completado SWI02 o demostrar un nivel equivalente que incluya: manejo fluido del sistema de tipos avanzado de Swift (genéricos, protocolos con associatedtype, opaque types), experiencia con patrones de arquitectura reactiva (Combine o equivalente), desarrollo de vistas con SwiftUI y UIKit, escritura de tests unitarios con XCTest y conocimiento funcional de la gestión de dependencias con Swift Package Manager. Sin estos fundamentos, los ejercicios prácticos del curso no serán abordables en el tiempo previsto.