Swift/WWDC
[WWDC 20] Expand your SiriKit Media Intents to more platforms
내일은개발천재🎵
2022. 10. 13. 23:40
SiriKit Medea Platform
TVOS SiriKit Media Intents
- 기존 HomePod에서 사용되던 것이 Apple TV에서 사용되게 되었음.
- 다양한 자연어 쿼리를 추가할 수 있음
- iOS 적용 방식과 동일합니다.(WWDC 19, SiriKit Media Intents 확인)
SiriKit Media 앱에서 자연어 명령을 처리하는 방법
- Intent Handler
- SiriKit Media 요청을 처리하는 핵심 클래스
- resolveMediaItems 메서드를 구현해주어야한다.
- App에서 수신한 INPlayMediaIntent 개체를 평가하고 검색하여 구체적 미디어 항목으로 변환하는 곳이다.
- 이후 handler가 호출되어 앱이 동작해 재생을 시작할 수 있게 된다.
- tvOS의 차이점은 고객이 일반적으로 한 번에 하나의 응용 프로그램만 상호작용하기 때문에 foreground 앱 실행이 선호되는 상호작용일 가능성이 높다.
- iOS는 background 실행이 선호되는 상호작용일 가능성이 더 높다.
- handleInApp 대신 handle 함수에서 continuelInApp을 반환하여 제어한다.
플랫폼에서 siri에게 음악을 요청하는 더 쉬운 경험 제공 (대안)
- WWDC 19예제 ControlAudio 사용
- SiriKit Media Alternatives UI
- INMediaItemResolutionResult의 resolveMediaItem 메소드로 success()을 호출하고 있음
- → 해당 메서드는 단일 미디어 항목 확인 결과를 반환함
- successes와 resolvedMediaItems로 대체하면 됨.
- ⇒ 대안 탭이 생성된다.
SiriKit Media에 새로 도입된 성능 개선 사항
- In app Intent handling
- 모든 의도 처리 단계를 확장 프로그램이 아닌 앱으로 이동한다.→ 프로세스의 시작을 피할 수 있다. (앱을 launch하기만 하면 된다.)
- → 백그라운드 오디오 세션을 시작하기 위해 인텐트 확장이나 앱을 시작할 필요가 없다.
- 전체 앱을 시작하기 때문에 해결 단계에서 Siri의 응답시간이 길어질 수 있다.→ 시작 조건을 알고 있는 경우 (네트워크 요청 등) 확인을 시작하고 처리할 때 플레이어가 100% 초기화되도록 할 수 있다. (Intergrate Intents with yout app 프레젠테이션 참고)
- → Intent 확장이 빠른 실행에 최적화된 작고 가벼운 프로세스이기때문에 동일한 응답을 얻으려면, 전체 앱 실행 환경을 조정해야한다.
- 장단점을 잘 생각해서 선택하셈요