widgetkit-code-review
SKILL.md
WidgetKit Code Review
Quick Reference
| Issue Type | Reference |
|---|---|
| TimelineProvider, entries, reload policies | references/timeline.md |
| Widget families, containerBackground, deep linking | references/views.md |
| AppIntentConfiguration, EntityQuery, @Parameter | references/intents.md |
| Refresh budget, memory limits, caching | references/performance.md |
Review Checklist
-
placeholder(in:)returns immediately without async work - Timeline entries spaced at least 5 minutes apart
-
getSnapshotcheckscontext.isPreviewfor gallery previews -
containerBackground(for:)used for iOS 17+ compatibility -
widgetURLused for systemSmall (not Link) - No Button views (use Link or widgetURL)
- No AsyncImage or UIViewRepresentable in widget views
- Images downsampled to widget display size (~30MB limit)
- App Groups configured for data sharing between app and widget
- EntityQuery implements
defaultResult()for non-optional parameters - New intent parameters handle nil for existing widgets after updates
-
reloadTimelinescalled strategically (not on every data change)
When to Load References
- TimelineProvider implementation or refresh issues -> timeline.md
- Widget sizes, Lock Screen, containerBackground -> views.md
- Configurable widgets, AppIntent migration -> intents.md
- Memory issues, caching, budget management -> performance.md
Review Questions
- Does the widget provide fallback entries for when system delays refresh?
- Are Lock Screen families (accessoryCircular/Rectangular/Inline) handled appropriately?
- Would migrating from IntentConfiguration break existing user widgets?
- Is timeline populated with future entries or does it rely on frequent refreshes?
- Is data cached via App Groups for widget access?
Weekly Installs
28
Repository
existential-birds/beagleFirst Seen
14 days ago
Installed on
claude-code21
antigravity19
opencode19
codex19
gemini-cli18
cursor17