Edited at

Pebble 3.x を取り巻く開発環境

More than 3 years have passed since last update.

http://developer.getpebble.com/

いろいろ増えてきたのでまとめてみる。


用語

用語
説明

Pebble Classic
初代のPebble、Pebble Steel, プラットフォーム名は aplite

Pebble Time
カラー対応したPebble Time, Pebble Time Steel, プラットフォーム名は basalt、SDK 3以上が必要

Pebble Time Round
丸型のPebble Time, プラットフォーム名は chalk、SDK 3.6以上が必要

Pebble 2
Pebble (Cassic)の後継、プラットフォーム名は diorite、SDK 4以上が必要

Time 2
カラー対応したPebble Timeの後継、プラットフォーム名は emery

Pebble Watchapp
Pebble本体側で実行するアプリ、iOS/Android側のスマホアプリPebble appを使ってPebbleにインストールする。時計のような機能が限定されたものはWatchfaceと呼ばれる

Pebble (mobile) app

AppStore, Google Playで配布されている公式のiOS/Androidアプリ、接続するPebbleやインストールするPebble Watchappを管理する、開発中のPebble Watchappをインストールするためにはデベロッパーモードを有効にしておく必要がある

Pebble C
Pebble Watchappの開発でつかう

Pebble.js
Pebble WatchappをJavascriptで記述できるフレームワーク

Simplyjs
簡単なPebble WatchappをJavascriptで記述できるフレームワーク

Companion Apps
Pebble Watchappと連動するiOS/Androidアプリ、開発者がPebbleKitを使って作成する

PebbleKit
iOS/Android側でPebble Watchappと連携するCompanion Appsを実装するためのSDK

PebbleKit JS
PebbleKitのJavascript版、スクリプトはPebble mobile appが取り出し実行する

CloudPebble
クラウド上のPebble Watchappの開発環境

Pebble appstore
Pebble Watchappのアプリストア

Pebble Developer Portal
Pebble appstoreで公開しているWatchappを開発者が管理するサイト


Pebble(Smartwatch)側


Pebble C


  • Pebble WatchappをC言語で実装する、Pebble 1.0からあるベースの開発環境

  • 基本的にPebble SDKと言えばこれを指すと考えて良いと思われる

  • Windows, Mac OS X, LinuxプラートフォームのSDK/toolchainが公開されている(Python依存)


    • Mac OS XはHomebrewでインストールできる

    • 各プラットフォームのエミュレータが用意されている



  • SDKをインストールしなくてもブラウザ上で開発できるClouldPebbleがある

  • Pebble ClassicでPebble SDK 3.0以上でビルドしたWatchappを実行するにはFirmwareが2.9以上が必要


    • Pebble ClassicのFirmware 3.xがリリースされTimelineなどがサポートされた、これに対応するにはPebble SDK 3.8以上が必要



  • C言語なので機種ごとに依存する対応は #ifdef で分岐する


Pebble.js

https://github.com/pebble/pebblejs/


  • Simplejsからの派生プロダクト

  • Pebble WatchappをJavascriptで実装するためのツールチェイン

  • ベータ版(2015/12時点)

  • ClouldPebbleからも利用できる

  • Pebble SDKを使って開発する場合は https://github.com/pebble/pebblejs/ のプロジェクトをforkしてsrc/js/app.jsを変更して使うことができる


Simplyjs

http://simplyjs.io/


  • シンプルなPebble WatchappをJavascriptで実装するためのツールチェイン

  • 0.3ではテキスト表示や、バイブレーションなどが実行できる


    • 表示するテキストの位置などはだいたい決まっており自由なユーザインタフェースは実装できない



  • 派生プロダクトのPebble.jsがあるため、もう機能追加はされないと思われる


Rocky.js

https://pebble.github.io/rockyjs/


  • Pebble FirmwareにJavascript Runtimeを載せようとするプロジェクト

  • Pebble.js/SimplyjsはjavascriptのプログラムからPebble Watchappバイナリファイルを作成するプロダクトであるのに対して、Rocky.jsはjavascriptのプログラムを直接Pebble本体で実行することを目指している


Mobile(Smartphone, Tablet)側


PebbleKit



  • PebbleKit iOS, PebbleKit Androidが公開されている

  • 開発者が自作のiOS/AndroidのネイティブアプリにPebble Watchappとやりとりする機能を実装できる


    • Pebble Watchapp側からはそのようなネイティブアプリをCompanion Appsと呼ぶ



  • ネイティブアプリを用意しなくても済むPebbleKit JSがある


