Desarrollo iOS completo: SwiftUI y su modelo declarativo, SwiftData y persistencia, arquitectura, capacidades del sistema, rendimiento y publicar en la App Store.
Cada nivel construye sobre el anterior. Sin saltos, sin huecos.
La visión aérea: SwiftUI y el modelo declarativo, los datos, la arquitectura de una app, las capacidades del sistema y el camino a la App Store.
Construir interfaces declarativas: vistas, layout, modificadores, estado con @State y @Binding, listas y navegación.
Llevar SwiftUI al límite: @Observable, environment, animaciones, gestos, dibujo y las APIs nuevas de iOS 26.
Persistencia con SwiftData: @Model, @Query, relaciones, herencia de modelos, migraciones y sincronización con CloudKit.
El recorrido entero de una app: arquitectura, inyección de dependencias, testing, accesibilidad, localización y publicación.
El algoritmo de layout: la negociación padre-hijo, prioridades, `frame`, `alignmentGuide` y escribir un `Layout` propio.
Listas a fondo: `List` vs `LazyVStack`, secciones, swipe actions, edición, refresco y el coste real del scroll.
La navegación moderna: `NavigationStack`, rutas tipadas, `NavigationSplitView`, deep links y restaurar la sesión.
Entrada de datos: `TextField`, foco programático, teclado, validación en vivo y formularios accesibles.
Animaciones avanzadas: `withAnimation`, transiciones personalizadas, `matchedGeometryEffect`, `PhaseAnimator` y springs.
Gráficos en SwiftUI: `Shape` y `Path`, `Canvas`, Metal shaders, y Swift Charts para visualización de datos.
El sistema de estado: `@State`, `@Binding`, `@Environment`, `@Observable`; identidad de vistas y por qué a veces no se actualiza.
Más allá de SwiftData: cuándo Core Data sigue mandando, guardar archivos, `UserDefaults` y secretos en el Keychain.
Consumir APIs: `URLSession` con async/await, `Codable`, reintentos, cache, subidas y descargas en segundo plano.
Medios en una app: `AsyncImage`, PhotosPicker, la cámara, reproducir audio y vídeo con AVFoundation.
Async en la interfaz: `.task`, cancelación al desaparecer la vista, `@MainActor`, y no bloquear nunca el hilo principal.
Estructurar una app real: MV vs MVVM vs TCA, capas de dominio y datos, y las fronteras que aguantan el crecimiento.
Dividir la app en módulos SPM: tiempos de compilación, previews aislados, y el grafo de dependencias sano.
Testear una app iOS: lógica con Swift Testing, tests de UI con XCUITest, snapshot testing y qué merece la pena.
Accesibilidad de verdad: VoiceOver, Dynamic Type, contraste, reducción de movimiento, y auditar con el inspector.
Internacionalizar: String Catalogs, plurales, formatos de fecha y número, texto de derecha a izquierda y probar en varios idiomas.
Notificaciones: permisos, locales, push con APNs, contenido enriquecido, y las extensiones de servicio y contenido.
Extender la app al sistema: WidgetKit, Live Activities, App Intents, atajos de Siri y controles interactivos.
Sincronizar: CloudKit con SwiftData, conflictos, compartir registros entre usuarios y trabajar sin conexión.
Que la app vuele: tiempo de arranque, uso de memoria, consumo de batería, scroll a 120fps y el coste de cada decisión.
Depurar y perfilar: Instruments (Time Profiler, Allocations, Leaks), el debugger de vistas, y encontrar la causa real.
Proteger al usuario: permisos y sus descripciones, App Tracking Transparency, manifiestos de privacidad, cifrado y Keychain.
Publicar: certificados y perfiles, App Store Connect, TestFlight, la revisión de Apple y los rechazos más comunes.
Ganar dinero: compras dentro de la app y suscripciones con StoreKit 2, verificar transacciones y probar con sandbox.
Observabilidad: métricas de MetricKit, informes de fallo, analítica respetuosa con la privacidad, y cerrar el bucle con el usuario.
Automatizar: Xcode Cloud o GitHub Actions, firmar en CI, subir a TestFlight sola, y los tests en cada pull request.
Una base de código, muchas pantallas: adaptar a iPad, llevar a Mac con Catalyst o nativo, watchOS y visionOS.
UIKit en 2026: cuándo sigue siendo necesario, el ciclo de vida de un controlador, y qué conceptos conviene conocer.
Mezclar frameworks: `UIViewRepresentable`, `UIHostingController`, y migrar una app de UIKit a SwiftUI pantalla a pantalla.
La síntesis: arquitectar una app completa, sostenerla en el tiempo, y hacia dónde va el desarrollo en el ecosistema Apple.
Empieza por los fundamentos y sube nivel a nivel hasta el dominio total.
Comenzar el camino →