33
Copyright © Up-frontier, Inc. All rights reserved. SiriKitでできること 1

SiriKit iOS10

  • Upload
    gaprot

  • View
    130

  • Download
    4

Embed Size (px)

Citation preview

Page 1: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

SiriKitでできること

1

Page 2: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

アジェンダ

• SiriKitの概要

• SiriKitの構成としくみ

• 実装してみる

2

Page 3: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

アジェンダ

• SiriKitの概要

• SiriKitの構成としくみ

• 実装してみる

3

Page 4: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

これまでのSiri

• デバイスごとに⼀⼈ずつSiriが内包されている

• Siriからアプリの操作が可能(Apple純正のみ) • 「タイマーで3分」→ 時計アプリ

• 「明⽇の天気」→ 天気アプリ

• サードパーティ製のアプリは、Siriとは連携不可

4

Page 5: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

これからのSiri

• サードパーティ製のアプリも、Siriと連携できるようになる

• Siriとアプリを連携させるためのものがSiriKit

• 本体アプリに対して、SiriKitのExtensionを追加するイメージ

5

Page 6: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

公式アプリは もともと連携できていた

これまでのSiri

6

Page 7: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

これからのSiri

7

公式アプリは もともと連携できていた

サードパーティ製のアプリと SiriをつなぐのがSiriKitの役割!

Page 8: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

SiriKitが解釈できるドメイン• VoIP Calling

• Messaging

• Payments

• Photos

• Workouts

• Ride Booking

8

• CarPlay

• Restaurant Reservations

Page 9: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

SiriKitが解釈できるドメイン• VoIP Calling

• Messaging

• Payments

• Photos

• Workouts

• Ride Booking

9

• CarPlay

• Restaurant Reservations

特定のベンダーのみに 解放されるらしい

(例) ⾃動⾞メーカーなど

Page 10: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

SiriKitが解釈できるドメイン• VoIP Calling

• Messaging

• Payments

• Photos

• Workouts

• Ride Booking

10

• CarPlay

• Restaurant Reservations

• メッセージの送信 • 〇〇さんに「おはよう」

• メッセージの検索 • ▲▲からのメッセージを検索

Page 11: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

思った以上に限定的

• 恩恵を受けることができるアプリ・サービスは、今の所はかなり限られている

• 以下のようなことはできない • カメラアプリで撮影

• オンデマンドアプリで動画を検索して再⽣

• 今後、利⽤可能な機能が増えることに期待

11

Page 12: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

アジェンダ

• SiriKitの概要

• SiriKitの構成としくみ

• 実装してみる

12

Page 13: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

SiriKitの構成

• SiriKitは、以下の2つのframeworkからなる

• Intents.framework

• IntentsUI.framework

• SiriKit.frameworkというものは存在しない

• ○○○Kitって⼀体…

13

Page 14: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

Intents.framework

• ユーザの⾳声⼊⼒を受け取る

• ⾳声を解析し、Intentを⽣成してアプリに渡す

• 実装は必須

14

Page 15: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

IntentsUI.framework

• SiriのUI上に表⽰するView関連のクラス

• カスタムUIを利⽤する場合に任意で実装する

• Apple「ちゃんと使うよね?」 チラッ

15

Page 16: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

メッセージアプリの使い⽅

• 必要なワードを含んだ⽂章で話しかけることで、メッセージ送信ができる

• メッセージの場合は「宛先」と「メッセージ」

16

• [アプリ名] で [宛先] に [メッセージ] と送って

• [メッセージ] を [宛先] に [アプリ名] で送って

Page 17: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

アジェンダ

• SiriKitの概要

• SiriKitの構成としくみ

• 実装してみる

17

Page 18: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

メッセージアプリ

• アプリを作る

• ターゲットの追加(Intent Extension)

• plistに必要事項を追記

• Extensionの実装

18

Page 19: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

メッセージアプリ

• アプリを作る

• ターゲットの追加(Intent Extension)

• plistに必要事項を追記

• Extensionの実装

19

Page 20: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

メッセージアプリ

• アプリを作る

• ターゲットの追加(Intent Extension)

• plistに必要事項を追記

• Extensionの実装

20

Page 21: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

ターゲットの追加

• Intent Extension のターゲットを追加する

• Intent UI を同時に追加することもできる

21

Page 22: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

ターゲットの追加

• Intent Extension のターゲットを追加する

• Intent UI を同時に追加することもできる

22

Page 23: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

メッセージアプリ

• アプリを作る

• ターゲットの追加(Intent Extension)

• plistに必要事項を追記

• Extensionの実装

23

Page 24: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

plistの説明<dict>

<key>NSExtensionAttributes</key> <dict>

<key>IntentsSupported</key> <array>

<string>INSendMessageIntent</string> </array> <key>IntentsRestrictedWhileLocked</key> <array>

<string>INSendMessageIntent</string> </array>

</dict> <key>NSExtensionPointIdentifier</key> <string>com.apple.intents-service</string> <key>NSExtensionPrincipalClass</key> <string>$(PRODUCT_MODULE_NAME).IntentHandler</string>

</dict>24

• サポートするIntentのタイプ • 今回はSendMessageIntent

Page 25: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

plistの説明<dict>

<key>NSExtensionAttributes</key> <dict>

<key>IntentsSupported</key> <array>

<string>INSendMessageIntent</string> </array> <key>IntentsRestrictedWhileLocked</key> <array>

<string>INSendMessageIntent</string> </array>

</dict> <key>NSExtensionPointIdentifier</key> <string>com.apple.intents-service</string> <key>NSExtensionPrincipalClass</key> <string>$(PRODUCT_MODULE_NAME).IntentHandler</string>

</dict>25

• プライバシーへの配慮 • デバイスロック中に利⽤させない

場合は、これを追記する

Page 26: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

plistの説明<dict>

<key>NSExtensionAttributes</key> <dict>

<key>IntentsSupported</key> <array>

<string>INSendMessageIntent</string> </array> <key>IntentsRestrictedWhileLocked</key> <array>

<string>INSendMessageIntent</string> </array>

</dict> <key>NSExtensionPointIdentifier</key> <string>com.apple.intents-service</string> <key>NSExtensionPrincipalClass</key> <string>$(PRODUCT_MODULE_NAME).IntentHandler</string>

</dict>26

Extensionを実装しているクラス

Page 27: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

メッセージアプリ

• アプリを作る

• ターゲットの追加(Intent Extension)

• plistに必要事項を追記

• Extensionの実装

27

Page 28: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

Extensionの実装

• Extensionの3ステップ

• Resolve

• Confirm

• Handle

28

Page 29: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

Extensionの実装

• Extensionの3ステップ

• Resolve

• Confirm

• Handle

29

• ⼊⼒パラメータの解決 • ⼊⼒値のバリデーション • ⾜りない場合はSiriが聞き返す

Page 30: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

Extensionの実装

• Extensionの3ステップ

• Resolve

• Confirm

• Handle

30

• 最終確認 • タスク実⾏に向けた最終確認 • ビジネスロジック的なチェックなど

Page 31: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

Extensionの実装

• Extensionの3ステップ

• Resolve

• Confirm

• Handle

31

• タスクの実⾏ • 実際の処理を⾏う • メッセージの送信、検索など

Page 32: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

tips

• 実機必須

• 恥ずかしがらずに堂々と

• Extension特有の「なぜか動かない」

32

Page 33: SiriKit iOS10

Copyright © Up-frontier, Inc. All rights reserved.

まとめ

• つかえるDomainは6種類

• ⾳声は、SiriがIntentに変換して渡してくれる

• Resolve, Confirm, Handle の順でタスク実⾏

33