← ClaudeAtlas

shareplay-activitieslisted

Build shared real-time experiences using GroupActivities and SharePlay. Use when implementing shared media playback, collaborative app features, synchronized game state, or any FaceTime/iMessage-integrated group activity on iOS, macOS, tvOS, or visionOS.
dpearson2699/swift-ios-skills · ★ 730 · AI & Automation · score 80
Install: claude install-skill dpearson2699/swift-ios-skills
# GroupActivities / SharePlay Build shared real-time experiences using the GroupActivities framework. SharePlay connects people over FaceTime or iMessage, synchronizing media playback, app state, or custom data. Targets Swift 6.3 / iOS 26+. ## Contents - [Setup](#setup) - [Defining a GroupActivity](#defining-a-groupactivity) - [Session Lifecycle](#session-lifecycle) - [Sending and Receiving Messages](#sending-and-receiving-messages) - [Coordinated Media Playback](#coordinated-media-playback) - [Starting SharePlay from Your App](#starting-shareplay-from-your-app) - [GroupSessionJournal: File Transfer](#groupsessionjournal-file-transfer) - [Common Mistakes](#common-mistakes) - [Review Checklist](#review-checklist) - [References](#references) ## Setup ### Entitlements Add the Group Activities entitlement to your app: ```xml <key>com.apple.developer.group-session</key> <true/> ``` ### Info.plist For apps that start SharePlay without a FaceTime call (iOS 17+), add: ```xml <key>NSSupportsGroupActivities</key> <true/> ``` ### Checking Eligibility ```swift import GroupActivities let observer = GroupStateObserver() // Check if a FaceTime call or iMessage group is active if observer.isEligibleForGroupSession { showSharePlayButton() } ``` Observe changes reactively: ```swift for await isEligible in observer.$isEligibleForGroupSession.values { showSharePlayButton(isEligible) } ``` ## Defining a GroupActivity Conform to `GroupActivity` and provide metadata: ```s