Guía completa de Swift 6.2: Approachable Concurrency explicado
Guía interactiva con las 5 feature flags de Approachable Concurrency en Xcode 26, configuración recomendada, y guía de migración paso a paso.
Approachable Concurrency es un build setting real en Xcode 26 que activa un conjunto de compiler flags para hacer la concurrencia más accesible. Nace del vision document del Swift team publicado en febrero 2025.
Las 5 feature flags
Lo que se activa al poner Approachable Concurrency = Yes
InferIsolatedConformances y NonisolatedNonsendingByDefault. Las otras 3 ya están habilitadas por defecto.Cómo activarlo en un Swift Package
.enableUpcomingFeature("ApproachableConcurrency") no existe como feature flag del compilador. SWIFT_APPROACHABLE_CONCURRENCY es un build setting exclusivo de Xcode que activa internamente los flags individuales. En SPM, .enableUpcomingFeature() recibe un String y no valida si el flag existe — lo ignora silenciosamente sin error de compilación. Debes activar los flags individuales.Con swiftLanguageModes: [.v6]
Si tu Package ya usa Swift 6 language mode
En Swift 6 language mode, 3 de los 5 flags ya están activos por defecto (DisableOutwardActorInference, GlobalActorIsolatedTypesUsability, InferSendableFromCaptures). Solo necesitas agregar los 2 nuevos de Swift 6.2:
Sin swiftLanguageModes: [.v6] (todos los flags)
Si tu Package aún usa Swift 5 language mode
Si aún no has migrado a Swift 6 language mode, necesitas los 5 flags explícitamente:
Xcode vs SPM: la diferencia
Cómo Xcode resuelve estos valores internamente
| Macro de Xcode | Significado |
|---|---|
$(SWIFT_UPCOMING_FEATURE_6_0) | Se activa con Swift 6 language mode |
$(SWIFT_APPROACHABLE_CONCURRENCY) | Se activa con el toggle Approachable Concurrency = Yes |
$(SETTING_DefaultValue_...) | Se activa si cualquiera de los dos está activo (OR lógico) |
.enableUpcomingFeature(). Si ya usas swiftLanguageModes: [.v6], solo necesitas los 2 nuevos.Relacionados
-
- swift
- swift-cero-experto
- swift-fundamentals
Swift de Cero a Experto #11: Opcionales y Optional Chaining
El antídoto de Swift al error de mil millones de dólares. Optional es solo un enum — y nil, if let, guard let, ??, ! y el optional chaining compilan a preguntar en qué case estás.
-
- swift
- swift-cero-experto
- swift-fundamentals
Swift de Cero a Experto #10: Herencia e Inicialización
Subclassing, overriding y super. Designated vs convenience initializers, two-phase initialization, failable y required init, y deinit — el ciclo de vida completo de una class, explicado en memoria.
-
- swift
- swift-cero-experto
- swift-fundamentals
Swift de Cero a Experto #9: Propiedades, métodos y subscripts
Stored vs computed properties, observers, lazy, static. Cómo las propiedades definen el layout en memoria y por qué computed = zero storage.