SyntaxHighlighter

2016年6月24日金曜日

PebbleのアプリをC言語とPebble.jsで開発する時の違い

スマートウォッチのPebbleを便利にしているのは、通知機能とアプリである。
アプリはストアで配布されているが、自分好みのものがないということはよくあることだ。

開発環境はCLOUDPEBBLEを使えば何の問題もない。

オフラインで開発しようとすると、Linux仮想マシンにSDKを導入する必要があるが、
CLOUDPEBBLEを使えばオンラインで、Webブラウザ上で全てが完結する。
コンパイルも、エミュレータも、Pebbleへの転送もだ。

スマートフォンのPebbleアプリに、Developer機能が付いているので、
同じPebbleアカウントでログインしていれば、
クリックひとつでコンパイルされたアプリが手元のPebbleに自動でインストールされる。

ところで、問題がひとつ。
Pebbleのアプリを書く手段というのは、3種類ある。

・C言語で開発する
・Simply.jsで開発する
・Pebble.jsで開発する

の3種類だ。
この3種類の違いが個人的にわかりにくくて困ったので、メモをしておく。


・C言語で開発する
Pebbleにおける標準的な開発方法だ。
すべての機能を活かすのなら、これを使うしか無い。
文字盤(ウォッチフェイス)を作成できるのもこれしかない。

ウォッチフェイスのサンプルデータはここにある。

プログラムの実行速度は高速で、
使える機能は多く、
そして、省電力でもある。

また、一度インストールが済まされていれば、
スマートフォンと切断されていても(機内モードでも)アプリは動作する。

問題があるとするなら、C言語なので面倒が多いことだ。
配慮はされていて作りやすいが、割りと手間がかかる。

特に、スマートフォンアプリとの通信PebbleKitや
Pebbleアプリに読み込ませたJavaScriptのPebbleKitJSと通信するあたりが、
ちょっと面倒なように思う。

外部(サーバーなど)との通信もPebbleKitか、PebbleKitJSを経由する必要がある。


・Simply.jsで開発する
C言語での開発が面倒なので作成された「アプリ」である。
アプリの設定画面からURLを指定すると、
そのURLの先のJavaScriptを読み込んで実行する。

画像表示などの機能が使えないが、
UI機能は概ね使えるし、通信もajaxで簡単。

しかし、あくまで他人のアプリの上で動く。


・Pebble.jsで開発する
Simply.jsを単体のアプリ化したものである。
公式機能のため、画像表示機能が使え、その他多くの機能が使えるが、
一部使えない機能があるようだ。

Simply.jsもそうなのだが、実体はPebble上にはなく、スマートフォン上のPebbleアプリで動く。
Pebble上にインストールされるアプリは、実質クライアントである。

どういうUIを表示するか、どういうアクションをするかは、
PebbleがBluetooth経由でスマートフォンに問い合わせ、
スマートフォン上のJavaScriptが返答、それをPebbleが表示、という仕組みになる。

ので、
 ・省電力ではない
 ・スマートフォンと切断されている状態では使えない
 ・ウォッチフェイスが作れない
 ・レスポンスが悪い
 ・まだベータ版
 ・たぶんストアでまだ配布できない?
という、一見利点がないように思えるが、

Pebble上のアプリとしては完成品で、それをJSから操作する形になるため、
 ・Cのように機種別に作り分ける必要が(あんまり)ない
 ・かなり手軽にアプリが組める
 ・ajaxを用いてかなり容易に外部と通信できる
 ・C言語の面倒臭さがない
という大きな利点がある。

こんなのが作れる。


・結論
省電力で作りたい、ウォッチフェイス作りたい、
単体で動いて欲しい、レスポンスがいいのがいい、
ばりばりアニメーション/ゲーム作りたい、
という場合には、ネイティブC言語開発。

スマートウォッチらしく、スマホとつながっている時だけ動けばいい、
ネットから情報を取り出したい、送りたい、
とりあえず動けばいい、
という場合には、Pebble.jsがおすすめ。
もちろんのこと、Cでできないことはないです。







0 件のコメント:

コメントを投稿