What problem does it solve?
It helps developers build and coordinate real-time shared experiences between participants over FaceTime or iMessage.
Core Features & Use Cases
- GroupActivity + session setup: Define a
GroupActivity, request activation eligibility, and manage GroupSession lifecycle.
- Synchronized communication: Send and receive
Codable messages using GroupSessionMessenger, choosing reliable delivery for state changes and unreliable delivery for high-frequency updates.
- Shared media control: Coordinate playback using
AVPlaybackCoordinator so play/pause/seek actions stay in sync automatically.
- Large data transfer: Use
GroupSessionJournal for file/image transfers that exceed messenger message-size limits.
- Use case: Implement a “Watch Together” experience where participants start the same media and collaboratively stay aligned without manual polling or bespoke networking.
Quick Start
Add the Group Activities entitlement, define a GroupActivity with metadata, observe Activity.sessions(), create a GroupSessionMessenger, call session.join(), and wire synchronized playback via AVPlaybackCoordinator.