Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SWIFT
- MVVM
- RxCocoa
- 스위프트
- uitableview
- collectionview
- Clean Code
- swiftUI
- 애니메이션
- clean architecture
- rxswift
- HIG
- map
- Xcode
- 리펙토링
- 클린 코드
- combine
- 리팩토링
- Human interface guide
- Refactoring
- swift documentation
- ios
- Observable
- UITextView
- tableView
- uiscrollview
- UICollectionView
- Protocol
- 리펙터링
- ribs
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 1. WWDC2023 정리 - SharePlay 기능 (GroupActivities, Add SharePlay to your app) 본문
WWDC 정리/WWDC 2023 정리
[iOS - swift] 1. WWDC2023 정리 - SharePlay 기능 (GroupActivities, Add SharePlay to your app)
jake-kim 2023. 6. 7. 01:11SharePlay란?
- 하나의 "그룹"을 만들고 실시간으로 무엇을 하고 어떤 활동을 하고 있는지 공유를 하는 것 (FaceTime, EMssage, AirDrop으로 공유 가능)
- iOS 17부터 AirDrop을 통해 SharePlay제공이 가능 (장치를 하나로 묶으면 SharePlay가 시작)
- 공유할 사용자 이름이나 이메일이 필요 없이 에어드롭만 있으면 손쉽게 가능
- Group Activities에서 end-to-end 암호화 채널을 제공하여 Apple은 SharePlay를 통해 전송된 앱 데이터를 볼 수 없음
- SharePlay를 사용할 수 있게하는 GroupActivities를 통해 어떤 앱이든지 그룹을 활동에 통합하고 활동에 참여한 참가자 간에 신속한 데이터 전송이 가능
- SharePlay의 장점 중 하나는 앱이 이미 존재하는 그룹을 활용할 수 있음
* SharePlay는 iOS, iPadOS, macOS, tvOS에서 모두 사용 가능
SharePlay 사용 방법
- import GroupActivies
import GroupActivities
- struct형태에 GroupActivity 프로토콜을 준수하여 액티비티의 기능을 따르게 정의
참고) GroupActivity 프로토콜
@available(iOS 15, macOS 12, tvOS 15, *)
@available(watchOS, unavailable)
public protocol GroupActivity : Decodable, Encodable {
static var activityIdentifier: String { get }
var metadata: GroupActivityMetadata { get async }
}
- GroupActivity를 따르게 정의
import UIKit
import GroupActivities
struct OrderTogether: GroupActivity {
// 액티비티 id
static let activityIdentifier = "com.jake.ios.development"
let truckName: String
var metadata: GroupActivityMetadata {
var metadata = GroupActivityMetadata()
metadata.title = "Order Tacos Together"
metadata.subtitle = truckName
metadata.previewImage = UIImage(named: "ActivityImage")?.cgImage
metadata.type = GroupActivityMetadata.ActivityType.listenTogether
return metadata
}
}
- metadata는 AirDrop으로 그룹을 요청하면 아래와 같이 상대방에게 title, subtitle, image, type정보를 가지는 푸시 노티 형태로 전송됨
- metadata 적용 시 주의사항
- 메타데이터의 title은 앱 이름이 아니라 그룹이 시작한 활동 이름을 명시해야함
- subtitle에는 활동에 대한 더 자세한 정보를 제공
- previewImage는 앱의 아이콘이 아니라 그룹 활동에 어울리는 이미지를 넣어야함
SharePlay 구현 시 주의사항
- 사람들이 떨어져 있을 때와 가까이 있을 때 두 가지 유형의 SharePlay 경험을 모두 고려할 것
- 앱에서 Group Activities 활동을 쉽게 검색할 수 있도록 아래 SharePlay 버튼을 앱의 UI에서 직접 제공해야함
- metadata에는 상태 변경에 관한 내용도 담을 수 있는데, 여기서 다른 사람이 보았을때 상태 변경이 일어난 사람이 어떤 활동을 하고 있는지 알 수 있게끔 알도록 내용을 남길 것
- 모든 앱은 SharePlay를 사용할 수 있고 그렇다는 것은 모든 앱은 FaceTime, Messsages, AirDrop 그룹에 접근할수 있는 기회가 있음
* 참고
'WWDC 정리 > WWDC 2023 정리' 카테고리의 다른 글
Comments