Pebbleの母艦をAndroid端末にしていると、Pebbleのアプリ開発が実機デバッグまで母艦だけで完結します。その気になれば外出先でもどこでも開発ができる、このクラウドIDEは本当に素晴らしいと思ったので紹介します。
サインイン
まず、cloudpebble.comからサインインします。
プロジェクト作成
サインインすると作成済みプロジェクトの一覧画面となります。新規プロジェクトは画面上方の赤い「CREATE」ボタンから作成できます。作成時のプロジェクト名はとりあえず「helloworld」、プロジェクトタイプはC言語(Pebble C SDK)を選択、SDKバージョンは最新(SDK 3)、テンプレートは「Minimal」を選択します。
ソース作成
ソースコードとしてはmain.cが生成されましたので、中身を見てみます。
まずはmain関数を見てみます。
int main(void) {
handle_init();
app_event_loop();
handle_deinit();
}
Pebbleアプリの基本形は、「初期処理」「イベント待機」「終了処理」の3つで構成されます。「イベント待機」はOSで管理する割込処理のために使われますのでとりあえず放置。
「初期処理」
#include <pebble.h>
Window *my_window;
TextLayer *text_layer;
void handle_init(void) {
my_window = window_create();
text_layer = text_layer_create(GRect(0, 0, 144, 20));
window_stack_push(my_window, true);
}
Pebbleでは、画面バッファとしてWindow型構造体があり、そこに画像やテキストのレイヤーを重ねて構成します。初期テンプレートではテキスト表示用のレイヤーが1つ用意されますが、これだけでは表示はできませんので、あとで追加します。
「終了処理」
void handle_deinit(void) {
text_layer_destroy(text_layer);
window_destroy(my_window);
}
アプリで使用したリソースは自分で開放する必要があるので、その処理です。このあたりは、JavaやC#に慣れているとちょっと面倒ですね。
さて、表示のための記述を追加します。handle_init関数を下記のとおり書き換えます。
void handle_init(void) {
my_window = window_create();
text_layer = text_layer_create(GRect(0, 0, 144, 20));
text_layer_set_background_color(text_layer, GColorClear);
text_layer_set_text_color(text_layer, GColorBlack);
text_layer_set_text(text_layer, "Hello, world!");
layer_add_child(window_get_root_layer(my_window),text_layer_get_layer(text_layer));
window_stack_push(my_window, true);
}
「text_layer_set_」で始まる関数でテキストレイヤーの表示内容を設定します。layer_add_child関数で画面バッファにテキストレイヤーを追加し、window_stack_push関数で画面バッファのデータがPebbleの実画面に反映されます。
アプリの設定
コンパイルの前に、SETTINGSタブの中身を確認します。
BUILD~はアプリの動作ハードウェアを指定するもので、APLITE(モノクロPebble)、BASALT(Pebble Time)、CHALK(Pebble Time Round)それぞれで設定可能。
APP KINDはアプリをWatchFaceとするかWatchAppとするかの選択。WatchFaceは時計盤として動作する代わりにキーやイベント入力ができず、WatchAppはアプリ起動が必要な代わりに各種入力が可能です。どちらでも大丈夫ですが、今回はWatchAppを選択します。
コンパイルとエミュレータ実行
COMPILATIONタブからコンパイルができます。RUN BUILDボタンを押すと数秒でビルドが完了し、エラーがなければ実行用ボタンが画面に表示されます。APLITE、BASALT、CHALKボタンはそれぞれのプラットフォーム別エミュレータで実行するためのボタン。試しに「BASALT」ボタンを押してみると。
画面左上にエミュレータが表示され、そのなかでアプリが動作します。
実機での実行
実機での実行前に、Mobile App「Pebble Time」側で設定が必要です。メニューから「Developer Connection」を選択し、有効化しておきます。当然、Pebble本体とAndroidは接続済みのこと。
次にcloudpebble側、画面上方の「Phone」を押し、「INSTALL AND RUN」ボタンを押しますと、Pebble実機にアプリがロードされ、実行されます。