Activitykit

Patrones de iOS Live Activity y Dynamic Island más una lista de verificación de 20 elementos de ActivityKit

Por dpearson2699 · dpearson2699/swift-ios-skills

Probado · Funciona ★ 8.8/10

Activitykit — Patrones de iOS Live Activity y Dynamic Island más una lista de verificación de 20 elementos de ActivityKit

Qué hace

Guía la implementación y revisión de Live Activities y presentaciones de Dynamic Island de iOS construidas sobre ActivityKit, cubriendo el diseño de ActivityAttributes y ContentState, el ciclo de vida de request/update/end, diseños de Lock Screen y Dynamic Island, APNs push-to-update y push-to-start, y una lista de verificación de 20 elementos. Se activa cuando el trabajo involucra ActivityKit, Live Activities, regiones compactas/expandidas/mínimas de Dynamic Island, tokens de actividad push o payloads aps.content-state. Incluye un archivo de referencia de 950 líneas con fragmentos completos de Swift, ejemplos de payload de APNs y claves Info.plist.

Informe de la prueba

Instalado en un HOME temporal a través del bloque de instalación anterior y confirmado que ~/.claude/skills/activitykit/SKILL.md se ubica; el frontmatter se analiza solo a name+description (554 caracteres), los tres archivos sin procesar devuelven HTTP 200, el enlace relativo y su ancla #push-to-update-server-payload-format se resuelven a la línea 234 de la referencia de 953 líneas, y grep no encontró curl|sh, payloads base64, exfiltración de secretos o rutas de máquina codificadas (el único curl es un ejemplo documentado de APNs usando $JWT_TOKEN). Para la salida, escribí un archivo de Live Activity de 130 líneas para compartir viajes con 12 defectos de ActivityKit plantados y lo revisé dos veces: la línea base detectó 6 (API contentState obsoleta, falta de finalización al cancelar/cerrar sesión, PII en la pantalla de bloqueo, blob de 180KB en ContentState, red en la vista del widget, falta de coincidencia de clave content-state) mientras que la pasada impulsada por la lista de verificación detectó los 12, incluyendo los cuatro que la línea base omitió por completo — NSSupportsLiveActivities en la extensión del widget en lugar de la aplicación host (fatal, nada se inicia), sin manejo de staleDate/context.isStale, sin puerta ActivityAuthorizationInfo, y style:.transient siendo incorrecto para el seguimiento persistente de viajes — además diagnosticó *por qué* falla el payload (ClosedRange<Date> se codifica como un array de dos elementos, no la cadena ISO enviada) y que apns-topic necesita el sufijo .push-type.liveactivity. Penalizado a 8 porque la pasada de la habilidad, al tener forma de lista de verificación, omitió el fallo try!/force-unwrapped-URL que la línea base marcó, y nada aquí compila o se ejecuta en un dispositivo.

Probado el: 2026-07-21 · Claude Code 2.x (agent harness)

Instalación

git clone --depth 1 https://github.com/dpearson2699/swift-ios-skills.git /tmp/activitykit-src
mkdir -p ~/.claude/skills
cp -R /tmp/activitykit-src/skills/activitykit ~/.claude/skills/activitykit
# Installs SKILL.md + references/activitykit-patterns.md + evals/evals.json. No deps, no API keys.
# Repo holds 86 sibling iOS skills; this copies only activitykit.
# Alternative (whole marketplace, Claude Code plugin): /plugin marketplace add dpearson2699/swift-ios-skills
# Alternative (interactive picker, any agent): npx skills add dpearson2699/swift-ios-skills
# Cleanup: rm -rf /tmp/activitykit-src

Comandos y prompts de ejemplo

  • /activitykitPatrones de iOS Live Activity y Dynamic Island más una lista de verificación de 20 elementos de ActivityKit

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

  • Add a Dynamic Island layout for delivery tracking
  • Implement push-to-update Live Activities for scores
  • Review my ActivityKit lifecycle handling code