[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は便利そう
関連記事
-
[iOS SDK本] Beginning iOS 5 Games Development
久しぶりにApress本を購入。 Beginning iOS 5 Games Developmen
-
Miselu C.24 届いた
Bluetooth 鍵盤 Miselu C.24 が2015年3月にようやく届い
-
GTD用にOmniFocusを購入
半年くらいMacBookとiPhoneでOmniFocusを使っている。 なかなか良いので、紹介して
-
かなりスパルタンなピアノの調律アプリ
平均律を調べていて発見。 ピアノの調律ゲーム 〜平均律訓練アプリ〜 驚くほど難しい。自
-
[iOS SDK] EverLearn 3Dタッチ対応
iPhone 7 Plus を購入したので、まずは EverLearn から、3Dタッチの対応を行い
-
iOS 16 GM版アップデート
遅ればせながら iPhone 11 Pro Maxを iOS16 GM版にアップデートを行う。
-
[WatchKit] WKCompanionAppBundleIdentifier と WKAppBundleIdentifier を変更する
自作Apple Watch アプリのフォルダを丸ごとコピーして新しいアプリを作るときなどに、erro
-
[iOS SDK] QuickDialog を使ってみた
iOS オープンソースライブラリ徹底活用 菊田剛著 秀和システム | DevCafeJp で紹介さ
-
暗記サポートアプリ YUBImarker
暗記サポートアプリを探している。 YUBImaker はちょっと良さそうなんだけれども、なかなかiP
-
確かにきれいに貼れる パワーサポート アンチグレアフィルムセット for iPhone 4 PHK-02
会社の知り合いがiPhone 3GSに貼っていた保護シートがえらくきれいに貼れているのでメーカーを確