ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Bring your app to Siri (feat. WWDC 2024)
    iOS 2024. 10. 7. 18:45

    안녕하세요. 그린입니다 🍏

    이번 포스팅에서는 앱을 Siri로 가져오는 방법에 대해 WWDC 2024 세션을 한번 살펴보겠습니다 🙋🏻

     


    Bring your app to Siri


    Introduction

    앱을 시리와 통합해야하는 이유는 뭘까요?

    시리를 이용하면 사용자가 기기 어느 화면에서든 앱을 이용해 작업을 수행할 수 있어요.

    게다가, 신속하게 작업을 수행할 수 있죠.

     

    기존 프레임워크인 SiriKit과 앱 인텐트를 사용해 이를 수행할 수 있습니다.

     

     

    iOS 10부터 SiriKit이 도입되었습니다.

    개발자는 시스템이 제공하는 인덴트를 통해 사용자가 이미 이용하는 시리 기능을 앱에서도 사용할 수 있게 지원할 수 있어요.

    음악 재생이나 문자 메시지 보내기 같은 것들을요.

     

    이건 좀 더 뒤에서 한번 보도록 하죠!

     

     

    iOS 16에서는 앱 인텐트가 도입되었어요.

    해당 새로운 프레임워크는 앱을 시리, 단축어, 스포트라이트 등과 통합해줍니다.

    앱이 기존 SiriKit 도메인과 겹치지 않는다는 가정에서는 앱 인덴트가 적합한 프레임워크입니다.

     

    더 자세히 알아보려면, WWDC 2024의 Bring your app's core features to users with App Intents 세션을 참고하세요 😁

     

     

    Bring your app’s core features to users with App Intents - WWDC24 - Videos - Apple Developer

    Learn the principles of the App Intents framework, like intents, entities, and queries, and how you can harness them to expose your app's...

    developer.apple.com

     


    What's new with Siri

    올해 WWDC 2024에선 Apple Intelligence가 소개되면서 시리의 성능이 크게 향상되었어요.

     

     

    특히 사용자 경험이 극대화 되었습니다.

     

    세가지 주요 방식으로 시리를 더욱 발전시킵니다.

     

    1️⃣ 시리가 더욱 자연스러운 보이스를 가집니다.

    2️⃣ 더욱 맥락에 맞고 사용자에 맞춤화가 되었습니다.
    Apple Intelligence로 시리가 화면을 인식할 수 있어 사용자가 어떤걸 보는지 이해하고 그에 맞게 행동할 수 있습니다.

    3️⃣ 언어 이해도가 더욱 풍부해져 시리와의 대화가 훨씬 더 자연스럽습니다.

    특히 말을 더듬거나해도 시리가 잘 알아서 듣는다고해요.

     

    이미 SiriKit을 채택한 앱이라면 이런 개선 사항들이 자동으로 적용됩니다!

     

    여기서 그치지 않고 시리가 사용자를 대신해 앱에서 더 많은 것을 수행하도록 시리 환경을 재구상해 사용자가 기기에서 수행하는 작업을 더 많이 이해하도록 했습니다.

    이를 위해서 방대한 앱 세계를 Apple Intelligence에 연결하기 위한 수단으로 앱 인덴트 프레임워크에 집중 투자했다고 해요 😄

     

     

    앱 인텐트 도메인이라는 일련의 새로운 API를 도입했어요.

    도메인은 도서, 카메라, 스프레드시트와 같은 특정 종류의 기능을 위해 설계된 앱 인덴트 기반 API 모음입니다.

    현재는 메일과 사진만 사용할 수 있고 다른 기능들은 곧 차례로 선보일 예정이라고 해요.

    해당 기능들엔 학습된 다양하고 광범위한 새로운 액션들이 포함되어 있습니다.

    이 12개 도메인에서 올해안에 애플은 100개 이상의 다양한 동작을 지원하도록 하고 있습니다.

     

    앞으론 이제 앱에서 어떤 사진에 어떤 효과를 넣어줘~ 라고 시리를 통해 시킬 수 있다는 것이죠.

     


    Actions

    시리는 갈수록 더 많은 앱에서 더 많은 작업을 이해하고 수행할 수 있을거에요.

    Assitant Schema로 앱 인텐트 도메인에 대한 작업을 빌드하는 방법을 보겠습니다.

     

    Apple Intelligence는 앱 인텐트 도메인에서 시리에게 새로운 기능을 제공하는 기반 모델에 의해 구동됩니다.

    이런 모델은 특정 형태의 인텐트를 예상하도록 학습됩니다.

    이런 형태를 스키마라고 부릅니다 🙋🏻

    그리고 Assitant Schema를 API라고 부르죠.

     

    앱 인텐트를 올바른 형태로 구축하면 자연어의 복잡성 걱정 없이 학습의 혜택을 누릴 수 있죠.

    수행하는 메서드만 불러오고 나머진 알아서 처리하도록 맡기는것이죠.

     

     

    스키마는 각각 해당 인텐트를 사용하는 모든 사용자에게 공통으로 적용되는 일련의 입력과 출력을 정의합니다.

     

    Apple Intelligence를 통한 시리 요청의 라이프사이클을 살펴보며 Assitant Schema를 시연하는걸 보겠습니다.

     

     

    먼저, 모든건 사용자 요청에서부터 시작합니다.

    애플의 모델은 스키마를 추론하도록 학습되어 있어 사용자 요청에 따라 Apple Intelligence가 스키마를 예측할 수 있습니다.

    적절한 스키마가 선택되면 요청은 Toolbox로 라우팅되죠.

    Toolbox엔 기기의 모든 앱의 앱 인텐트 집합들이 스키마별로 그룹화되어 있습니다.

    인텐트를 스키마에 일치시켜 모델에 추론할 수 있는 기능을 부여해줘요.

    마지막으로, 앱 인텐트를 호출해 작업을 수행합니다.

    즉, 출력이 반환되죠.

     

    코드로 자세히 살펴볼까요?

     

     

    스키마를 따르기 위해서는 AppIntent 프레임워크를 채택하고 Swift 매크로인 @AssistantIntent를 추가하면 됩니다.

    매크로는 항상 앱 인텐트 도메인에 바인딩되는 스키마에 대한 인수를 받습니다.

    여기서는 photos가 도메인이고 createAlbum이 스키마죠.

    스키마의 형태는 컴파일 시 이미 알고 있기에 더 이상 앱 인텐트에 대한 추가 메타데이터를 제공할 필요가 없어요.

     

    즉, 코드를 아래처럼 더 줄일 수 있죠!

     

     

    필요한 경우에는 Assistant Intent를 확장할 수도 있습니다.

     

     

    앱 인텐트 프레임워크엔 동작을 빌드하기 위한 인텐트만 있는것은 아닙니다.

    앱의 개념을 모델링하기 위한 엔티티도 있죠.

    여기서는 AlbumEntity가 그 사용입니다.

     

     

    시리에 AppEntity를 노출하기 위한 새 매크로를 추가했어요.

    AssistantEntity 매크로죠.

    마찬가지로, 앱 엔티티를 더 간결하게 구현할 수 있죠.

     

     

    또한, Assistent Intent와 마찬가지로 필요한 경우 선택적으로 프로퍼티를 선언해 확장할 수도 있습니다.

     

    AlbumType은 열거 형태죠?

    마찬가지로, 엔티티와 인텐트만큼 쉽게 구현할 수 있어요.

     

     

    인텐트를 시리에 노출하고 앱을 Apple Intelligence와 통합하는 방법을 보겠습니다.

     

     

    이렇게 매크로 인수 입력을 실행하면, 코드 완성 제안으로 표시가 되죠.

    현재는 두개입니다. 추후 점차 애플에서 지원을 늘릴 예정이죠.

     

     

    이런식으로 원하는 도메인과 스키마를 선택하여 매크로를 적용시키면 됩니다.

    내부에 AssetEntity도 당연히 AssistantEntity 매크로를 적용해야하겠죠?

    엔티티를 스키마에 일치시킴으로 컴파일러는 추가 검사를 통해 내 엔티티의 형태를 확인할 수 있습니다.

     

    이렇게 Assitant Schema를 사용하면 기존 앱 인텐트에 대한 추가 빌드 시간의 유효성을 검사할 수 있어요.

    이 유효성 검사를 통해 스키마 구현이 모델이 학습된 형태와 일치하는지 확인할 수 있습니다.

    또한, 처음부터 구현한다면 Xcode 스니펫도 노출해주기에 편리합니다.

     

    이렇게 기능을 추가해놓으면 단축어나 숏컷에서 노출되고 바로 사용해볼 수 있습니다 😁

     


    Personal context

    Apple Intelligence를 통해 시리는 사용자의 개인적 맥락에 대해 더욱 풍부한 이해력을 가지게 됩니다.

    즉, 시리는 기기 전체에서 안전하고 개인적인 방식으로 사용 가능한 모든 정보를 검색하고 추론할 수 있어요.

     

    In-app Search를 볼까요?

    기존의 ShowInAppSearchResultsIntent를 기반으로 구축된 이 기능은 시스템이 앱의 검색 기능을 직접 활용할 수 있도록 합니다.

    시리는 사용자를 검색 결과로 바로 안내하죠.

    이 앱 인텐트를 사용하면 다른 이메일 앱에서 사용자가 뭘 찾아줘~ 하면 앱에서 결과를 볼 수 있죠.

     

    아래는 앱에서 검색 결과를 표시하는 앱 인텐트 입니다.

     

     

    앞서 계속 보았듯이 매크로를 적용하고 사전 정의된 형태를 활용할 수 있죠.

    간결한 앱 인텐트 구현이 가능하게요.

     

    기존 구현된 기능들도 모두 매크로를 활용해 형태를 맞추고 구현하면 단축어, 숏컷 등 기능을 충분히 사용할 수 있죠!

     

    마지막으로 Apple Intelligence 덕에 Siri는 이제 Semantic search을 수행할 수 있는 능력을 가졌습니다.

    예를들어, 반려동물을 검색하면 이제 고양이, 강아지뿐 아니라 뱀, 도마뱀, 새 등도 검색할 수 있는 능력을 가졌어요.

    시리가 LLM을 통해 어떤것인지 이해하는것이죠.

    또한, 추가 액션을 바로 수행할 수 있습니다.

    앱의 경우 앱 인텐트 프레임워크를 사용해 이러한 추가 컨텍스트를 제공하는 엔티티를 정의할 수 있습니다 😃

    IndexedEntity라는 새로운 API를 준수해 시리에게 앱의 컨텐츠를 검색할 수 있는 기능을 부여할 수 있어요.

    Semantic Index에서 정보를 사용할 수 있도록 할 수도 있죠.

     

    더 자세히 알아보기 위해선 WWDC 2024에서 소개된 What's new in App Intents 세션을 보면 좋습니다!

     

     

    What’s new in App Intents - WWDC24 - Videos - Apple Developer

    Learn about improvements and all-new features with App Intents, and discover how this framework can help you expose your app's...

    developer.apple.com

     


    레퍼런스

     

    앱을 Siri로 가져오기 - WWDC24 - 비디오 - Apple Developer

    앱 인텐트를 사용하여 앱의 기능을 Siri에 노출하는 방법을 알아보세요. 현재 사용할 수 있는 인텐트의 종류를 파악하고, 앱의 동작을 시스템에 통합하기 위한 맞춤형 인텐트를 생성하는 방법을

    developer.apple.com

    'iOS' 카테고리의 다른 글

    Genmoji (feat. WWDC 2024)  (4) 2024.10.04
    앱 아이콘 구성하기  (5) 2024.09.23
    Meet the Contact Access Button (feat. WWDC 2024)  (3) 2024.09.05
    Custom Font Dynamic Type  (6) 2024.09.02
    Get started with Dynamic Type (feat. WWDC 2024)  (11) 2024.08.26
Designed by Tistory.