Activitykit

Modèles iOS Live Activity et Dynamic Island plus une liste de contrôle ActivityKit de 20 éléments.

par dpearson2699 · dpearson2699/swift-ios-skills

Testé · Fonctionne ★ 8.8/10

Activitykit — Modèles iOS Live Activity et Dynamic Island plus une liste de contrôle ActivityKit de 20 éléments.

Ce que fait

Guide l'implémentation et la révision des présentations iOS Live Activities et Dynamic Island basées sur ActivityKit, couvrant la conception d'ActivityAttributes et ContentState, le cycle de vie request/update/end, les mises en page Lock Screen et Dynamic Island, les push-to-update et push-to-start APNs, et une liste de contrôle de 20 éléments. Se déclenche lorsque le travail implique ActivityKit, Live Activities, les régions compactes/étendues/minimales de Dynamic Island, les jetons push d'activité, ou les payloads aps.content-state. Inclut un fichier de référence de 950 lignes avec des extraits Swift complets, des exemples de payloads APNs et des clés Info.plist.

Rapport de test

Installé dans un HOME temporaire via le bloc d'installation ci-dessus et confirmé que ~/.claude/skills/activitykit/SKILL.md est bien là ; le frontmatter est analysé en name+description uniquement (554 caractères), les trois fichiers bruts retournent HTTP 200, le lien relatif et son ancre #push-to-update-server-payload-format se résolvent tous deux à la ligne 234 de la référence de 953 lignes, et grep n'a trouvé aucun curl|sh, payloads base64, exfiltration de secrets, ou chemins machine codés en dur (le seul curl est un exemple APNs documenté utilisant $JWT_TOKEN). Pour la sortie, j'ai écrit un fichier Live Activity de covoiturage de 130 lignes avec 12 défauts ActivityKit intentionnels et l'ai révisé deux fois : la référence en a détecté 6 (API contentState dépréciée, fin manquante sur annulation/déconnexion, PII sur l'écran de verrouillage, blob de 180KB dans ContentState, réseau dans la vue du widget, désaccord de clé content-state) tandis que la passe basée sur la liste de contrôle a détecté les 12, y compris les quatre que la référence avait entièrement manqués — NSSupportsLiveActivities se trouvant dans l'extension du widget au lieu de l'application hôte (fatal, rien ne démarre), pas de gestion staleDate/context.isStale, pas de porte ActivityAuthorizationInfo, et style:.transient étant incorrect pour le suivi persistant des trajets — de plus, il a diagnostiqué *pourquoi* le payload échoue (ClosedRange<Date> s'encode comme un tableau à deux éléments, pas la chaîne ISO envoyée) et que apns-topic nécessite le suffixe .push-type.liveactivity. Pénalisé à 8 car la passe de compétence, étant sous forme de liste de contrôle, a ignoré le crash try!/force-unwrapped-URL que la référence avait signalé, et rien ici ne compile ou ne s'exécute sur un appareil.

Testé le: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

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

Commandes et exemples de prompts

  • /activitykitModèles iOS Live Activity et Dynamic Island plus une liste de contrôle ActivityKit de 20 éléments.

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

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