検索
特集

iOS 10 SDKの新機能SiriKit、音声認識、iMessage拡張を自作アプリに生かすにはiOS 10アプリ開発入門(4/4 ページ)

iOS 10で開発者にAPIが解放されたと話題の音声アシスタント「Siri」。その実態はどんなものなのか。SiriKit、Speech/Messages Frameworkの使い方と併せて、簡単なアプリを作りながら解説します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

iMessage拡張の概要

 最後に「iMessage拡張」を紹介します。メッセージ拡張とは、iOSの標準アプリ「メッセージ(iMessage)」の機能を拡張するアプリ「iMessage App」を実装できる機能のことです。

 「メッセージ」アプリに標準で入っている拡張アプリとして、下のような画像検索アプリがあります。このアプリでは選択した画像を相手に送ることができます。

iMessage拡張の実装

 実際にiMessage拡張を実装していきます。今回はあらかじめ用意した画像を送信するアプリを作ってみます。

「iMessage Application」で新規プロジェクトを作成

 まずはプロジェクトを作成します。プロジェクトの種類はiMessage Applicationを選択してください。

 プロジェクト作成すると、以下のようなフォルダ構成になっています。この中のMessagesExtensionフォルダのMessagesViewController.swiftとMainInterface.storyboardを中心に修正していきます。

 この状態でアプリを立ち上げると画面上にHelloWorldだけ表示されます。HelloWorldのラベルはMainInterface.storyboardに配置されたUILabelのものです。

ソースコードの変更

 それでは相手に画像を送る機能を実装していきます。まずは、こちら「image.png」の画像をMessagesExtensionフォルダのAssets.xcassetsに追加します。

 次にMessagesViewControllerを以下のように変更します。MSMessageというのが送信するメッセージ内容で、これをactiveConversation.insertに渡すことでメッセージを送っています。

import UIKit
import Messages
 
class MessagesViewController: MSMessagesAppViewController {
    @IBAction func tapSendBtn(_ sender: AnyObject) {
        let layout = MSMessageTemplateLayout()
        layout.image = UIImage(named: "image")
 
        let message = MSMessage(session: MSSession())
        message.layout = layout
        activeConversation?.insert(message, completionHandler: nil)
    }
}

 最後にStoryboardを修正します。Storyboard上にボタンを配置して、押下時にMessagesViewControllerのtapSendBtnが呼び出されるようにします。

 以上で実装は完了です。

動作確認と音声認識を使うサンプルのソースコード

 アプリを起動するとStoryboardに追加されたボタンが表示される画面になっていると思います。

 このボタンを押すと画像送信の確認画面に移動します。ここでユーザーが送信ボタンを押せば送信完了となります。

 今回作成したコードは、こちら「MessageSample.zip」からダウンロードできます。

アップルの公式サンプルも併せて

 本稿ではiOS 10の新機能について書いてきましたがいかがでしたでしょうか。今回は簡単な機能しか紹介できませんでしたが、各機能の概要をつんでいただけたら幸いです。

 各機能についてはアップルの公式サンプルもあるので、よろしければ併せてご覧ください。

筆者紹介

杉本裕樹

田町のベンチャーで働くエンジニア。

仕事ではiPhoneアプリの開発やRailsを使ったWebサービス開発を行っている。最近のマイブームはUnityを使った3Dゲーム開発。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る