← ClaudeAtlas

widgetkitlisted

Implement, review, or improve widgets, Live Activities, and controls using WidgetKit and ActivityKit. Use when building home screen, Lock Screen, or StandBy widgets with timeline providers; when creating interactive widgets with Button/Toggle and AppIntent actions; when adding Live Activities with Dynamic Island layouts (compact, minimal, expanded); when building Control Center widgets with ControlWidgetButton/ControlWidgetToggle; when configuring widget families, refresh budgets, deep links, push-based reloads, or Liquid Glass rendering; or when setting up widget extensions, App Groups, and entitlements.
dpearson2699/swift-ios-skills · ★ 730 · Code & Development · score 80
Install: claude install-skill dpearson2699/swift-ios-skills
# WidgetKit and ActivityKit Build home screen widgets, Lock Screen widgets, Live Activities, Dynamic Island presentations, Control Center controls, and StandBy surfaces for iOS 26+. See [references/widgetkit-advanced.md](references/widgetkit-advanced.md) for timeline strategies, push-based updates, Xcode setup, and advanced patterns. ## Contents - [Workflow](#workflow) - [Widget Protocol and WidgetBundle](#widget-protocol-and-widgetbundle) - [Configuration Types](#configuration-types) - [TimelineProvider](#timelineprovider) - [AppIntentTimelineProvider](#appintenttimelineprovider) - [Widget Families](#widget-families) - [Interactive Widgets (iOS 17+)](#interactive-widgets-ios-17) - [Live Activities and Dynamic Island](#live-activities-and-dynamic-island) - [Control Center Widgets (iOS 18+)](#control-center-widgets-ios-18) - [Lock Screen Widgets](#lock-screen-widgets) - [StandBy Mode](#standby-mode) - [iOS 26 Additions](#ios-26-additions) - [Common Mistakes](#common-mistakes) - [Review Checklist](#review-checklist) - [References](#references) ## Workflow ### 1. Create a new widget 1. Add a Widget Extension target in Xcode (File > New > Target > Widget Extension). 2. Enable App Groups for shared data between the app and widget extension. 3. Define a `TimelineEntry` struct with a `date` property and display data. 4. Implement a `TimelineProvider` (static) or `AppIntentTimelineProvider` (configurable). 5. Build the widget view using SwiftUI, adapting layout per `WidgetFami