pebbleのプログラムについていろいろ

(ちょっとタイトルがテキトウですが)
pebbleアプリの種類や仕組みについて説明します。## watchfaceとwatchappの違い

まず、よく話に出てくるwatchfaceとwatchappの違いですが、基本的にできることの差はほとんどありません。watchfaceがボタンイベントを受け取れないくらいです。

大きくは用途の違いになります。

watchface

  • ボタンのイベントを受け取れない。
  • 時計モードで右側上下ボタンでwatchfaceを入れ替えることができる。
  • もし何か操作したい場合には、加速度センサを通したジェスチャだけ(加速度センサの値はとれる)
  • 高頻度の更新・値取得をしていると電池の減りが早くなるので注意。

watchapp

  • メニューから起動する。
  • ボタンイベントも受け取れる。
  • ゲームだって作ってOK。

コンパニオンアプリ

pebbleでは前回作った「pebble上で動くプログラム」だけでも動くのですが、更に便利な機能を利用しようとすると「スマートフォン側で動くプログラム」というものが必要となります。

「pebble上で動くプログラム」は C でプログラムを書いてビルドすることで .pbw のファイルを生成し、そのpbwファイルをpebbleにインストールすることでwatchfaceまたはwatchappが動作します。

ただ、pebbleには、ボタンや加速度センサはありますが、位置情報やインターネットとの接続機能はありません。
そのため現在地の天気を表示させたり、株価を表示させるようなことはpebbleだけではできません。

そこで、pebbleではスマホ側で動くプログラムと通信できる仕組みが用意されています。

「スマートフォン側で動くプログラム」はそういった問題を解決するもので、コンパニオンアプリと呼びます。

コンパニオンアプリを作ることで、スマホ側が持つ位置情報やその他センサーの情報、インターネットとの通信などを利用することができるようになります。

Pebble JavaScript Framework

ただし、コンパニオンアプリはiphoneアプリまたはandroidアプリを作る必要があり敷居が高いと思います。
その敷居の高さを解決するため、pebble公式のスマホアプリ上でJavaScriptを動かすことが出きる仕組みが提供されています。
これを「PebbleKit JavaScript Framework」と呼びます。

このJavaScript上でGPS情報を取得したり、HTTPリクエストを使ってインターネット側から情報を取得したりできます。

watchfaceやwatchappを作る際には、これらの仕組みを使って自分が作りたい時計を作ることになります。

まとめ

ここで紹介したPebbleKit JavaScript FrameworkはSDK2.0から使えるようになったみたいです。
発売してから1年以上立っていますが、適度な頻度でSDKやファームウェアをアップデートしてくれるこの環境も、pebbleの魅力の1つですね。
現時点で最新のファームウェア2.6でも、Background WorkerやQuickLaunch機能が追加になっています。

告知

今度函館に遊びに行った時、pebbleの勉強会orもくもく会をする予定です。
函館近郊でpebbleを持ってる方、気になっている方はぜひ遊びに来てねー。

pebble勉強会@函館 – connpass