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.