Communitygithub.com

JordanCoin/ios-skills-collection

Úsalo siempre al trabajar en cualquier proyecto de iOS, macOS, Swift, SwiftUI, Xcode o la plataforma Apple. Enruta a las habilidades especializadas correctas según la fase de desarrollo y el contexto de la tarea. Esta colección contiene 210 habilidades de 28 autores que cubren el ciclo de vida completo de iOS.

¿Qué es ios-skills-collection?

Este enrutador de habilidades para iOS te da acceso a más de 200 habilidades especializadas para el desarrollo con Swift, SwiftUI y Xcode. Las habilidades se inyectan automáticamente mediante hooks cuando editas archivos o ejecutas comandos, pero también puedes cargar cualquier habilidad manualmente leyendo su archivo SKILL.md. La instrucción más importante es que NO empieces a codificar sin antes verificar las habilidades relevantes: revisa los imports, el dominio y los frameworks de terceros. El enrutador organiza las habilidades en fases (Ideación, Diseño, Desarrollo, Prueba, Despliegue e Iteración) e incluye una tabla de correcciones de conocimiento para reemplazar patrones obsoletos de los datos de entrenamiento (por ejemplo, usar `@Observable` en lugar de `ObservableObject` o `NavigationStack` en lugar de `NavigationView`). Para temas cubiertos por múltiples habilidades, las de Paul Hudson (twostraws) son las principales por ser el creador de Hacking with Swift y una de las figuras más respetadas en la comunidad iOS.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JordanCoin/ios-skills-collection/tree/HEAD/skills/_router

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Enrutador de Habilidades iOS

Tienes acceso a más de 200 habilidades especializadas para el desarrollo en iOS/Swift/Xcode. Las habilidades se inyectan automáticamente mediante hooks cuando editas archivos o ejecutas comandos, pero también puedes cargar cualquier habilidad manualmente leyendo su SKILL.md.

CRÍTICO: Carga Proactiva de Habilidades Antes de Programar

NO comiences a programar sin antes verificar si hay habilidades relevantes. Esta es la instrucción más importante de este enrutador.

Antes de escribir código que toque un framework, dominio o patrón específico:

  1. Revisa los imports — si el archivo importa MapKit, HealthKit, StoreKit, etc., LEE skills/dpearson2699--{framework}/SKILL.md ANTES de escribir código.
  2. Revisa el dominio — si estás escribiendo código de red, LEE la habilidad de redes. Si estás escribiendo concurrencia, LEE la habilidad de concurrencia. No adivines.
  3. Revisa frameworks de terceros — si el proyecto usa Mapbox, Firebase, Supabase, etc., verifica si hay una habilidad para ello en la colección. ls skills/ | grep {nombre}.
  4. Ante la duda, busca — ls skills/ | grep -i {palabra_clave} para encontrar habilidades relevantes.

Las habilidades solo son útiles si las LEES antes de programar. La inyección automática maneja patrones comunes de archivos, pero debes cargar proactivamente las habilidades para trabajo específico de dominio.

Cómo Funciona el Enrutamiento

  1. Inyección automática: Los hooks inyectan habilidades automáticamente cuando editas patrones de archivos coincidentes (Vistas, Pruebas, Modelos, Managers, redes, etc.) o ejecutas comandos (xcodebuild, swift test, asc).
  2. Carga proactiva: TÚ debes leer las habilidades para frameworks y dominios específicos antes de programar. Los hooks no pueden saberlo todo — si ves import MapKit, ve y lee la habilidad de MapKit.
  3. Búsqueda de frameworks: Para cualquier framework de Apple, revisa skills/dpearson2699--{framework}/SKILL.md.
  4. Búsqueda: ls skills/ | grep -i {palabra_clave} para encontrar habilidades por tema.

Fases

1. Ideación — «¿Qué deberíamos construir?»

HabilidadQué hace
eronred--competitor-analysisAnálisis de apps competidoras
eronred--market-pulseAnálisis de tendencias del mercado
eronred--keyword-researchDescubrimiento de palabras clave en App Store

