<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "GroupActivities",
  "identifier" : "/documentation/GroupActivities",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "Group Activities"
    ],
    "preciseIdentifier" : "GroupActivities"
  },
  "title" : "Group Activities"
}
-->

# Group Activities

Create app-specific activities your users can share and experience together.

## Overview

With the Group Activities framework, you can provide your app’s content
in SharePlay experiences, which create a sense of connection and immediacy
for your users. For example, a video-streaming app might offer the ability
to attend movie-watching parties in which participants watch simultaneously
from their personal devices. The app handles the playback on each device,
but the Group Activities framework synchronizes that playback and facilitates
communication between the devices.

This framework leverages the FaceTime infrastructure to
synchronize your app’s activities and to invite other participants to
join those activities. When your app’s UI contains shareable activities,
adopt the [`GroupActivity`](/documentation/GroupActivities/GroupActivity) protocol in the objects you use to represent
those activities. When a group activity begins, use the [`GroupSession`](/documentation/GroupActivities/GroupSession) object
to synchronize your app’s behavior with other participating devices.

> Note: The Group Activities framework uses end-to-end encryption on all
> session data that the ``doc://com.apple.GroupActivities/documentation/GroupActivities/GroupSession`` object synchronizes between devices.
> Apple doesn’t have the keys to decrypt this data. Your use of the Group Activities
> framework doesn’t provide Apple with visibility into the content your app
> shares, or information related to playback of media content in your app,
> such as where in the content a user starts, pauses, or skips a session.
> Apple servers facilitating Group Activities sessions don’t know the identity
> of your app. Occasionally, Apple may ask a small number of users to help
> troubleshoot issues, such as by [capturing a sysdiagnose or installing a debugging profile](https://developer.apple.com/bug-reporting/profiles-and-logs/),
> which may incidentally result in Apple collecting some information related
> to content shared in your app.

## Topics

### Essentials

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.group-session>

### Activity definition

[Defining your app’s SharePlay activities](/documentation/GroupActivities/defining-your-apps-shareplay-activities)

Configure your app’s SharePlay support and define the
activities that people can perform from your app.

  <doc://com.apple.documentation/documentation/AVFoundation/supporting-coordinated-media-playback>

[`GroupActivity`](/documentation/GroupActivities/GroupActivity)

A type that can advertise your app’s activities to other participants.

[`GroupActivityMetadata`](/documentation/GroupActivities/GroupActivityMetadata)

Text and image content that describes an activity to potential participants.

[`GroupActivityActivationResult`](/documentation/GroupActivities/GroupActivityActivationResult)

The result of preparing to start a custom activity.

[`GroupActivityTransferRepresentation`](/documentation/GroupActivities/GroupActivityTransferRepresentation)

A type that lets you start a group activity from a known context.

### Interface presentation

[Presenting SharePlay activities from your app’s UI](/documentation/GroupActivities/promoting-shareplay-activities-from-your-apps-ui)

Make it easy for people to start activities from your app’s UI, from
the system share sheet, or using AirPlay over AirDrop.

[`GroupActivitySharingController`](/documentation/GroupActivities/GroupActivitySharingController-4gtfk)

A macOS view controller that displays the system interface for starting an
activity, and optionally starts a FaceTime call for that activity.

[`GroupActivitySharingController`](/documentation/GroupActivities/GroupActivitySharingController-ybcy)

An iOS view controller that displays the system interface for starting an
activity, and optionally starts a FaceTime call for that activity.

### Session management

[Joining and managing a shared activity](/documentation/GroupActivities/joining-and-managing-a-shared-activity)

Configure the session when a SharePlay activity starts, and handle events
that occur during the lifetime of the activity.

[Drawing content in a group session](/documentation/GroupActivities/drawing-content-in-a-group-session)

Invite your friends to draw on a shared canvas while on a FaceTime call.

[`GroupSession`](/documentation/GroupActivities/GroupSession)

A session for an in-progress activity that synchronizes content among participant devices.

[`CustomMessageIdentifiable`](/documentation/GroupActivities/CustomMessageIdentifiable)

A type that assigns a custom ID string to messages you send to other devices.

[`Participant`](/documentation/GroupActivities/Participant)

An active participant in a group session.

### Spatial activities

[Configure your visionOS app for sharing with people nearby](/documentation/GroupActivities/configure-your-app-for-sharing-with-people-nearby)

Create shared experiences for people wearing Vision Pro in the same room and those on FaceTime.

[Adding spatial Persona support to an activity](/documentation/GroupActivities/adding-spatial-persona-support-to-an-activity)

Update your SharePlay activities to support spatial Personas and
the shared context when running in visionOS.

  <doc://com.apple.documentation/documentation/visionOS/implementing-shareplay-for-immersive-spaces-in-visionos>

[`SystemCoordinator`](/documentation/GroupActivities/SystemCoordinator)

A type you use to coordinate your interface’s behavior when an
active SharePlay session supports spatial placement of content.

[`SystemCoordinator.ParticipantState`](/documentation/GroupActivities/SystemCoordinator/ParticipantState)

A structure that tells you whether a participant supports
a shared simulation space for the current activity.

  <doc://com.apple.documentation/documentation/SwiftUI/View/groupActivityAssociation(_:)>

[`GroupActivityAssociationInteraction`](/documentation/GroupActivities/GroupActivityAssociationInteraction)

An interaction configures a view’s association with the current SharePlay
group activity.

[`GroupActivityAssociationKind`](/documentation/GroupActivities/GroupActivityAssociationKind)

An association a user-interface element can have with a SharePlay group activity.

### Custom spatial templates

[Building a guessing game for visionOS](/documentation/GroupActivities/building-a-guessing-game-for-visionos)

Create a team-based guessing game for visionOS using Group Activities.

[`SpatialTemplate`](/documentation/GroupActivities/SpatialTemplate)

An interface you use to create custom arrangements of spatial Personas
in a scene.

[`SpatialTemplatePreference`](/documentation/GroupActivities/SpatialTemplatePreference)

A structure that specifies the preferred arrangement
of participant spatial Personas in a shared simulation space.

[`SpatialTemplateSeatElement`](/documentation/GroupActivities/SpatialTemplateSeatElement)

A spatial template element that represents a seat for a participant
in the activity.

[`SpatialTemplateElement`](/documentation/GroupActivities/SpatialTemplateElement)

An interface that defines an element in your spatial template.

[`SpatialTemplateElementPosition`](/documentation/GroupActivities/SpatialTemplateElementPosition)

A type that defines the position of an element in a spatial template.

[`SpatialTemplateElementDirection`](/documentation/GroupActivities/SpatialTemplateElementDirection)

The initial direction a participant faces when an activity starts.

[`SpatialTemplateRole`](/documentation/GroupActivities/SpatialTemplateRole)

An interface for defining roles that you assign to the
participants of a group activity.

### File and data transfer

[Creating a collaborative photo gallery with SharePlay](/documentation/GroupActivities/creating-a-collaborative-photo-gallery-with-shareplay)

Build a shared photo gallery by using SharePlay to synchronize images among participants.

[Synchronizing data during a SharePlay activity](/documentation/GroupActivities/synchronizing-data-during-a-shareplay-activity)

Send custom messages and data between devices to synchronize content for
your activity, and incorporate messages your app receives from other
participants.

[`GroupSessionMessenger`](/documentation/GroupActivities/GroupSessionMessenger)

An object that transfers app-specific data between the devices joined in a group session.

[`GroupSessionJournal`](/documentation/GroupActivities/GroupSessionJournal)

An object that manages file and data transfers between participants
joined in a group session.

### System status

[`GroupStateObserver`](/documentation/GroupActivities/GroupStateObserver)

An object that contains information about the system’s ability to start SharePlay experiences.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)