Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Swift — Avanzado

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

Microcertificados relacionados

Detalles de la 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.

  1. Comprender los principios de las arquitecturas modulares para iOS (TCA, Clean Architecture, VIPER) y los trade-offs que determinan su elección según el tamaño y ciclo de vida del proyecto.
  2. Comprender el modelo de memoria de Swift, las causas estructurales de los retain cycles y los mecanismos de aislamiento que ofrece Swift Concurrency para prevenir condiciones de carrera.
  3. Aplicar Xcode Instruments y el Memory Graph Debugger para identificar, corregir y verificar problemas de rendimiento de rendering, tiempo de arranque en frío y fugas de memoria en una codebase real.
  4. Diseñar un modelo de concurrencia seguro con actors, structured concurrency y task groups, documentando las invariantes de aislamiento y anticipando escenarios de fallo.
  5. Construir una capa de resiliencia de red con retry exponencial, circuit breaker y caché offline, validándola mediante tests de inyección de fallos.
  6. Evaluar la calidad de una suite de tests mediante métricas de cobertura de ramas y mutation score, y proponer un plan de mejora justificado.
  7. Integrar el conocimiento anterior en un pipeline de CI/CD completo con Fastlane que automatice build, firma y distribución de forma desatendida y reproducible.

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.

  • macOS Ventura 13.5 o superior (se recomienda Sonoma 14).
  • Xcode 15 o superior con simuladores iOS 17 instalados.
  • Cuenta de Apple Developer (puede ser gratuita para la mayor parte de los ejercicios; se requiere membresía de pago para los ejercicios de firma y distribución).
  • Ruby 3.x y Fastlane 2.x instalados y configurables en el entorno local.
  • Acceso a un servicio de CI (GitHub Actions, Bitrise o equivalente) con permisos suficientes para crear y ejecutar workflows.
  • Git 2.x y familiaridad con flujos de trabajo basados en ramas (GitFlow o trunk-based development).
  • Dispositivo físico iOS recomendado para la medición de métricas energéticas y de rendimiento en condiciones reales.

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.

Desarrollo iOS Nativo con Swift

Desarrollar aplicaciones iOS nativas con Swift

28h de clase en directo3 Cursos
    Swift