shareplay-activities

Build shared real-time app experiences with GroupActivities and SharePlay across Apple platforms.

Updated May 6, 2026
One-click install
npx skills add https://github.com/Roy-wonji/claude-config --skill shareplay-activities-roy-wonji
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: shareplay-activities
Source: https://github.com/Roy-wonji/claude-config/tree/main/skills/swift-ios-skills/skills/shareplay-activities
Command: npx skills add https://github.com/Roy-wonji/claude-config --skill shareplay-activities-roy-wonji

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill solves the problem of building synchronized, real-time shared experiences across devices using Apple’s GroupActivities framework.

Core Features & Use Cases

  • GroupActivity definition & metadata: Create a GroupActivity with proper metadata so the system can advertise and launch it as a SharePlay-capable experience.
  • Session lifecycle management: Listen for sessions, join them after configuration, and handle .waiting, .joined, and .invalidated states safely.
  • State sync & media coordination: Use GroupSessionMessenger for app state messages (with reliable vs unreliable delivery) and AVPlaybackCoordinator for synchronized media play/pause/seek.
  • File transfer at scale: Use GroupSessionJournal for large data instead of messenger size-limited payloads.

Quick Start

Implement a GroupActivity (e.g., WatchTogetherActivity), observe WatchTogetherActivity.sessions() in a long-lived manager, configure GroupSessionMessenger/AVPlaybackCoordinator, then call session.join() after setup and cleanly leave() on dismissal.

Frequently Asked Questions about shareplay-activities

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

FAQPage Schema
How do I build synchronized media playback with SharePlay in SwiftUI?▼

Synchronized media playback with SharePlay is built by connecting AVPlaybackCoordinator to a GroupSession, which automatically syncs play, pause, and seek commands across participant devices.

What is the best way to transfer large files during a GroupActivities session?▼

Transferring large files during a GroupActivities session requires GroupSessionJournal, as GroupSessionMessenger payloads are size-limited and better suited for state messages.

Does SharePlay with GroupActivities work across iOS, macOS, tvOS, and visionOS?▼

GroupActivities and SharePlay support real-time synchronized app experiences across iOS, macOS, tvOS, and visionOS, provided the necessary entitlement and Info.plist setup are configured.

How do I handle SharePlay session lifecycle states like waiting and invalidated?▼

Handling SharePlay session lifecycle states involves observing sessions in a long-lived manager, configuring the session during the waiting state, joining it, and cleaning up when invalidated.

When should I use reliable versus unreliable message delivery in GroupSessionMessenger?▼

Reliable versus unreliable delivery modes in GroupSessionMessenger are chosen based on app state message requirements, using Codable message types to sync state efficiently across the GroupSession.