Que fait activités-shareplay ?
Créez des expériences partagées en temps réel avec GroupActivities et SharePlay. Idéal pour implémenter la lecture multimédia partagée, les fonctionnalités collaboratives, la synchronisation d'état de jeu ou toute activité de groupe intégrée à FaceTime/iMessage sur iOS, macOS, tvOS ou visionOS.
Vue d'ensemble
Ce skill guide le développement d'activités de groupe interactives où plusieurs participants partagent une expérience en temps réel via FaceTime ou iMessage. Il couvre l'architecture, la synchronisation, la gestion des participants et les meilleures pratiques pour GroupActivities et SharePlay.
Plateformes prises en charge
- iOS (15.0+, avec GroupActivities)
- macOS (12.0+, avec GroupActivities)
- tvOS (15.0+, avec GroupActivities)
- visionOS (1.0+, avec GroupActivities)
Démarrage rapide
Prérequis
- Xcode 14 ou plus récent
- Compte développeur Apple actif pour les tests
- Simulateur ou appareil(s) physique(s) pour les tests (SharePlay nécessite plusieurs appareils)
Étapes de base
-
Créer une session GroupActivity : Utilisez
GroupActivitypour définir l'activité partagée.struct MonActivitéPartagée: GroupActivity { var metadata: GroupActivityMetadata { var metadata = GroupActivityMetadata() metadata.title = "Mon Activité Partagée" metadata.type = .generic return metadata } } -
Démarrer l'activité : Appelez
activate()sur une instance de votre activité.let activity = MonActivitéPartagée() let result = try await activity.activate() -
Synchroniser l'état : Utilisez
GroupStateObserverou unCKRecordpartagé via CloudKit.- Pour les données en temps réel, utilisez
GroupSessionMessenger(iOS 15+). - Pour les données persistantes, utilisez
CKRecordsynchronisé via CloudKit.
- Pour les données en temps réel, utilisez
-
Gérer les participants : Utilisez
GroupSessionpour suivre les participants et leurs états.for try await session in GroupSession.sessions(for: MonActivitéPartagée.self) { // Configurer la session session.join() // Utiliser messenger pour envoyer/recevoir des messages }
Fonctionnalités clés
- Lecture multimédia partagée : Synchronisez la lecture audio/vidéo entre participants en utilisant
AVPlayeretGroupActivity. - Collaboration en direct : Permettez l'édition partagée, les tableaux blancs ou les vues synchronisées.
- Jeux multijoueurs : Synchronisez l'état du jeu, les mouvements et les scores.
- Intégration FaceTime/iMessage : Démarrez automatiquement des sessions FaceTime ou envoyez des invitations via iMessage.
Exemple : Application de lecture partagée
import GroupActivities
import AVFoundation
struct SessionLecturePartagée: GroupActivity {
var url: URL?
var metadata: GroupActivityMetadata {
var metadata = GroupActivityMetadata()
metadata.title = "Regarder ensemble"
metadata.type = .watchTogether
return metadata
}
}
Pour plus d'exemples et de conseils avancés, consultez la documentation Apple officielle sur GroupActivities et SharePlay.