アプリ開発が可能に!GarminのウェアラブルデバイスForerunner 920XTとConnect IQ SDK
2016/05/24
価値ある情報をユーザー視点で発信するブログ
2016/05/24
もくじ
Garminが2014年10月1日にForerunner 920XTを発表。GPSを搭載した、腕時計型のトレーニングウォッチです。
Bluetooth SMART(Bluetooth Low Energy)、WiFiを搭載。Android、iOSに対応。
Garmin Connect Mobileを使ってPCを介さずアクティビティのクラウドへのアップロードなどが可能。
Wi-Fiのホットスポットを登録すれば、スマートフォンすら介さず、アクティビティのクラウドへのアップロードが920XT単体で可能っていうのが面白いですね。
バッテリは、UltraTracモードにおいて40時間、トレーニングモードで20時間、時計モード時は4カ月も持ちます。
販売開始されていて、価格は$449.99 USD、およそ49,000円。
2012年に発売されたForeAthlete 910XT、ならびにその日本語版のForeAthlete 910XTJの後継機種に当たります。910XT(J)は、Bluetooth SMART非搭載ゆえiOS非対応だったので、920XTはiOSユーザにはうれしい新機種といえます。
日本語版920XTJが出るかどうかは分かりませんが、出るとすればローカライズのみならず、みちびき補完信号受信対応になるはずなので、日本人は920XTを魅力的だと思っても、当分の間920XTJが出るのかどうか、ヤキモキしながら過ごすことになります。(続きは[Read More]から)
Forerunner 920XTは、2015年の早い時期に予定されているソフトウェアアップデートでConnect IQに対応予定。
920XT以外にも、Connect IQ対応デバイスは続々出てきそうです。
Connect IQは、Garmin製品が初めて採用するオープンプラットフォーム。つまり、サードパーティにソフトウェア開発を公開するもの。
既に無料の開発キット、Connect IQ SDK PREVIEW 1が公開されていて、ダウンロード可能となっています。ホストOSとして、WindowsとOS Xがサポートされています。
Overview | Connect IQ | Garmin Developers
SDKといえど、配布物にはシミュレータとドキュメント、サンプルしか入っていません。
IDEにはEclipseを使用。EclipseからConnect IQ用のPlug-inをインストールする、Androidと似た開発環境。
インストール方法は、配布物に含まれる「Monkey C Programmers Guide.pdf」に詳しく書いてあります。
Connect IQ SDKを使うと、以下の4種のものが開発できるということです。
What You Can Build | Connect IQ | Garmin Developers
それぞれの特徴については「Monkey C Programmers Guide.pdf」に詳しく書いてありましたが、Connect IQ自体を触れてないので、あんまりピンと来ませんでした。
スマートフォン側でConnect IQデバイスと連携するアプリも作れます。Connect IQ SDKには、Androidアプリのサンプルが含まれていました。
Intro to Monkey C | Connect IQ | Garmin Developers
開発には、Monkey Cというオブジェクト指向の新言語を使います。曰く、Java、PHP、Ruby、Pythonの経験があれば、親しみやすい言語とのこと。
実行環境は、RTOSの上で動くMonkey Brains仮想マシン。参照カウンタを使った自動メモリ管理機構があり、メモリ管理しなくていいそう。
以下はアプリのエントリポイントですが、クラスの継承の構文を見ると、Javaに似ています。
ビューなどにある、イベント発生時に呼ばれるメソッドをサブクラスでオーバーライドして作っていきます。
class AnalogWatch extends App.AppBase { function onStart() { } function onStop() { } function getInitialView() { return [new Analog()]; } }
変数に型はありません。値には型があります。使う前に必ず宣言する必要があるようです。
var width, height; var screenWidth = dc.getWidth(); var clockTime = Sys.getClockTime(); var hour; var min;
Connect IQ対応デバイスは機種によって仕様が違うので、それに個別対応するためのリソースコンパイラが存在。一つのアプリで複数のデバイスに対応させる仕組みがあります。
アプリが対応するデバイスは宣言できるので、対象とするデバイス以外で実行されることを防ぐこともできそうです。
APIリファレンスは以下から見られます。
外部に接続したANT+センサーを含む、各種センサーから値を取れることは元より、Connect Garmin Mobileをインストールし、Bluetooth SMARTで接続中のスマートフォンとの連携で、インターネット上のリソースを利用できるのがポイントです。
Module: Toybox::Communications — Connect IQ SDK PREVIEW 1
画像やJSONを取得して、ウィジェットやウォッチフェースで使うといい感じのものができそうです。
この辺りはPebbleっぽいですね。
2.0で面白くなったスマートウォッチPebbleを、JavaScriptゴリゴリでネット監視装置として使う
日本語表示が可能かどうかは未知数です。
Connect IQアプリを配布するConnect IQ Storeは2015年の早い時期にオープン。
つまり、920XTがアップデートでConnect IQ対応したときにConnect IQ Storeもオープンする感じでしょうか。
920XT用のConnect IQ対応ファームウェアのベータ版は配布されるでしょうが、ローンチに間に合わせるためには、シミュレータで開発を始めておく必要がありそうです。
Connect IQ Storeでのアプリの公開のためは、Garminの審査を受け、承認されなくてはなりません。公開にたどり着くまでにはタイムラグ、差し戻しが発生することになります。
Connect IQ Storeには決済機能はなし。すべて無料のアプリとして配るしかありません。
マネタイズは、コンパニオンアプリの方のConnect IQデバイス連携機能を有料化するなどの手段を取るしかなく、Connect IQデバイス上で完結するウォッチフェースなどはマネタイズの手段がないことになります。
今をときめくApple Watch、Android Wearとの比較で、920XTのアドバンテージになるのは、GPSを搭載していることでしょう。
アクティビティを記録するためにスマートフォンを持ち歩く必要がありません。ANT+センサーを接続できるので、ANT+センサーのハブとして機能するのもアドバンテージですね。
ただし、Android Wearは今後GPSを搭載可能にする予定があるので、その点では追いつかれてしまいそうです。
省電力性能においても、アドバンテージがあります。GPSを含むセンサーを動かしっぱなしでも、920XTでは20時間動きます。
恐らく、Android Wearでは、この省電力性能は実現できないのではないでしょうか。
920XTにおいては、各種センサーを(多分各種通信も)止める時計モード時は4カ月ものバッテリ動作時間を実現しています。
スマートウォッチを使い出すと分かると思いますが、どんなにハイスペックなものだろうが、電池がもたないと必ず面倒になって使わなくなります。
920XTは時計としての使い勝手を同時に有する点で、生活に溶け込ませられる可能性が高いと考えられます。
ただ、マネタイズの面が弱いので、アプリの充実に関しては疑問符が付くかもしれません。
僕はルートが表示できるfenixJの方がどちらかといえば欲しく、920XTはきっと買いませんが、ちょっと興味深かったので紹介してみました。