[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は便利そう

関連記事

Xcode 13.3 アップデート

iPhone 11 Pro Max の iOSを15.4に上げてしまったため、Xcode 13.2

記事を読む

Apple Developer Program 更新 2020

毎年行うが1年ごとなのでいつも前年の作業を忘れてしまう。 振り返ってみたところ2009年から

記事を読む

NSInternalInconsistencyException

久しぶりにiOS6以前のアプリをビルドしたら NSInternalInconsistencyExce

記事を読む

iPad Pro 2017 12.9inch購入

新型コロナウィルスの影響でリモートワークの機会が増えているため、リモートワークをサポートす

記事を読む

no image

[iPhone 開発関連本] SQLite入門 第2版 西沢直木

SQLite はそれなりにクセがあるらしく、今までに入手した知識とFMDBのソースコードだけ(FMD

記事を読む

[iOS SDK] iPhone 6 Plus を Xcode に追加する

なぜか毎回新規デバイス追加に少し手間取ってしまう。 今回は先日購入した iPhone 6 Plus

記事を読む

no image

iPhone開発本 iPhone Cool Projects

iPhone Games Projectsに続いて、iPhone Cool Projects も買っ

記事を読む

no image

[iPad開発本] Beginning iPad Development

まだ数が少ないiPad開発本がApressから出たみたい。(Beginning of iPad De

記事を読む

no image

最近読んだ本: iOS デバッグ&最適化技法 2011/06/26

発売されたことは知っていたが、とりあえず必要としてなかったのでずっと買わずにいた、iOSデバッグ&最

記事を読む

Roland 電子ドラム TD-4KP 落札

(2016年2月の記事)ドラム譜学習アプリを作るためには自分も叩けないと困るだろう、ということでMI

記事を読む

Message

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ember Mug 2のACアダプタをUSB Type-Cに変えてみた

冬になると活躍する Ember Mug 2 の充電器は付属のACアダ

Wi-Fi6Eルータ TP-Link AXE5400購入

Wi-Fi6E を試してみたくなり、TP-Link AXE5

児童手当 認定請求書申請 2024 「請求者が養育をする18歳に達する日以降の最初の3月31日までの子の数」とは?

2024年に受給していない人には手紙が届くらしい。 電子申請も

Vision Proアプリ開発本 8/24、8/26に発売

Vision Proアプリ開発入門 P400が 8/24 に発売、V

Developer Strap が日本でも購入可能に

USアカウントでしか購入できなかった Vision Pro 用 De

→もっと見る

PAGE TOP ↑