[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アプリの無料版の提供に関してのブログが上がって、考えさせられている。 fla
-
-
ドラムアプリ「ドラムちゃん」用に電子ドラムiWordを買ってみた
自作ドラム学習アプリ「ドラムちゃん」には以前からMIDIドラムを接続することができたが、これまでな
-
-
これは楽しそう。ズボンでドラム演奏 DRUMPANTS
こんな楽しげなデバイスが2014年にKickstarterにでていたらしい。 新しい楽器?ドラムを
-
-
iPhoneゲーム開発ワークショップ 翔泳社 PJ Cabrera
以前紹介した、iPhone Games Projects の翻訳本「iPhoneゲーム開発ワークショ
-
-
開発用iPad比較検討2016
手持ちのiPad2およびiPad mini 初代がiOS10のサポート対象から外れてしまったので、i
-
-
Jony Ive: The Genius Behind Apple’s Greatest Products
Jony Ive: The Genius Behind Apple's Greatest Produ
-
-
インド式計算マスター
最近朝起きたらやっているアプリ。 これはいい。今まで全く知らなかったインド式計算がいつの日かマスター
-
-
iOS9からGKSession over Bluetoothが無効に
ユーザの方からおんぷ先生アプリが接続できないという報告があり調べていたところ、iOS9からGameK
-
-
Apple に Bug Report を送信、iOS 11.3で修正された
EverLearnのユーザの方から、toothache の発音がおかしいので直してほしいという依頼が
-
-
久々に Reject をくらった話
稼働日カウントダウンという昔作ったアプリにAppStoreのレビューのコメントでリクエストがあった。

