[iOS SDK] WatchKitでできることできないこと 2015年3月

公開日: : 最終更新日:2015/04/05 Apple Watch, iPad, iPhone

PebbleAppInstruction2watch_hero_2x

Apple Watch発売日(2015年4月24日)までに自作アプリの WatchKit対応を完了させたい。稼働日カウントダウンで調べたところ残り26日しかないのでいまさらながらWatchKitの調査を行っている。

しかしPebble Smartwatch アプリを最初に作ったときも同じだったけれども、今時計側のアプリで何ができて、何ができないのかを把握するのに時間がかかってしまう。

公開されている情報に関しても、WatchKit は2014年9月に公開されて、その後2015年3月に更新されたので、どちらをベースに書かれた情報なのかを把握するのも難しい。

まずは今の自作 Pebble アプリでできていることが Apple Watch でもできるのかを調べていこうと考えている。

現状の Pebble アプリ EverLearn でできていること

  • iOSアプリから英単語とその意味をBluetooth経由で100個まで受けとって時計側のメモリに保存できる
  • iOSアプリからPebbleアプリを起動することができる
  • データ転送後は、iOSデバイスなしで Pebbleアプリを起動して普通に使うことができる
  • 時刻表示と単語を同じ画面に表示することで、時計として使うことができる
  • 1分ごとに自動で問題を切り替えることができる
  • 上と下のボタンで問題を切り替えることができる
  • 真ん中のボタンを押すことで単語とその意味の表示を切り替えることができる(暗記カード形式)
  • 加速度センサーでShakeを検知して次の単語を表示する(2015/04/05追加)

iOSアプリから英単語とその意味をBluetooth経由で100個まで受けとって時計側のメモリに保存できる

Apple Watch Programming Guide: WatchKit App Architecture
によると、データ共有にはNSUserDefaults か shared container directory を使うことができるようだ。

shared container directory を使うとファイル自体を共有することができるようだが、自分の用途なら NSUserDefaults で NSDictionary を共有すればすみそうに思える。

ただ、保存されるのはiOSデバイス側のメモリのようだ。このため、iOSデバイスなしでWatchKitアプリを単体起動してもデータが取得できないように思われる。

自分は職場ではiPhoneは机に置いたままにして移動することが良くあるのだが、その場合はWatchKitアプリは使えないことになってしまう。

iOSアプリからPebbleアプリを起動することができる

Pebbleではできているのだが、これはどうやらWatchKitでは今はできないようだ。

WatchKit – Apple Watch / Watch Kitで現時点できないことまとめ – Qiita

逆に、PebbleではPebbleアプリからiOSアプリを起動することができないのだが、それはある openParentApplication で 程度可能らしい。

+ (BOOL)openParentApplication:(NSDictionary *)userInfo
reply:(void (^)(NSDictionary *replyInfo,
NSError *error))reply

起動はかけられるが、Foreground にはもってこれないため、Background でできる処理があればそれを WatchKit に返してやることになる。

データ転送後は、iOSデバイスなしで Pebbleアプリを起動して普通に使うことができる

これもどうやらだめなようだ。

WatchKit FAQ – Ray Wenderlich

iOSデバイスなしでWatchKitアプリを起動することはできない、とどこかで見た気がする。

もちろん2015年3月時点での情報なので今後変わることはあるだろうし、是非変わってほしい。

時刻表示と単語を同じ画面に表示することで、時計として使うことができる

WKInterfaceDate Class Reference によると可能そうだ。

たしかに、時刻表示のために毎秒 iOSデバイスとの通信が発生してしまってはいけないだろう。

1分ごとに自動で問題を切り替えることができる

これは不明。WKInterfaceDate は時刻をラベルで表示するためのクラスのようなので、WatchKitで現在時刻を取得できるかがわかっていない。

しかし WKInterfaceTimer Class Reference によると NSTimer は利用できるようなので大体であればなんとかなるか。

上と下のボタンで問題を切り替えることができる

Apple Watch にはボタンは一つしかなく、Digital Crownもまだアプリから利用可能ではないようなので、問題切替にはなにかちがう方法を提供する必要がありそうだ。

