watchOS 2でTaptic Engineを使ってみた+WatchConnectivity

はじめに

Taptic Engineって慣れないうちは本当に誰かに触られたか、虫でも触れたのかと思って、通知が来た時に「うおっ」と言いながら、腕を払ったことがありますが、慣れてくると結構気持ちが良いバイブレーションですよね。

watchOS2では、Taptic Engineも実装側で利用できるようになったので、今回は好きなだけバイブレーションさせることができるサンプルアプリを作りました。

iPhone側からバイブレーションを指示

最初にこれを作ろうと思った時、watch本体にボタン付けて、タップしたらTaptic Engineが動くで良いかなと思ったのですが

いや待てよ、watchをタップした時にぶるっと来るのでは、ちゃんとバイブレーションを楽しめないじゃないか、ないわ。

と思ったので、iPhoneからの操作でTaptic Engineが利用できるようにします。

iPhoneからwatchに指示するために、WatchConnectivityを利用します。

※WatchConnectivityを使って、実機デバッグする時は値が送信されないバグがあるので、解決方法については下記を参考にして下さい。

WatchConnectivityを実機デバッグするとエラーになる件

iPhone側の実装

プロジェクトの作成は詳しくやりませんが、Xcode7から簡単になってます。

File→New→Project→watchOSのApplicationでiOS App with WatchKit Appを選び、後はiOSアプリ作るのとほぼ同じです。 特に考えずにポチポチやれば出来ます。

というわけで、プロジェクトは出来てる段階から解説します。

まず、Taptic Enginを使ったバイブレーションの種類は9つあるので、TableViewを使います。iOSアプリのstoryboardでtableviewを一つ配置し、Outletを引いて下さい。そしたらViewController.mを下記のように変更します。

実行すると下記の画面が表示されます。

UITableViewについては下記等ググれば一杯出てくるので参考にして下さい。

必要最小限の実装でテーブルを作成する

また、WatchConnectivityについては下記を参考にしました。

[watchOS 2][iOS 9] Watch Connectivity で情報をやりとりする様々な方法

WathKit App側の実装

Interface.storyboardにて下記のように、InterfaceControllerへLabelを一つ貼り付け、Outletを引きます。

次にInterfaceController.mを開いて、下記のように実装します。

ここまで実装したらインストールしましょう、これでアプリがiPhone、watchで起動している間、好きなだけTaptic Engineを使えます。

最後に

見て頂いたらわかると思いますが大したことしてません、Taptic Engineは一行書けば鳴らすことができます。

Taptic Engineが触れるようになったことで、より直感で操作できるアプリが作れますね。

●この記事を書いた人