[WatchKit] MMWormhole を使って iOS アプリから WatchKit アプリ にメッセージを送る

watchkit

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

WatchKit アプリを操作する

さて、今回は WatchKit アプリ開発に便利な OSS のご紹介です。WatchKit フレームワークには WatchKit アプリ側から iOS アプリ側にリクエストを送るための API が用意されていますが、その反対の iOS アプリ側から WatchKit アプリ側にリクエストを送るための API は用意されていません。これは、例えば iOS アプリの操作されたタイミングや非同期処理の結果のコールバックによって WatchKit アプリの処理を実行したい、などといった場合に必要です。

そんなときに役立つのが MMWormhole という OSS です。この OSS を使うと、Pub / Sub 的なイメージで、iOS アプリ側と WatchKit アプリ側との間で双方向にやり取りが簡単にできるようになります。

インストール

インストールは CocoaPods 経由で行いましょう。

pod 'MMWormhole'

使ってみる

それでは使ってみましょう。WatchKit アプリ側はこんな感じでサブスクライブします。

[self.wormhole listenForMessageWithIdentifier:@"button" 
  listener:^(id messageObject) {
    self.numberLabel.text = [messageObject[@"buttonNumber"] stringValue];
}];

続いて、iOS 側はこんな感じで実装します。

[self.wormhole passMessageObject:@{@"buttonNumber" : @(1)} identifier:@"button"];

これだけで、WatchKit アプリにメッセージを送るコトができます。Identifer 単位、または NSDictionary インスタンスにデータを入れれば、渡されたデータによって処理を分岐できます。

まとめ

簡単な形式で送れるので、気軽に導入できますね!ぜひ使ってみてください。

ということで久々のスマホからの投稿でした!