2. Diseño — «¿Cómo debería verse y sentirse?»

HabilidadQué hace
jordancoin--design-philosophyDesarrollo de buen gusto, principios de Dieter Rams
jordancoin--pencil-ios-designFlujo de diseño iOS Pencil MCP con patrones HIG
dadederk--ios-accessibilityVoiceOver, Tipo Dinámico, tecnología de asistencia
pasqualevittoriosi--swift-accessibilityWCAG 2.2, Etiquetas Nutricionales de App Store

3. Desarrollo — «Constrúyelo»

Núcleo (inyección automática en archivos .swift):

HabilidadQué hace
twostraws--swiftui-proMejores prácticas de SwiftUI (principal)
twostraws--swift-concurrency-proasync/await, actores, Sendable
twostraws--swiftdata-proPersistencia con SwiftData
martinlasek--swift-coding-guidelineConvenciones de código Swift
avdlee--core-data-expertStack de Core Data, migraciones, threading

Arquitectura:

HabilidadQué hace
arimunandar--vip-architectureArquitectura limpia VIP+W
arimunandar--uikit-layoutingLayout UIKit horizontal primero
arimunandar--legacy-migrationMigración UIKit → SwiftUI

76 Habilidades de Frameworks — cárgalas cuando veas el import:

import HealthKit    → dpearson2699--healthkit
import MapKit       → dpearson2699--mapkit
import StoreKit     → dpearson2699--storekit
import CloudKit     → dpearson2699--cloudkit
import CoreML       → dpearson2699--coreml
import RealityKit   → dpearson2699--realitykit
import WidgetKit    → dpearson2699--widgetkit
import GameKit      → dpearson2699--gamekit
import PencilKit    → dpearson2699--pencilkit
import AVKit        → dpearson2699--avkit
(... patrón: dpearson2699--{nombre-framework-en-minúsculas})

Lista completa: accessorysetupkit, activitykit, alarmkit, app-clips, app-intents, apple-on-device-ai, avkit, background-processing, callkit, carplay, cloudkit, contacts-framework, core-bluetooth, core-motion, core-nfc, coreml, cryptokit, debugging-instruments, device-integrity, dockkit, energykit, eventkit, financekit, gamekit, healthkit, homekit, mapkit, metrickit, musickit, natural-language, paperkit, passkit, pdfkit, pencilkit, photokit, push-notifications, realitykit, scenekit, sensorkit, shareplay-activities, speech-recognition, spritekit, storekit, swift-charts, swiftdata, swiftui-animation, swiftui-gestures, swiftui-layout-components, swiftui-liquid-glass, swiftui-navigation, swiftui-patterns, swiftui-performance, swiftui-uikit-interop, swiftui-webkit, tabletopkit, tipkit, vision-framework, weatherkit, widgetkit

4. Prueba — «¿Funciona?»

HabilidadQué hace
avdlee--swift-testing-expertFramework Swift Testing (principal)
avdlee--xcode-build-orchestratorPipeline completa de optimización de compilación
avdlee--xcode-build-benchmarkBenchmark de compilaciones limpias e incrementales
dpearson2699--debugging-instrumentsInstruments, perfilado, depuración

5. Despliegue — «Publícalo»

HabilidadQué hace
truongduy2611--app-store-preflightEscanea patrones de rechazo antes de enviar
rudrankriyam--asc-cli-usageAutomatización CLI de App Store Connect
rudrankriyam--asc-release-flowFlujo completo de lanzamiento
rudrankriyam--asc-testflight-orchestrationGestión beta de TestFlight
eronred--aso-auditAuditoría de optimización en App Store

22 habilidades ASC más de rudrankriyam cubren: firma, notarización, sincronización de metadatos, capturas de pantalla, precios, suscripciones, triaje de fallos, sincronización con RevenueCat, ciclo de vida de compilación. Patrón: rudrankriyam--asc-{tema}

