Simply.js用スクリプト開発手法とデバッグえ?Pebbleってまだ続いてたの?Kickstarter発のスマートウォッチとして話題になったPebble。とっくに時空の彼方に消え去った存在だと思っている人も多いかもしれませんが、開発陣はソフトウェアの地道なブラッシュアップを1年以上にわたり続けており、つい最近第二世代、2.0への移行が完了したばかり。この2.0での変化、進化は、Pebbleがスマートウォッチのナンバーワンプラットフォームとしての地位を確立する上で、非常に意義の大きなものです。appstoreのオープンが大きなトピック。appstoreの利用が可能になったのはiOSが先になりましたが、Androidも追従。appstoreにフォーカスしたものであるといえます。2.0不特定多数が開発するPebble用アプリ/ウォッチフェースからPebbleのOSに相当する部分にアクセスしにくいようにして安全度を高めたり、メモリ管理の方法を改めたりといったようなことです。結果として、スマートフォン用Pebbleアプリから、続々新作が登場するPebble用のアプリ/ウォッチフェースをどんどんダウンロードして、Pebbleで実行して楽しむ環境が現実のものとなっています。appstoreは、なかなかのユーザーエクスペリエンスを提供。このワクワク感といったらありません。appstoreには現在のところ決済手段がありませんから、(恐らく)全部フリーウェアで、ビジネスの場になっているわけではありません。地道な努力を続け、市井の開発者を巻き込んでムーブメントを起こし、Pebbleの世界をここまでしっかりと構築したPebble開発陣は、ただ者ではないといえましょう。More]から)Pebbleは実用的スマートウォッチPebbleはスマートウォッチとしては小さく軽く、防水。電池がよく持ち、昼間でも見える反射液晶、そしてスマートウォッチに重要なバイブレーターを搭載。日用品の仲間入りをしうる使い勝手を実現している点において、ほかのどのスマートウォッチの追従も許しません。OSは日本語表示をサポートしていません。Centerアプリで補えない通知中のマルチバイト文字の表示方法は模索しているけれど、アプリ中のマルチバイト文字表示は開発者が頑張って実現しろっていうのがPebbleのスタンスみたいですね。国際化は無理でも、アプリのローカライズならできる範囲かな。表示できた方がいいに決まっているけれど、スマートウォッチのナンバーワンプラットフォームが日本語表示非対応なのだから、郷に従うしかありません。この件で糾弾したい人はこちらへ。Forums僕は、日用品的な存在感を獲得する上でのトレードオフだと受け止めています。Frameworkという仕組み。OSこの魅力を知ってもらおうと、今回のエントリを書きました。PebbleはBluetoothでスマートフォンと連携します。Frameworkは、Pebbleとスマートフォン用のPebbleアプリとの間のBluetooth通信のための仕組み。通信のための仕組みがあるだけで、それを何に使うかは開発者に委ねられています。Framework対応アプリのインストール時に行われることが興味深いので、伝わりやすいよう図にしてみました。Pebbleのアプリは、pbwという拡張子のファイルで流通します。実体はzipファイルで、中にたくさんファイルが入っています。Framework対応アプリの場合、スマートフォン側にはJavaScriptがインストールされます。JavaScriptは、スマートフォン用のPebbleアプリが実行するわけです。Framework対応アプリと協調して動くよう、開発者が自由に書くことができるものです。開発者が、スマートフォン側の動作、Pebble側のアプリの動作の両方の指揮を取れるわけです。ポイントは、Bluetoothを使うアプリなので、iOSにおいても制限時間なしのバックグラウンド動作が許されていることです。JavaScriptを自由にインストールでき、バックグラウンドで動かし続けられるのです。これだけでご飯3杯ぐらいいける。APIを使って通信します。ボタン押下に応じて、あるいはPebble用アプリからの任意のタイミングで、あるいは定期的な呼び出しで、スマートフォン用Pebbleアプリ側にインストールされたJavaScriptを実行し、必要に応じてフィードバックを得ることができます。スマートフォン用Pebbleアプリ側にインストールされたJavaScriptの側から、Pebble用アプリ側を突っつくこともできます。ここで注目したいのが、スマートフォン用Pebbleアプリ側にインストールされたJavaScriptが、スマートフォンの通信機能と、JavaScriptのXMLHttpRequestを使って、Web上の情報を取得したり、Webに情報を送信できることです。それをBluetoothを介してPebbleに受送信できるので、WebアクセスするPebble用のアプリが作れるというわけです。2.0になって登場した、天気予報を表示するウォッチフェースは、この仕組みを利用しています。Framework対応アプリを作るためには、Pebble側のアプリをC言語で、スマートフォン用Pebbleアプリ側で動作するものをJavaScriptで書かなければなりません。ところが、JavaScriptを書くだけでユーザー側で動作を自由にコントロールできるカスタマイザブルなPebble用アプリ、Simply.jsが登場して、状況が大きく変わりました。appstoreからインストールできます。Simply.jsの詳細は、オフィシャルページから得ることができます。Simply.jsSimply.jsはgithub上で開発されていて、オープンソースのプロジェクトです。GitHubPebble用のアプリをクラウド上の開発環境で開発できるWebサービス、CloudPebbleが、Simply.jsにも対応しました。appstoreからPebbleにインストールし、起動。すると、こんな画面になります。本体右サイド、ボタンの上、中央、下を押すと、それに応じて画面が変化します。Pebbleを装着したまま腕をブルンと振ると、加速度センサーからの入力によって画面が変化します。これだけでは何の役にも立ちませんから、カスタマイズすることにします。Pebble用のウォッチフェース、アプリの設定は、スマートフォン用のアプリから変更できます(設定項目がないものもある)。PEBBLEからたどり......。Simply.jsを見つけたら、「SETTINGS」ボタンをタップ。ここに、Simply.jsの動作を決めるJavaScriptのURLの入力欄があります。デフォルトでは「http://meiguro.com/simplyjs/demo.js」となっているので、Webブラウザから見てみることにします。watch!」も、スクリプト上の記述として見えます。これを書き換えれば、Simply.jsの動作をカスタマイズできるわけですね。true);改造して自分用のスクリプトを作成しかし、人様のサイトのファイルはいじれないので、自分の裁量下にあるWebサーバに置いて改造することにします。Dropboxが手軽でいいでしょう。DropboxのPublicディレクトリに置き、公開リンクを得る。公開リンクを、Simply.jsの設定画面にペースト。これで、Simply.jsがDropbox上に置いたJavaScriptを読み込んで動くようになります。サンプルのスクリプトを改造して作ったのが以下のものです。{console.log(e);simply.body(e);}};これを動かすと、以下のような画面が表示されます。Simply.jsはテキスト表示しかできませんから、いささか見てくれが悪いですが、JavaScriptでかき集めてきたWeb上の情報をパッチワークのようにして構成してみました。これをsetIntervalで1分に1回更新しています。自分の欲しい情報を自由に集めてきて、Pebble上に表示。本体右側のボタンのいずれかを押したり、手をブルンと振ったりしても更新されるようにしてあります。X用のGeekToolのようですね。projects非常に面白げではないでしょうか。これに飽き足らなければ、C言語を使ってPebbleアプリを作ってしまう手も、もちろん残されています。Simply.js用スクリプト開発手法とデバッグSimply.js用のスクリプトは、JavaScriptなのでWebブラウザで開発できます。GitHubからチェックアウトしてきたものを使うのが便利でしょう。「simplyjs/src/js」にSimply.jsで使うJavaScriptがあるので、これをhtmlにincludeします。Webページから必要な情報を抜き出す部分は、こんな感じでWebブラウザで開発ができます。SDKの標準コマンドであるpebbleコマンドでできます。SDKをインストール。Xなら、XcodeがインストールしてあればHomebrewよろしくワンライナーでセットアップ完了です。2.0Pebbleとペアリングしているスマートフォンと開発機を同一ネットワークに置き、環境変数「PEBBLE_PHONE」に、スマートフォンのIPアドレスを設定。PEBBLE_PHONE=192.168.1.100スマートフォン側のPebbleアプリのDEVELOPERモードをオンにします。これで、「開発機→Wi-Fi→スマートフォンのPebbleアプリ→Bluetooth→Pebble」という経路ができます。あとは、pebbleコマンドをlogsオプションを付けて実行すると、Androidのadbコマンドのlogcat同様の状態になります。Simply.js用のJavaScriptでconsole.logを実行すると、ここのログに流れてきます。logs非常に僕好みの作りですよ。いうわけで、Pebbleマジオススメ。PM質問です!ペブルを購入しようと思いました。主な用途は使っているスマホで「Runkeeper」と連動させることです。(低消費電力)」となっているようです。対応は出荷後の無料ソフトウェアアップデートで有効になる予定。もののプールで使える程度の防水に仕様変更されています。」http://japanese.engadget.com/2012/05/08/pebble-bluetooth-4-0/とあります。上記の4.0対応ペブルだと連動しないのではとのリスクが拭えません。アップデートで4.0対応だから問題ないのでしょうか?もうひとつ欲を出すと、公式からだと99US$で購入できそうです。充電ケーブル入れても114US$。海外通販は利用したことないので、送料の問題もあると思いますがお得なのかご存知でしたら教えてほしいです。ちなみにアマゾン等で購入すると17,000円くらいになりそうです。ものすごくお詳しそうなので無知な私にぜひご教授下さい。AMBluetoothについては何ともよく分かりません。僕はギフト券が残っていたこと、在庫ありかつプレミアム対応で入手が早そうだったことからAmazonから買いましたが、そうでもなければサポートのこともあるので、公式から買った方がいいですよ。PMサンプルスクリプト改造版、実行させようとしましたがうまくいきませんでした。(file:///data/-data/com.get-pebble.androi-とエラーが出ています。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。