[iOS SDK] WatchKitでできることできないこと 2015年3月
公開日:
:
最終更新日:2015/04/05
Apple Watch, iPad, iPhone Apple Watch
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アプリを起動して普通に使うことができる
これもどうやらだめなようだ。
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は便利そう
関連記事
-
-
最近読んだ本: これでiPhoneアプリが1000万本売れた 南雲 玲生著
周りでおもしろいと言っている人がいたので買ってみた。2011/05/21発売。 株式会社ユードーの南
-
-
iPhoneアプリ おんぷちゃん開発日記 ボタン表示の複数言語対応
そろそろiPhone OS 4 beta 3の開発環境に移行しようと思っているのだが、環境を移行して
-
-
FlashAir W-03活用開始
ようやく休みになったので、FlashAir W-03を活用してみることにした。まずは、iOSから使え
-
-
iPhoneアプリUI研究本 iPhone User Interface Design Projects
それほど期待せずに買ったのだが、これは面白かった。 和書だと、iPhoneアプリ成功の法則に近いが、
-
-
アプリアップデート数はApp Store Connectアプリで確認できる
自作アプリのアップデート数をSafari のApp Store Connectで確認しよう
-
-
Pebble x テニスセンサーSSE-TN1
2014年のはじめにテニスセンサーの記事を書いたが、当時はまだセンサー対応ラケットが少なく、最近よう
-
-
おんぷちゃん 1.9.0 MIDI対応
おんぷちゃん 1.9.0 で MIDI キーボードに対応しました。(まだ App Store にてレ
-
-
iPad用ケース TUNESHELL for iPad
iPadは使ってないとき机の上に置くと意外に場所を取る。どう置くかは工夫のしどころだと思われる。 ま
-
-
iPhone Developer Program Activation できず
昨日の朝iPhone Developer Program に加入したはずなのだが、夜になってもまだA
-
-
iPhone アプリアイコン設定
AppStore でアプリを売る一連の流れを知るために作っているアプリが大体できてきたので、ついにア