iOS 10 SDKの新機能SiriKit、音声認識、iMessage拡張を自作アプリに生かすには:iOS 10アプリ開発入門(2/4 ページ)
iOS 10で開発者にAPIが解放されたと話題の音声アシスタント「Siri」。その実態はどんなものなのか。SiriKit、Speech/Messages Frameworkの使い方と併せて、簡単なアプリを作りながら解説します。
SiriKitの実装
実際にSiriKitを使ったアプリを作ってみます。
「Single View Application」で新規プロジェクトを作成
まずは新規プロジェクトを作成します。プロジェクトの種類は「Single View Application」を選択します。
Siriを使う準備
プロジェクトを作成したら、「+」ボタンでSiri用のTargetを追加します。
Targetの種類は「Intents Extension」を選びます。Target名は「SiriKitExtensionSample」にします。
最後にInfo.plistのBundle display nameに「サンプル」と入力します。こうすることで、SiriKitから「サンプル」というアプリ名で呼び出すことができます。
これでSiriを使う準備が完了しました。この状態でアプリを起動すればSiriからアプリを呼び出すことができます。
コールバックメソッド
次はメッセージ送信時に呼ばれるコールバックメソッドを見ていきます。
Siriからアプリを呼び出すときは「SiriKitExtensionSample」フォルダの中のIntentHandlerクラスが使われます。
今回のメッセージ送信の場合ですと、このクラスのINSendMessageIntentHandlingプロトコルの各メソッドが呼ばれます。具体的には、メッセージ本文入力時は「confirm:completion:」、送信時は「handle:completion:」が使われます。
class IntentHandler: INExtension, INSendMessageIntentHandling { func confirm(sendMessage intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) { // メッセージ本文入力時に呼ばれる } func handle(sendMessage intent: INSendMessageIntent, completion: @escaping (INSendMessageIntentResponse) -> Void) { // 送信ボタン押下時に呼ばれる } }
以上でSiriKitの実装は完了です。
メッセージ送信以外の機能を呼び出したい場合
もしメッセージ送信以外の機能を呼び出したい場合はSiriKitExtensionSampleフォルダのInfo.plistにキーを追加します。
追加できるものはINRequestPaymentIntentなど、前ページの表で挙げたものが対象です。追加後にIntentHandlerクラスを対応するプロトコルに準拠させればSiriからの呼び出しが可能になります。
SiriKitのサンプルのソースコード
今回作成したコードは、こちら「SiriKitSample.zip」からダウンロードできます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「iOS 10」の新機能/APIに関する開発者向けTips 100本、クラスメソッドのエンジニアが公開
クラスメソッドが、「iOS 10」に関する100本の技術情報を自社サイト「Developers.IO」で公開。FeliCaに対応した「Apple Pay」、プログラミング言語「Swift 3」、開発ツール「Xcode 8」に関する技術情報を集約している。 - 「iPhone 7」の新機能、エンジニアは“どこ”を評価した?
「fabcross for エンジニア」が、設計/開発系エンジニアに聞いたiPhone 7/iPhone 7 Plusに関する意識調査結果を発表。彼らがiPhone 7の新機能で特に評価した項目は……? - 2Dゲームを例にSwift 2からSwift 3への変更点と移行のポイントを見る
iPhoneゲームをSwift言語で作成してみたいという初心者向けにiOSのゲームフレームワークを使った作り方を一から解説する入門連載。今回は、これまでに作成したアプリのコードをSwift 3.0に対応することで、対応する際のポイントや3.0での変更点を解説します。併せて、Xcode 8のSwift 3.0自動変換ツールの使い方なども紹介します。