AndroidでPebbleにHello,world!

投稿者: | 2016年2月14日

Pebbleの母艦をAndroid端末にしていると、Pebbleのアプリ開発が実機デバッグまで母艦だけで完結します。その気になれば外出先でもどこでも開発ができる、このクラウドIDEは本当に素晴らしいと思ったので紹介します。

サインイン
まず、cloudpebble.comからサインインします。
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タブの中身を確認します。
SETTINGS
BUILD~はアプリの動作ハードウェアを指定するもので、APLITE(モノクロPebble)、BASALT(Pebble Time)、CHALK(Pebble Time Round)それぞれで設定可能。
APP KINDはアプリをWatchFaceとするかWatchAppとするかの選択。WatchFaceは時計盤として動作する代わりにキーやイベント入力ができず、WatchAppはアプリ起動が必要な代わりに各種入力が可能です。どちらでも大丈夫ですが、今回はWatchAppを選択します。

コンパイルとエミュレータ実行
Build
COMPILATIONタブからコンパイルができます。RUN BUILDボタンを押すと数秒でビルドが完了し、エラーがなければ実行用ボタンが画面に表示されます。APLITE、BASALT、CHALKボタンはそれぞれのプラットフォーム別エミュレータで実行するためのボタン。試しに「BASALT」ボタンを押してみると。
Emurator
画面左上にエミュレータが表示され、そのなかでアプリが動作します。

実機での実行
DeveloperConnection
実機での実行前に、Mobile App「Pebble Time」側で設定が必要です。メニューから「Developer Connection」を選択し、有効化しておきます。当然、Pebble本体とAndroidは接続済みのこと。

実機実行
次にcloudpebble側、画面上方の「Phone」を押し、「INSTALL AND RUN」ボタンを押しますと、Pebble実機にアプリがロードされ、実行されます。

実機実行
文字の表示位置を調整していないので、Roundでは消えてしまいます(笑)。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください