widgetkit

Implements WidgetKit and ActivityKit solutions including timelines, Live Activities and interactive app intents.

Updated May 10, 2026
One-click install
npx skills add https://github.com/FelixRauch/medat-figuren --skill widgetkit-felixrauch
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: widgetkit
Source: https://github.com/FelixRauch/medat-figuren/tree/main/.agents/skills/widgetkit
Command: npx skills add https://github.com/FelixRauch/medat-figuren --skill widgetkit-felixrauch

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

WidgetKit and ActivityKit implementations can fail silently or behave unexpectedly due to refresh limits, timeline rules, app-extension setup, and iOS-specific rendering constraints.

Core Features & Use Cases

  • Build widgets reliably with correct timelines: Choose between TimelineProvider and AppIntentTimelineProvider, set refresh policies, and generate entries that respect widget budgets.
  • Deliver real-time experiences with Live Activities: Define ActivityAttributes/ContentState, start/update/end activities correctly, and use Dynamic Island layouts.
  • Add control surfaces and interactive widgets: Implement Control Center widgets and interactive widget actions using AppIntent, ControlWidgetButton, and ControlWidgetToggle.
  • Harden production readiness with best practices: Avoid common mistakes like heavy work in placeholder(), missing app-group setup, and incorrect Live Activity entitlements.

What problem does it solve?

When your widget feels correct in the simulator but misbehaves on device (updates don’t show, refreshes exceed budgets, or Live Activities don’t start), this Skill provides the operational checklist and implementation patterns to make your solution dependable.

Quick Start

Use widgetkit to implement a home screen widget with an AppIntentTimelineProvider and validate that it updates within the refresh budget, adapts per WidgetFamily, and uses app-group shared data for live state.

Frequently Asked Questions about widgetkit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I stop my WidgetKit timeline from exceeding refresh budgets on device?

To prevent WidgetKit refresh budgets from being exceeded, configure deterministic timeline generation using appropriate refresh policies and generate entries that respect system widget budgets rather than requesting frequent updates.

Why does my Live Activity fail to start on a physical device?

Live Activities fail to start when missing correct entitlements or improper ActivityAttributes setup, so verify your app extension configuration includes the required ActivityKit entitlements and proper start, update, and end semantics.

What is the difference between TimelineProvider and AppIntentTimelineProvider for home screen widgets?

TimelineProvider generates deterministic widget timeline entries automatically, whereas AppIntentTimelineProvider enables configurable App Intent flows allowing user-driven widget updates through interactive actions via AppIntents.

How do I implement interactive widget actions and Control Center widgets?

Implement interactive widget actions and Control Center widgets using AppIntent, ControlWidgetButton, and ControlWidgetToggle to add control surfaces that respond directly to user interactions within the widget context.

Do I need App Groups to share data between my app and widget extension?

Yes, App Groups are required for proper app-extension setup to share live state data between your main app and widget extension, ensuring widgets correctly render shared data across home screen and Lock Screen contexts.

What causes heavy work in the widget placeholder to misbehave during rendering?

Heavy work in the placeholder method causes rendering constraints and widget misbehavior, so perform safety checks that avoid heavy work in placeholder generation and ensure proper rendering adaptations per widget family and mode.