PebbleKit JS

http://developer.getpebble.com/docs/js/


  • iOS/Android側のPebble appで実行し、Pebble Watchappへデータを送る処理をJavascriptで実装するためのフレームワーク

  • Pebble Watchapp単体で出来ないクラウドからデータを取得するような実装を追加することができる

  • スクリプトはPebble Watchappに含め、Pebble appが取り出し実行するので別途ネイティブアプリを配布しなくて良い


    • ただしAppleがインターネットからダウンロードしたコードの実行を禁止しているため、iOSでは回避策として全てのWatchappのJSコードをPebble appに含めるという方式をとっている。したがって公式のPebble appが更新されるまでiOSではリリースしたPebble Watchappが公開されない

    • このPebble appの更新日は Pebble JS Bundling Updates で公開されている



  • Pebble WatchappをJavascriptで実装するためのツールチェインではない


    • その目的のものは Simplyjs や Pebble.js の方




IDE等


CloudPebble

https://cloudpebble.net/


  • Pebble Watchappを開発するためのクラウド上のIDE

  • C言語だけなくPebble.js、Simplyjsにも対応している

  • GitHubと連携することでリポジトリ管理もできるらしい

  • Pebbleシミュレータを実行できる

  • スマホのIPアドレスを入れることでPebble実機にインストールできる


Atomエディタ

https://atom.io/



  • pb-completions パッケージを使うとPebble Cのコード補完ができる


Watchface Generator


Pebble Dash Docset

MacのDash (Docs & Snippets)アプリ用のドキュメント。

Preferences > Downloads タブから + で以下のURLを追加してダウンロード。

http://partlyhuman.github.io/PebbleSdkDocset/Pebble.xml

参考: SDK Documentation in Dash Docset


その他


Pebble appstore


Pebble appstore

https://help.getpebble.com/customer/portal/articles/1701779-pebble-appstore


  • Pebble Watchappの公式なアプリストア

  • 2014年2月ごろから公開

  • Pebble app内から表示できる

  • 有料販売には対応していない

  • Pebble WatchappにはAndroid, iOSをサポートしているか、Companion Appsがあるか、などが情報で表示される

  • 公開地域(国)を選択する機能はなく全世界のPebble Watchappが並ぶ

  • Pebble appstoreは国際化に対応していないため基本的にPebble Watchappの説明は英語で記述する


    • それを気にせず母国語で説明を記述している開発者もいる



  • Pebble Watchappは .pbw ファイルを公開することでPebble appstore以外で配布することは可能

  • Pebble appstoreが後発であったためMy Pebble Facesのような非公式なギャラリーが存在する


Pebble Developer Portal

https://dev-portal.getpebble.com/


  • 開発者がPebble appstoreにPebble Watchappを公開する際に利用するサイト

  • ここからPebble Watchappをアップロード(提出)したり、アプリの説明を記述したりする


  • Pebble Appstore Guideがある

  • 個々のPebble Watchappのパーマリンクが存在し、通常のブラウザで開くことができる


    • 開発者は自身のサイトで紹介ができる

    • Pebbleを購入する導線が用意されている




まとめ


  • Pebble Watchappの開発環境の構築は多少面倒なのでまずはCloudPebbleを試してみるのが吉


    • Mac OS XではHomebrewでPebble SDKがインストールできるようになり多少敷居は下がった



  • スマホ側で実行する機能をJavascriptで書くものがPebbleKit JSでPebble側で実行する機能(Pebble Watchapp)をJavascriptで書くものがPebble.js

  • Simplyjsの機能で済むなら、Simplyjs + PebbleKit JSを使いCloudPebbleで開発するのが一番手っ取り早い

  • C言語の実装に抵抗がある場合はPebble.js + CloudPebbleを選ぶのも手、Beta版のリスクとのトレードオフ

  • 既存のiOS/AndroidアプリのコンテンツをPebbleで表示したい場合はそのアプリのプロジェクトでPebbleKit iOS, PebbleKit Androidを利用して実装する

  • クラウドでの開発に不安がある場合やエディタやソース管理を自分の方法で行いたい場合などはSDKを使って開発すればよい

  • 単純な時計は Watchface Generator を使えば開発環境は不要

  • Pebble Watchappを配布する環境として公式なPebble appstore、Pebble Developer Portalが用意されている

  • Pebbleのプラットフォームが増えたためエミュレータが重宝する