teunteun2
WWDC23 - Add SharePlay to your app 본문
https://developer.apple.com/videos/play/wwdc2023/10239/
해당 세션에서는 세가지 주제로 이루어져 있다
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~)
- FaceTime, 메세지, AirDrop까지 기존 그룹을 활용해서 활동을 공유할 수 있다.
- Facetime 통화에서 공유 버튼을 탭하면
SharePlay 및 협업 환경을 지원하는 앱을 보여주는 '메뉴 카드'가 표시되어 더욱 쉽게 사용할 수 있다. - people picker, notifications, state changes와 같은 SharePlay에 필요한 모든 그룹 관리 UI 요소를 제공
- 앱의 활동을 동기화하기 위해 지연 시간이 짧고 완전히 암호화된 실시간 데이터 채널을 얻을 수 있다.
이러한 모든 이점을 활용하기 위한 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를 사용해서 GroupSessionMessenger 방법을 알아보려면 WWDC21의 아래 세션을 참고하라네여
https://developer.apple.com/videos/play/wwdc2021/10187/
'iOS' 카테고리의 다른 글
[Combine] Receiving and Handling Events with Combine - developer 문서로 시작한 Combine 공부(2) (0) | 2023.06.23 |
---|---|
[Combine] 정의 및 구조 - developer 문서로 시작한 Combine 공부(1) (0) | 2023.06.22 |
[XCode] Hous-의 UIComponent SPM 모듈화 (1) - WWDC19 Creating Swift Packages (0) | 2023.05.20 |
[Swift] 고차함수 정리(1) - Map, FlatMap, CompactMap, Filter, ForEach (0) | 2023.04.23 |
[Xcode] SwiftGen 적용하기 (0) | 2022.09.07 |