Garmin Connect IQでウォッチフェイスを変更する

GarminのConnect IQという存在については自転車用のサイコンで既に知っていた。

自分の認識としては、「一般開発者にSDKを提供していて、Monkey CというJavaに似た言語で個人個人が開発、Garminのサイトで公開できる」というもの。

が、サイコンでは必要な情報はデフォルトの機能で設定すれば十分だったので、これまで使う必要性も感じておらず、使う機会もなかった。

一方で、Connect IQによるカスタマイズは自転車用サイコンよりも腕時計型デバイスの方で盛んらしく、Forerunner用にも多種多様な機能が提供されている。

自分としては、常に表示されるウォッチフェイスは以下の条件を満たしたものにしたい。

  1. できるだけ見やすく、大きく表示できる
  2. 必要な情報を漏れなく表示できる
  3. 不要な情報は表示したくない

これらの条件はそれぞれが関連し合っているのだが、いかんせん、表示領域が限られて画面も大きくない時計で、さらに普段はバックライトもオフになっているということで、「最低限必要な情報を、できるだけ大きく表示する」という条件を満たすとなると、逆に不必要な情報はできるだけ省きたい

ところが、デフォルトのウォッチフェイスはシンプルすぎて時計と接続状況くらいの情報しか表示されず、心拍数等々を見るにはページを切り替えないといけない。



一方で、ページを切り替えるとなると右手でボタン操作する必要があり、右手が塞がっている場合(右手に荷物を持っているときや、タイピング中にチラっと見たいとき)には確認できなくなってしまう

ということで、上記条件を満たすとなるとカスタマイズされたConnect IQのウォッチフェイスに頼ることになる。

ダイエット観点的、ウォッチフェイスに欲しい情報


じゃあそもそも「必要な情報」とは何かと考える。

ウォッチフェイスはトレーニング中ではなく、日常生活用に使うものなので、ランニング中に確認するかもしれないペースや速度は不要(ランニング中には自転車のサイコンと同じように、ランニング用のデータフィールドページが表示される)。

時計としての基本機能(現在時刻等)は欲しいとして、今は日常生活=ダイエット生活なので、ダイエットに必要な情報である「運動消費カロリー(TEA、活動性熱産生効果)」、そして消費カロリーの元となる「心拍数」も欲しい。



ということでまとめるとこんな感じ。

  • 日付
  • 現在時刻
  • 電池残量
  • 運動消費カロリー
  • 心拍数

Vivosmart HRのときと同じく、「ステップ数(歩数計)」や「運動量(Intensity Minutes)」を表示するページもあるが、自転車乗りにはステップ数は意味がないし、「運動量」は「運動消費カロリー」と相関関係にあって連動するのでウォッチフェイスには不要でいい(実際、自分の場合はウォッチフェイスだけでなくウィジェットのページも削除している)。

ということでGarmin Connect IQのサイトから目ぼしいものをインストールしてみる。



Digitalウォッチフェイス


いろいろ見ていく中で、最小公倍数的に要件を満たしてくれそうだったのがこのウォッチフェイス。



ステップ数と距離※は不要だが、日付、時刻、バッテリー残量に加え、カロリーと心拍数も表示できるので表示項目としては十分(※距離はステップ数に連動した「歩いた距離」なので、自転車による走行距離は反映されない)。

最初は日付がイギリス方式(DD/MMで日付が最初に来る)で表示されるし、カロリーも総カロリーが表示されたが、設定でそれぞれアメリカ方式(MM/DD)と運動消費カロリーのみ表示できるように変更できた。

ビジュアル的には野暮ったいが、別にあえて人に見せる予定もないし、自分しか見ないなら機能優先で妥協できる。

唯一実用上の難点といえば、バッテリー残量をパーセンテージで表示できないことと、充電中に充電中であることを表示してくれないこと。

USBケーブルを挿してしばらく経ってから見るとバッテリー残量メモリが増えているので充電されているということはわかるが、USBケーブルを挿しても何の変化もないので本当に充電されてるのか不安になったりする

かといって充電するたびに設定をいじってウォッチフェイスを変更するのも手間。

まあどちらにしろ我慢できる部分なので表示項目優先で納得する。

ちなみに、充電ステータスについて気になったので、せっかくだからConnect IQのSDKをインストールして試してみた。



充電ステータスは、System.StatsクラスのchargingインスタンスがBoolean型を返してくれてそこから取得できる。



batteryインスタンスではパーセンテージを直接返してくれるので下手に残量アイコンに変換して表示するよりパーセンテージをそのまま表示してくれた方がよっぽどよかった。

ということで充電ステータス関連はシステム仕様上の不備ではなく、単にこのウォッチフェイスに実装されていないだけのようだ

一方でカロリーは、ActivityMonitor.Infoクラスのcaloriesインスタンスで取得できるものの、取得できるのは総カロリーのみで、基礎代謝と運動消費カロリーの内訳を取れるようなメソッドが用意されておらず、おそらく性別や体重といったユーザプロファイルを元に基礎代謝を計算し、その分を総消費カロリーから控除することで算出しているのだと思われる。



EclipseとSDKの開発環境が揃ってしまえば、自分にピッタリな情報のみ表示したものを自作できそうだが、開発環境の最大のネックは手元での実機テストができないこと。

基本的にSDKのシミュレータでテストし、Garmin Connect IQのサイトにアップロードしなければならない(そこでGarminによる審査も行われる)。



そうなると、公開用に様々な機種のシミュレータでテストするのも手間になるし、個人用としてもアップロード→審査のプロセスが必要になるなら自由に試せない。

まあ車輪の再発明をしても費用対効果が合わないのでピッタリの機能でなくても最小公倍数で我慢することに。

なにはともあれこれでウォッチフェイスも満足といくものとなった。

あとは15kg太って重くなった重い腰を上げるだけ・・・上げたい・・・上げれるといいな・・・。

0 件のコメント :

コメントを投稿