Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

teunteun2

WWDC23 - Add SharePlay to your app 본문

iOS

WWDC23 - Add SharePlay to your app

teunteun2 2023. 6. 7. 22:24

https://developer.apple.com/videos/play/wwdc2023/10239/

 

Add SharePlay to your app - WWDC23 - Videos - Apple Developer

Discover how your app can take advantage of SharePlay to turn any activity into a shareable experience with friends! We'll share the...

developer.apple.com

해당 세션에서는 세가지 주제로 이루어져 있다

 

1. SharePlay 에 제공되는 몇 가지 새로운 기술 및 기능
2. 앱에 SharePlay를 채택할 때의 이점
3. SharePlay를 최대한 활용하기 위한 모범 사례에 대한 조언

 

3은 생략하고 1,2 와 간단하게 GroupActivity 프로토콜을 채택하는 코드를 설명한 부분만 정리해보았다.

 

 

SharePlay에 새롭게 제공되는 기술 및 기능

기술 : iOS17에서 AirDrop을 통한 SharePlay가 제공된다.
기능 : GroupAcitivity 유형을 정의할 때 메타데이터를 제공해서 활동을 가장 잘 나타내는 방법을 시스템에 알린다.
(기존에는 watchTogether, listenTogether 둘만 있던걸로 아는데,
17 부터는 운동, 쇼핑, 읽기, 학습 및 함께 만들기와 같은 몇 가지 유형이 추가되었다.)

또 apple developer 홈페이지에서의 SharePlay 를 살펴보면, What's new 부분에 이렇게 설명되어 있다.

 

'SharePlay를 사용하면 FaceTime 및 Messages를 통해 연결하면서 풍부한 실시간 경험을 공유할 수 있습니다.

iOS 17의 AirDrop을 사용하면 추가적인 채택 없이도 SharePlay를 지원하는 모든 앱과 공유 활동을 즉시 시작할 수 있습니다.

FaceTime 및 SharePlay UI의 새로운 공유 메뉴를 통해 iOS 및 iPadOS에서 SharePlay 앱을 더욱 쉽게 검색할 수 있습니다.

또한 SharePlay를 지원하는 앱은 이제 대용량 파일을 세션의 모든 사용자에게 신속하게 전송할 수 있습니다.'

 

 

 

앱에 SharePlay 기능을 추가했을 때의 이점 (iOS17~)

  1. FaceTime, 메세지, AirDrop까지 기존 그룹을 활용해서 활동을 공유할 수 있다.
  2. Facetime 통화에서 공유 버튼을 탭하면
    SharePlay 및 협업 환경을 지원하는 앱을 보여주는 '메뉴 카드'가 표시되어 더욱 쉽게 사용할 수 있다.
  3. people picker, notifications, state changes와 같은 SharePlay에 필요한 모든 그룹 관리 UI 요소를 제공
  4. 앱의 활동을 동기화하기 위해 지연 시간이 짧고 완전히 암호화된 실시간 데이터 채널을 얻을 수 있다.

이러한 모든 이점을 활용하기 위한 SharePlay 채택에 대해 살펴보자

 

 

SharePlay를 구현하기 위해선

우선 GroupActivities 프레임워크를 가져오고
GroupActivity 프로토콜을 따르는 Activity를 만들어야 한다.

struct OrderTogether: GroupActivity {

    // Define a unique activity identifier for system to reference
    static var activityIdentifier: String = "com.example.apple-samplecode.TacoTruck.OrderTogether"

    // App-specific data so your app can launch the activity on others' devices
    let orderUUID: UUID
    let truckName: String

    var metadata: GroupActivityMetadata {
        var metadata = GroupActivityMetadata()
        // 앱 이름이 아닌 Activity 이름
        metadata.title = "Order Tacos Together"
        metadata.subtitle = truckName
        metadata.previewImage = UIImage(named: "ActivityImage")?.cgImage
        metadata.type = .listenTogether
        return metadata
    }
}

 

GroupActivity 프로토콜을 살펴보면

Activity의 고유한 식별자로 사용될 activityIdentifier를 정의해주어야 하며,

제목, 미리보기 이미지 및 사용자에게 표시되는 Activity의 metadata를 지정해야 한다.

(이 때 앱에는 여러 활동이 있을 수 있으므로, 제목과 아이콘이 일반적이지 않은지 확인해야 한다고 함,

모든 활동에 동일하게 사용되는 메타데이터인듯)

 

메타데이터는 활동의 제목, 부제목, 이미지, 타입을 설정한다.

(여기서 타입이 이번 업데이트에서 여러개 추가된 것 같다)

 

 

 

 

 

앱에 대한 SharePlay 시작, 참여 및 종료 를 구현하려면 developer 페이지의 SharePlay 설명서를 참고하고

https://developer.apple.com/shareplay/

 

SharePlay - Apple Developer

Bring users together in an entirely new way by integrating your apps into FaceTime using SharePlay and the Group Activities API.

developer.apple.com

SharePlay를 사용해서 GroupSessionMessenger 방법을 알아보려면 WWDC21의 아래 세션을 참고하라네여

https://developer.apple.com/videos/play/wwdc2021/10187/

 

Build custom experiences with Group Activities - WWDC21 - Videos - Apple Developer

Go beyond basic streaming and interaction and discover how you can build advanced SharePlay experiences using the full power of the Group...

developer.apple.com