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 #4: Control de flujo — de if/else a pattern matching
if/else, switch exhaustivo con pattern matching, guard como filosofía, y cómo el compilador optimiza tus decisiones a jump tables.
-
- swift
- ios
- performance
Dominando Instruments (Parte 2.5): malloc, free y ARC — cómo funciona la memoria bajo el capó
Entiende visceralmente qué pasa cuando tu código se ejecuta. Visualiza malloc, free, reference counting y retain cycles con componentes interactivos.
-
- swift
- swift-cero-experto
- swift-fundamentals
Swift de Cero a Experto #3: Strings y Characters — mucho más que texto
Unicode scalars, grapheme clusters, por qué string[0] no existe en Swift, y cómo Substring comparte memoria con el String original.