Donate intents and expand your app's presence - WWDC21 - Videos - Apple Developer
Apple
# iOS system에 Intents 도네이션하기🎙 iOS가 오랫동안 발전하면서, 사람들이 자주 사용하는 앱과 운영체제는 더 긴밀해지고 있습니다. 앱과 시스템 사이의 이런 콜라보레이션은 intelligent 시스템 경험의 핵심으로, 사용자에게 슈퍼파워를 줄 수 있습니다. <Intents> * 3년 전, iOS12에서 Shortcuts이 생겼습니다. Shortcuts은 iOS 시스템 안에서 앱을 ‘액션’으로 사용할 수 있게 합니다. Shortcuts은 사람들이 앱의 기능을 iOS 운영체제 안에서 새로운 방식으로 사용할 수 있게 합니다. * Shortcuts을 구현하는 API는 NSUserActivity와 Intents, 두가지가 있습니다. NSUserActivity는 앱의 상태를 표현하는 간단한 방식으로, 애플의 또 다른 기능인 Spotlight와 Handoff에도 활용됩니다. * Intents는 앱이 실행할 수 있는 ‘액션’의 타입까지 표현하는 방식입니다. Siri는 개별 앱이 활용할 수 있는 다양한 종류의 built-in intents를 이미 제공합니다. 필요하다면, custom intents를 정의하고 사용할 수 도 있습니다. * Intent Donation은 사람이 앱에서 특정 행동을 했을 때 시스템에게 그 행동을 알려주는 것을 말합니다. 시스템은 이런 Donation 데이터를 저장해 두었다가, 필요한 순간에 시스템 전반에서 앱의 기능을 사용자에게 홍보합니다. intent를 donate한 앱은 Suggestions, Shortcuts, Focus, Smart Stack, Siri 같은 시스템 전반에서 나타납니다. <How the System Use Intent Donations> * iOS system은 머신러닝과 on-device intelligence를 이용해, 데이터에서 패턴을 찾습니다. 사용자의 과거 행동 패턴을 바탕으로 현재 컨텍스트에 가장 관련있는 intent를 예측합니다. on-device intelligence는 앱의 기능을 사용자에게 노출합니다. 모든 머시러닝과 on-device intelligence은 privacy-preserving 방식으로 가동되므로, 애플은 사용자를 구별할 수 있는 데이터를 수집하지 않습니다. * Donate된 Intent는 on-device intelligence에서도 사용되어, Siri Suggestions이 되는 모든 영역에 나타날 수 있습니다. 영역은 Lock screen, Spotlight search, Siri Suggestions widget이 있습니다. 이런 suggestion은 탭 한번으로 개별 앱의 핵심 기능을 사용할 수 있게 합니다. * 시스템은 내부적으로 사용자의 시간과 상황에 연관시켜 donations을 가지고 있습니다. 시스템은 parameter로 intent의 identity를 구별합니다. 실제로, 시스템은 한 사람의 기기에서 여러 앱의 donations을 받습니다. <Smart Stack> * iOS15의 새 기능으로, Smart Stack은 Widget Suggestions(위젯 제안)을 지원합니다. 유저가 Smart Stack에 추가하지 않았지만, intent donation을 바탕으로 적시에 필요한 위젯을 스택의 상단에 노출합니다. 이미 스택에 있는 위젯이라면, rotate시켜 상단에 노출합니다. Donated된 Intent는 위젯의 configuration intent와 동일해야 합니다. <Steps for Donating Intents> 1. Intent 타입을 결정합니다. a. Siri는 여러 built-in intents를 제공합니다. messaging, reservations, media 등이 있습니다. b. 커스텀 Intent가 필요하면, Shortcuts에서 도입된 Intent Definition file을 만듭니다. 2. Intent Definition File에서 의도에 맞게 Donation 옵션을 설정합니다. a. Intent is eligible for widgets로 위젯과 Smart Stack에서 intent donation을 사용할 수 있습니다. b. Intent is user-configurable in the Shortcuts app and Add to Siri" Shortcuts에서 intent donation을 사용할 수 있습니다. c. Intent is eligible for Siri Suggestions로 시스템 전반의 시리 추천에서 intent donation을 사용할 수 있습니다. 3. Intent에서 필요한 parameter를 정의합니다. a. parameter의 종류와 타입을 정의합니다. b. parameter의 옵션을 의도에 맞게 설정합니다. 4. Donation하고 싶은 순간에 코드에서 Intent Instance를 만들어 INInteraction에게 Donate합니다. <How to Structure Donations for success> * 사람들에게 보여질 모든 ‘액션’은 앱의 핵심 기능으로 동작하며 accelerative해야 합니다. 유저가 앱에서 이미 원하는 기능이어야 하며, ‘액션’은 기능을 빠르게 수행해주는 역할을 합니다. 다음으로 모든 ‘액션’은 repeatable해야 하고 사용자의 지속적인 흥미를 끌어야 합니다. 즉 ‘액션’은 사용자가 반복적으로 행하길 원하는 것이어야 합니다. 마지막으로 ‘액션’은 stateless하고 사용자가 원할 때 마다 실행이 가능해야 합니다. 다른 행동이나 상태에 종속되지 않기 때문에, 단독으로 실행되어야 합니다. * 앱과 더 이상 관련이 없어진 ‘액션’ donation은 삭제해야 합니다. API를 이용해 개별적으로 혹은 그룹별로 donations을 삭제할 수 있습니다. INInteraction identifier와 group identifier는 donated Intent를 구별해 주며, 삭제 시 활용할 수 있습니다.
2021년 11월 15일 오전 1:25