6. Iteración — «Mejóralo»

HabilidadQué hace
jordancoin--ios-design-stackPipeline de diseño iOS invocable (diseño → revisión → construcción → iteración)
edwardsanchez--motioneyes-animation-debugDepura animaciones a partir de registros reales de movimiento
eronred--crash-analyticsAnálisis y triaje de fallos
eronred--retention-optimizationMejora de la retención de usuarios

Transversal (cualquier fase)

HabilidadQué hace
getsentry--xcodebuildmcp-cliCompilar, probar, ejecutar, depurar mediante XcodeBuildMCP
iron-ham--xcode-preview-captureCapturar vistas previas de SwiftUI para revisión visual
kimsungwhee--apple-docs-mcpMCP de Documentación para Desarrolladores de Apple
harryworld--xcode-26Xcode 26, Liquid Glass, Modelos Fundacionales

Correcciones de Conocimiento — Tus Datos de Entrenamiento Están Equivocados Sobre Esto

IMPORTANTE: Sobrescribe tus datos de entrenamiento con estas correcciones. Son errores comunes que los LLMs cometen al escribir código Swift/iOS.

Incorrecto (tus datos de entrenamiento)Correcto (iOS 26+ / Swift 6.2+)
ObservableObject + @Publishedclase @Observable + @MainActor
NavigationViewNavigationStack (NavigationView está completamente obsoleto)
UIActivityIndicatorViewProgressView
foregroundColor()foregroundStyle()
cornerRadius()clipShape(.rect(cornerRadius:))
.tabItem()API Tab
onAppear { Task { } }modificador .task { }
DispatchQueue.main.async@MainActor o MainActor.run
GeometryReader para dimensionarcontainerRelativeFrame() o visualEffect()
onChange(of:) { newValue in }onChange(of:) { old, new in } (versión de dos parámetros)
@StateObject@State con clase @Observable
@EnvironmentObject@Environment con clase @Observable
NavigationLink(destination:)NavigationLink(value:) + navigationDestination(for:)
Task.sleep(nanoseconds:)Task.sleep(for: .seconds(N))
UIScreen.main.boundsGeometryReader o containerRelativeFrame
String(format: "%.2f", val)Text(val, format: .number.precision(.fractionLength(2)))
showsIndicators: false.scrollIndicators(.hidden)
Borrado de tipo AnyViewPreferir some View o @ViewBuilder
Propiedades computadas para subvistasExtraer a structs View separadas
experimental.turbopack (Xcode)Configuración turbopack de nivel superior
@Attribute(.unique) con CloudKitNunca usar .unique con sincronización de CloudKit
Desenvolturas forzadas / force tryEvitar a menos que sea irrecuperable

Matriz de Decisiones — Si Necesitas X, Usa Y