WatchKit – Apple Watch / Watch Kitで現時点できないことまとめ – Qiita

普通に考えると上下のスワイプで切替か。と思ったが、ジェスチャーのハンドリングも自由にはできないようだ。

ios – Gesture recognition in Apple Watch (WatchKit) – Stack Overflow

スクロールできる画面にしておけば、ジェスチャーによるスクロールすることができる、という仕組みである模様。

真ん中のボタンを押すことで単語とその意味の表示を切り替えることができる(暗記カード形式)

Apple Watch のハードウェアボタンが押されたことをアプリから検知することができるのだろうか?

今のところ不明。

長押し(強押し?)でMenuが表示されるのはわかっているが、ちょっとまどろっこしい気がする。

左右スワイプで表示できるようにするのが現実的だろうか。

今後も適宜更新する予定。(2015/03/29 更新)

加速度センサーでShakeを検知して次の単語を表示する(2015/04/05追加)

残念ながら現在のSDKではセンサーデータを利用したり、センサーによるジェスチャーを取得したりすることはできないようだ。
ios – Handling Apple Watch sensors data in WatchKit app – Stack Overflow

しかしこの人はラボに行ったことを書き込んでいるが問題ないのだろうか。

追記 2015/04/05

Apple Watch の SimulatorではまだHomeスクリーンに戻ることができない watchkit – Apple Watch Main menu screen in the Emulator – Stack Overflow

Pebbleよりも Apple Watch の方が優れている点

Pebbleの方が優れていることを多く書いている気がするので、Apple Watchの方が優れていることも書いてみる。

  • 最初から日本語表示に対応している
  • 高解像度カラー液晶を採用している
  • タッチで操作できる
  • Digital Crownは便利そう

関連記事

“I think the stainless steel looks beautiful when it wears” from The Perfect Thing

傷が付きやすいと言われている iPhone 7 ジェットブラック。ケースを付けるか迷ったら、下記

記事を読む

EverLearn 1.9.0 に音声認識機能を追加しました

EverLearn 1.9.0 にて音声認識機能を追加しました。ホーム画面から、マイクボタンを押して

記事を読む

MacFan 2017年5月号でアプリ紹介されました

Mac Fan 2017年5月号 でおんぷちゃん for iPad を紹介していただきました。ありが

記事を読む

no image

[iPhone SDK] Log Locations 1.2 を Submit

かなり久しぶりに、自動で毎日移動した場所を記録する Log Locations をアップデートした。

記事を読む

[iOS SDK] No identities are available for signing 問題にはまる

久しぶりに Provisioning Profileではまった。 この問題にはまると、解決までにか

記事を読む

新アプリ「コードちゃん」を公開しました

速報:新 iPad 発表。Apple Pencil対応で3万7800円から - Engadget 日

記事を読む

no image

iPhoneアプリ おんぷちゃん開発日記 音楽理論学習本 Practical Theory Complete

おんぷちゃん開発のために多少の音楽理論が必要となり、良い本を探していたところ下記の本を発見しました。

記事を読む

[iPhone 6 Plus] カラビナ付きケースを買ってみた

iPhone5 はカラビナ付きケースに入れて腰に下げていたのだが、まだiPhone 6 Pl

記事を読む

[iOS SDK] UIAlertView が消えた後にキーボードが表示される

昔書いたコードで、UIAlertView に setAlertViewStyle で UIAlert

記事を読む

no image

詳解 Objective-C 2.0 改訂版 2010年12月17日発売

まだ書店で遭遇できてないけれども荻原さんの詳解 Objective-C 2.0の改訂版が発売されてい

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Rinker 導入でInternal Server Error発生

商品リンク管理プラグインRinker(リンカー)の公式サイト | お

新しいAirPodsを買ってみた

2019年3月20日に突如発表された、新しい AirPods を買っ

Apple Developer Program更新2019

今年も更新。税別 11800円だった。 2009年から

ボーカロイド技術論

よくこんなマニアックな本を出したものだし、よくここまで内情を書いたも

さくらVPSのPHPを5.3から7.2にアップデート

iPhoneから転送した写真をWordpressブログにアップロード

→もっと見る

PAGE TOP ↑