visionos-widgetkit-developer
visionOS WidgetKit Developer
Quick Start
Treat visionOS widgets as spatial objects first, not as small 2D surfaces.
- Decide the platform and family scope first.
- Define both close and far layouts before polishing visuals.
- Treat timeline entries, shared storage, and App Intents as the integration boundary; do not depend on live host-app state.
- Load only the reference files that match the current problem.
Load References When
| Reference | When to Use |
|---|---|
widget-overview.md |
Overview, decision points, and a quick checklist for Vision Pro widgets. |
families-and-platforms.md |
When choosing native visionOS families, compatible iOS families, or extra-large widget support. |
mounting-styles.md |
When deciding elevated vs recessed support and avoiding layout breakage. |
textures-and-rendering.md |
When choosing glass vs paper, and ensuring legibility in different render modes. |
proximity-levelofdetail.md |
When implementing near/far layouts using LevelOfDetail. |
interactive-widgets.md |
When adding Button, Toggle, or AppIntent-driven interactions to a widget. |
debugging-and-updates.md |
When widgets don’t refresh, don’t appear, or appear stale or broken. |
widget-animation.md |
When animating widget content using timeline entries and Canvas crossfade, tuning frame rate, or hitting bundle or computation budget limits. |
Workflow
- Confirm the widget platform and family set.
- Choose mounting style, texture, and near/far layout strategy.
- Decide the data path: timeline-only, App Group/shared storage, background URL session, or WidgetKit push notification.
- Add interaction only if the widget still stays glanceable.
- Verify timelines, reloads, rendering modes, and extension logs after the structure is set.
Guardrails
- Always consider
.simplifiedfor distance readability. - Use native visionOS families intentionally; extra-large native visionOS
widgets use
.systemExtraLargePortrait, while compatible iOS/iPadOS widgets keep.systemExtraLarge. - Do not assume recessed mode works without explicit layout checks.
- Avoid dense, low-contrast layouts.
- Use
LinkorwidgetURL(_:)for open-app navigation; reserveButtonandTogglefor realAppIntentactions. - Keep widget configurations per
WidgetBundlewithin the practical limit.
Output Expectations
Provide:
- the widget platform and family scope
- which references were used
- the chosen presentation strategy
- the main rendering, interaction, or timeline constraint
- the next validation step
More from tomkrikorian/visionosagents
realitykit-visionos-developer
Build, debug, and optimize RealityKit scenes for visionOS 26, including entity/component setup, rendering, animation, physics, audio, input, attachments, and custom systems. Use when implementing RealityKit features or troubleshooting ECS behavior on visionOS.
62arkit-visionos-developer
Build and debug ARKit features for visionOS 26, including ARKitSession setup, authorization, data providers (world tracking, plane detection, scene reconstruction, hand tracking), anchor processing, and RealityKit integration. Use when implementing ARKit workflows on visionOS or troubleshooting provider-specific space, privacy, and lifecycle behavior.
55spatial-swiftui-developer
Design and implement visionOS 26 SwiftUI scenes that integrate RealityKit content. Use when building spatial UI with RealityView, Model3D, attachments, volumetric windows, ImmersiveSpace, or spatial gestures, or when choosing SwiftUI vs RealityKit APIs for 3D presentation.
47coding-standards-enforcer
Enforce repository coding standards for Swift 6.2 strict concurrency, actor isolation, @Observable models, SWIFT_APPROACHABLE_CONCURRENCY, @concurrent functions, and modern Swift APIs across visionOS app code. Use when reviewing, writing, or migrating Swift code in this plugin's scope.
44usd-editor
Guide for modifying USD ASCII (.usda) files, including prims, properties, composition arcs, variants, and transforms. Use when editing or reviewing .usda files by hand.
32shadergraph-editor
Author, load, and troubleshoot Reality Composer Pro Shader Graph materials for RealityKit on visionOS. Use when building Shader Graph materials, exposing promoted inputs for runtime control, or debugging exported USD and MaterialX interop.
27