Activitykit
iOS Live Activity- och Dynamic Island-mönster plus en 20-punkters ActivityKit-granskningschecklista
Testad · Fungerar
Vad den gör
Vägleder implementering och granskning av iOS Live Activities och Dynamic Island-presentationer byggda på ActivityKit, täcker ActivityAttributes och ContentState-design, request/update/end-livscykeln, Lock Screen- och Dynamic Island-layouter, APNs push-to-update och push-to-start, och en 20-punkters granskningschecklista. Utlöses när arbete involverar ActivityKit, Live Activities, Dynamic Island compact/expanded/minimala regioner, activity push tokens, eller aps.content-state-nyttolaster. Inkluderar en 950-radig referensfil med fullständiga Swift-utdrag, APNs-nyttolastexempel och Info.plist-nycklar.
Testrapport
Installeras i en temporär HOME via installationsblocket ovan och bekräftade att ~/.claude/skills/activitykit/SKILL.md hamnar; frontmatter parsas till endast name+description (554 tecken), alla tre råfiler returnerar HTTP 200, den relativa länken och dess #push-to-update-server-payload-format-ankare löser båda till rad 234 i den 953-radiga referensen, och grep hittade inga curl|sh, base64-nyttolaster, hemlig exfiltrering, eller hårdkodade maskinsökvägar (den enda curl är ett dokumenterat APNs-exempel som använder $JWT_TOKEN). För utdata skrev jag en 130-radig Live Activity-fil för samåkning med 12 inplanterade ActivityKit-defekter och granskade den två gånger: baslinjen fångade 6 (föråldrad contentState API, saknad end vid avbryt/utloggning, PII på låsskärmen, 180KB blob i ContentState, nätverk i widgetvyn, content-state-nyckelmatchningsfel) medan den checklistdrivna passningen fångade alla 12, inklusive de fyra baslinjen missade helt — NSSupportsLiveActivities som sitter i widgettillägget istället för värdappen (fatalt, inget startar), ingen staleDate/context.isStale-hantering, ingen ActivityAuthorizationInfo-grind, och style:.transient som var fel för ihållande spårning av åkturer — plus att den diagnostiserade *varför* nyttolasten misslyckas (ClosedRange<Date> kodas som en tvåelementarray, inte den skickade ISO-strängen) och att apns-topic behöver .push-type.liveactivity-suffixet. Avdragen till 8 eftersom färdighetspassningen, som var checklistformad, tappade try!/force-unwrapped-URL-kraschen som baslinjen flaggade, och inget här kompileras eller körs på en enhet.
Testad: 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
Kommandon och exempelprompter
/activitykitiOS Live Activity- och Dynamic Island-mönster plus en 20-punkters ActivityKit-granskningschecklista
Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):
Add a Dynamic Island layout for delivery trackingImplement push-to-update Live Activities for scoresReview my ActivityKit lifecycle handling code