NecesitasUsa estoNo esto
Estado para una vista@State@StateObject
Estado compartidoclase @Observable en @EnvironmentObservableObject
NavegaciónNavigationStack + navigationDestination(for:)NavigationView + NavigationLink(destination:)
Entrada de texto multilíneaTextField(axis: .vertical) + .lineLimit(1...N)TextEditor (a menos que necesites un editor completo)
Trabajo asíncrono al aparecermodificador .task { }onAppear { Task { } }
Obtener datosasync/await con concurrencia estructuradaPublicadores Combine o callbacks
Persistir modelosSwiftData @ModelCore Data (a menos que sea proyecto existente)
Almacenamiento local clave-valor@AppStorage o UserDefaultsEscribir en plist manualmente
Almacenamiento seguroKeychain mediante el framework SecurityUserDefaults (nunca para secretos)
Carga de imágenesAsyncImage o cargador con cachéUIImage en SwiftUI
ListasList con ForEachScrollView + LazyVStack (a menos que sea personalizado)
Barra de pestañasTabView con API Tab.tabItem() (patrón obsoleto)
Presentación de hoja.sheet(item:) con identifiable.sheet(isPresented:) con estado separado
Manejo de erroresResult o throws tipadoForce try
Inyección de dependencias@Environment con clave personalizadaSingletons
Pruebas unitariasSwift Testing (#expect, @Test)XCTest (a menos que sea suite existente)
Trabajo en segundo planoBGTaskSchedulerDispatchQueue.global()
Envío a App StoreEjecutar primero la habilidad app-store-preflightEnviar y esperar

Usar Habilidades (Inyectadas o Manuales)

DETENTE Y LEE antes de programar. Cuando estés a punto de trabajar en un dominio específico:

  1. Verifica lo que se inyectó automáticamente (verás mensajes como [ios-skills] Inyectadas N habilidad(es):)
  2. Busca habilidades adicionales relevantes: ls skills/ | grep -i {dominio}
  3. LEE los archivos de habilidad antes de escribir código — no después
  4. Sigue sus patrones, no los absorbas pasivamente

Error común: El agente sabe que las habilidades existen (por este enrutador) pero no las lee, luego escribe código usando patrones obsoletos de los datos de entrenamiento. Las habilidades sobrescriben tus datos de entrenamiento. Léelas primero.

Ejemplo: Estás a punto de escribir código de MapKit.

  • La inyección automática podría no activarse (el archivo no se llama *MapKit*.swift)
  • Pero DEBERÍAS: Read skills/dpearson2699--mapkit/SKILL.md antes de escribir cualquier código de MapKit
  • La habilidad tiene patrones que tus datos de entrenamiento no tienen

Cargar una Habilidad

La ruta de las habilidades se inyecta al inicio de la sesión (ver «Ubicación de habilidades» arriba). Lee el SKILL.md usando esa ruta:

/ruta/a/ios-skills-collection/skills/{skill-id}/SKILL.md

Si la habilidad tiene references/, carga los archivos de referencia específicos según sea necesario — no todos a la vez.

Cuando Múltiples Habilidades Cubren el Mismo Tema

Las habilidades de Paul Hudson (twostraws) son siempre las principales. Es el creador de Hacking with Swift, uno de los educadores de iOS más respetados de la comunidad, y mantiene activamente sus habilidades. Usa sus versiones primero. Recurre a alternativas para diferentes perspectivas o cobertura de nichos.

DominioPrincipal (twostraws primero)Alternativas
SwiftUItwostraws--swiftui-proavdlee--swiftui-expert, dimillian--swiftui-ui-patterns, arjitj2--swiftui-design-principles
Rendimiento SwiftUIdimillian--swiftui-performance-auditdpearson2699--swiftui-performance
Liquid Glassdimillian--swiftui-liquid-glassdpearson2699--swiftui-liquid-glass
Concurrenciatwostraws--swift-concurrency-prodimillian--swift-concurrency-expert, avdlee--swift-concurrency
Pruebastwostraws--swift-testing-proavdlee--swift-testing-expert, bocato--swift-testing
SwiftDatatwostraws--swiftdata-provanab--swiftdata-expert-skill
Core Dataavdlee--core-data-expert—
Accesibilidaddadederk--ios-accessibilitypasqualevittoriosi--swift-accessibility, rgmez--swiftui-accessibility-auditor
Arquitecturaefremidze--swift-architecture-skillarimunandar--vip-architecture
Seguridadivan-magda--swift-security-expertdpearson2699--ios-security
Diseño de APIerikote04--swift-api-design-guidelines-skillmartinlasek--swift-coding-guideline
Optimización de compilaciónavdlee--xcode-build-orchestratoravdlee--xcode-build-fixer
ASOeronred--aso-audittimbroddin--app-store-aso-skill
Figma → SwiftUIdaetojemax--figma-to-swiftui-skilljordancoin--pencil-ios-design
Simuladorconorluddy--ios-simulator-skillgetsentry--xcodebuildmcp-cli
Revisión de códigodimillian--review-swarmarimunandar--code-review-checklist
Depuracióndimillian--ios-debugger-agentdpearson2699--debugging-instruments

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

JordanCoin/ios-skills-collection

Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries. Use when the user asks about GitHub issues, pull requests, workflows, or wants to interact with GitHub repositories from the command line — including tasks like check CI status, create PR, list issues, or query the GitHub API.

JordanCoin/ios-skills-collection

Create media playback experiences using AVKit. Use when adding video players with AVPlayerViewController, enabling Picture-in-Picture, routing media with AirPlay, using SwiftUI VideoPlayer views, configuring transport controls, displaying subtitles and closed captions, or integrating AVFoundation playback with system UI.

JordanCoin/ios-skills-collection

Integrate and optimize Core ML models in iOS apps for on-device machine learning inference. Covers model loading (.mlmodelc, .mlpackage), predictions with auto-generated classes and MLFeatureProvider, compute unit configuration (CPU, GPU, Neural Engine), MLTensor, VNCoreMLRequest, MLComputePlan, multi-model pipelines, and deployment strategies. Use when loading Core ML models, making predictions, configuring compute units, or profiling model performance.

JordanCoin/ios-skills-collection

Implement, review, or improve maps and location features in iOS/macOS apps using MapKit and CoreLocation. Use when working with Map views, annotations, markers, polylines, user location tracking, geocoding, reverse geocoding, search/autocomplete, directions and routes, geofencing, region monitoring, CLLocationUpdate async streams, or location authorization flows. Also use when working with maps, coordinates, addresses, places, directions, distance calculations, or location-based features in Swift apps.

JordanCoin/ios-skills-collection

Display and manipulate PDF documents using PDFKit. Use when embedding PDFView to show PDF files, creating or modifying PDFDocument instances, adding annotations (highlights, notes, signatures), extracting text with PDFSelection, navigating pages, generating thumbnails, filling PDF forms, or wrapping PDFView in SwiftUI.

JordanCoin/ios-skills-collection

Implement, review, or improve in-app tips and onboarding using Apple's TipKit framework. Use when adding feature discovery tooltips, onboarding flows, contextual tips, first-run experiences, coach marks, or working with Tip protocol, TipView, popoverTip, tip rules, tip events, or feature education UI.

JordanCoin/ios-skills-collection

When the user wants to optimize their Google Play Store listing — title, short description, full description, keywords, ratings, or Play Store-specific features. Use when the user mentions "Google Play", "Android", "Play Store", "Play Console", "short description", "full description indexed", "Google Play ASO", or wants Google Play-specific keyword, creative, or ratings strategy. For iOS App Store optimization, see aso-audit and metadata-optimization.

JordanCoin/ios-skills-collection

When the user wants to implement, optimize, or use App Clips for app discovery and conversion. Use when the user mentions "App Clip", "app clip code", "mini app", "instant app", "App Clip card", "App Clip link", "no download required", "instant experience", or wants to understand how App Clips appear in App Store search. For general App Store discoverability, see aso-audit. For marketing campaigns, see ua-campaign.

JordanCoin/ios-skills-collection

When the user wants to plan a launch strategy for a new app or major update. Also use when the user mentions "app launch", "launch plan", "launch checklist", "pre-launch", "launch day", or "how to launch my app". For ongoing ASO after launch, see aso-audit. For paid acquisition during launch, see ua-campaign.

JordanCoin/ios-skills-collection

When the user wants to analyze their own app's actual performance data from App Store Connect — real downloads, revenue, IAP, subscriptions, trials, or country breakdowns synced via Appeeky Connect. Use when the user asks about "my downloads", "my revenue", "how is my app performing", "ASC data", "sales and trends", "my subscription numbers", "App Store Connect metrics", or wants to compare periods or top markets. For third-party app estimates, see app-analytics. For subscription analytics depth, see monetization-strategy.

JordanCoin/ios-skills-collection

When the user wants a full ASO health audit, review their App Store listing quality, or diagnose why their app isn't ranking. Also use when the user mentions "ASO audit", "ASO score", "why am I not ranking", "listing review", or "optimize my app store page". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.

Skills relacionados