SharePlay Developer
Quick Start
- Decide whether this experience is launch-only co-location or shared state sync.
- Add the Group Activities capability and required entitlement before building SharePlay UI.
- Define one
GroupActivityper experience and keep the payload minimal andCodable. - Load the right reference only after you know the workflow.
- Configure
SystemCoordinatorbefore joining whenever spatial personas or immersive spaces are involved.
Load References When
| Reference | When to Use |
|-----------|-------------|
| activation-ui.md | When wiring the SharePlay entry point or start button flow. |
| activity-definition.md | When defining the GroupActivity payload, metadata, or transfer representation. |
| group-session-lifecycle.md | When joining, leaving, observing, or presenting a GroupSession. |
| messaging-journal.md | When using GroupSessionMessenger, GroupSessionJournal, or late-joiner sync. |
| spatial-coordination.md | When configuring SystemCoordinator, spatial templates, or group immersive-space behavior. |
| visionos-immersive-space.md | When implementing launch-only SharePlay for a visionOS immersive space. |
| groupactivities-patterns.md | When you need broader GroupActivities patterns or sample-backed examples. |
Workflow
- Define the activity and choose the activation surface.
- Observe and configure the session before joining.
- Add messaging or journal synchronization only if shared state is required.
- Configure spatial coordination when the experience shares an immersive space.
- Summarize the session lifecycle, sync model, and launch surface clearly.
When To Switch Skills
- Switch to
build-run-debugwhen the blocker is app launch, simulator state, or runtime debugging rather than SharePlay behavior. - Switch to
signing-entitlementswhen the issue is capabilities, entitlements, or privacy gating. - Switch to
telemetrywhen proof of event ordering or session state changes matters more than API design.
Guardrails
- Keep
GroupActivitydata small andCodable. - Store strong references to
GroupSession,GroupSessionMessenger, andGroupSessionJournal. - Configure
SystemCoordinatorbeforejoin()when using spatial coordination. - Do not treat
.immersiveEnvironmentBehavior(.coexist)as the coordination API. - Join only after the UI and local state are ready.
Output Expectations
Provide:
- the activity type and activation surface
- the chosen session and sync model
- which references were used
- the coordination model if immersive space is involved
- the next skill to use if the blocker is execution, signing, or testing