Activitykit

iOS Live Activity- och Dynamic Island-mönster plus en 20-punkters ActivityKit-granskningschecklista

av dpearson2699 · dpearson2699/swift-ios-skills

Testad · Fungerar ★ 8.8/10

Activitykit — iOS Live Activity- och Dynamic Island-mönster plus en 20-punkters ActivityKit-granskningschecklista

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 tracking
  • Implement push-to-update Live Activities for scores
  • Review my ActivityKit lifecycle handling code