週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

Pebbleのアプリを自分で作っちゃおう:Pebble実機レポート後編

2014年04月08日 15時00分更新

 前編(関連記事)で紹介した通り、Pebbleは開発ツール(SDK)が公開されており、作成したアプリケーションはPebble Appstoreから配布することができる。これらはすべて無料であるので誰でも気軽にPebbleのアプリケーションの開発に参加することができる。

Develop for Pebble(外部サイト:開発者向けの公式ポータルサイト)

Pebble

 そこで後編では、開発者の視点でPebbleではどんなことができるのか、またどのようにしてアプリケーションを開発するのかについて紹介する。

■アプリケーションの形態

 まずアプリケーションの形態としては以下の種類があり、開発者は作成するアプリケーションの目的に合わせて選択することができる。

・Watch App / Watchface
・Watch App + JavaScriptフレームワーク
・Watch App + コンパニオンアプリケーション
・Simply.js用のJavaScript
・設定画面 + JavaScriptフレームワーク

[Watch App / Watchface]

 『Watch App』と『Watchface』はPebbleで一番基本的なアプリケーション形態である。前者はメニューから選択して実行され、後者は時計表示モードで実行される。名称が異なるが、実行される場所が違うだけで作成方法はほぼ同じである。唯一の違いは、Watchfaceでは基本的な動作を阻害させないために、ボタンの押下イベントを取得できないように制限がかけられていることである。

 なお、WatchfaceとWatch Appのプログラムは“C言語”で書くことになる。最近のモバイル用アプリケーション開発ではあまり見かけなくなったが、慣れた方であれば公開されているドキュメントとサンプルを片手にすぐに開発を始められると思う。

Pebble SDK ドキュメント(外部サイト)

[Watch App + JavaScriptフレームワーク]

 JavaScriptフレームワークはPebbleとモバイル端末の間で通信するための仕組みを提供する。

 この仕組を使用すればモバイル端末側で取得したGPSの位置情報や、任意のWebサーバーから取得した情報などが利用可能になる。前編でも述べた通り、Pebbleの機能はそれほど高くないのでモバイル端末側のアプリケーションと通信ができることの意味は大きい。

[Watch App + コンパニオンアプリケーション]

 Watch Appと連携するためのモバイル端末側のネイティブアプリケーションのことを“コンパニオンアプリケーション”と呼ぶ。前述のJavaScriptフレームワークでカバーできない機能などを使用したい場合は、こちらの組み合わせを選択することになるだろう。

 現在はiOSとAndroid OSの通信用ライブラリ(PebbleKit)が用意されており、それぞれの開発環境にインストールすることでコンパニオンアプリケーションを作成することが可能になる。

 なお、Watch AppやWatchfaceに対する課金方法は今のところないが、コンパニオンアプリケーションについては制限されていないので、有料アプリケーションの開発も可能である。

[Simply.js用のJavaScript]

 Pebbleに『Simply.js』というWatch Appをインストールし、設定からJavaScriptをURLで設定することで任意のスクリプトを実行することが可能になる。

Simply.js(外部サイト)

Pebble

 Simply.jsでは画像表示ができない、ボタンの押下イベントやバイブレーション、加速度センサへのアクセス程度しかない、文字通りシンプルな専用ライブラリが用意されている。

 Watch Appやコンパニオンアプリケーションを作成するほどの規模でもない、という場合はこの選択肢が有効であろう。

[設定画面]

 アプリケーションには設定画面を追加することができるが、その実態は任意のWebサイト上に置かれたHTMLファイルである。これはPebble Appstoreからも管理されないので、設置場所も含めて自分で用意する必要がある。

 また設定画面にチェックボックスやボタンが必要になるならスタイルシートなどを用意し、自分でデザインする必要もあるので注意が必要だ。

■Watch Appで可能なこと

 Watch App用に用意されているC言語のライブラリでは以下のことが可能である。

・ディスプレイに対するテキストや図形の描画
・画像(PNGファイル)の表示
・TTFフォントの使用(システムフォント以外に追加も可能)
・アプリケーション内で使用するリストボックスの作成
・システム情報(時刻、バッテリー、Bluetoothの接続状態)の取得
・サイドボタン押下イベントの取得
・バックライトのOn/Off
・バイブレーションのOn/Off
・加速度センサの値の取得
・ストレージへのアクセス(最大4KB)
・モバイル端末との通信

 Pebbleに実装されているほとんどの機能についてアクセス可能であるが、明るさセンサの値は取得できない。ちなみに将来的に電子コンパス機能が追加される予定である。

■一番おすすめな開発環境『CloudPebble』

 Pebbleは専用OSで動作しているため、Watch AppやWatchfaceをビルドするにはクロスコンパイル環境が必要になる。

 公式サイトでは現在、OS X版、Linux版、Windows版の3種類が用意されているが、どれも色々とインストールしたり環境設定を行う必要があり、一見して「面倒くさそう」というのが本音である。

 そこでおすすめしたいのがWebブラウザで開発できる『CloudPebble』である。

CloudPebble(外部サイト)

Pebble

 CloudPebbleはブラウザベースながら、プロジェクト作成、コードエディタ、コンパイラ、デバッガ、インストーラ作成と開発に必要な機能が全て揃っており、環境構築を一切せずにログインするだけで開発を始めることが可能である。

 プロジェクトの新規作成も13種類ある雛形から選択すれば必要なファイルを全て用意してくれるので、立ち上げで悩むことがなくなるのもメリットとして大きい。

 参考までにいくつかのサンプルコードの概要をリストアップしておく。

・Minimal:プロジェクトの最小構成。
・ButtonClick:サイドボタンの押下イベントの取得。
・HelloWorld:定番のHelloWorldプロジェクト。
・AppMessage:JavaScriptフレームワーク用のサンプル。
・Accelerometer Disks:多数のボールが傾けた方向へ移動するサンプル。
・Image:画像(PNG)ファイルを表示するサンプル。

 CloudPebbleへアクセスするとログインを求められる。ここで新規にアカウントを作成することもできるが、Pebble Appstoreで使用するアカウントと共用なのですでに登録済みであればそちらを使用できる。

Pebble

 ちなみにCloudPebbleはボタンを押すだけでビルドしたアプリケーションをPebbleにインストールして実行できる。しかも、プログラム内に埋め込んだデバッグ用のトレース文をログビューワで確認することも可能である。ブラウザベースでここまでできるとは正直驚いた。

 このデバッグ機能の具体的な実行方法について割愛するが、Pebbleとペアリングしているモバイル端末とブラウザを使用しているPCがネットワークで接続されていれば使用可能である。

Pebble

 なお推奨ブラウザはChromeとSafariとOperaである。他のブラウザでもコーディングやビルドなどは普通にできるが、自動的な画面の切り替えやリモートデバッグなど細かい所が対応していなかったりするので、推奨ブラウザでの使用をおすすめする。

■Pebble Appstoreの登録シーケンスは親切設計

 作成したアプリケーションは開発者用ポータルサイトから登録できる。

Pebble Developers(外部サイト)

Pebble

 今回の記事を書くために実際にアプリケーションを1本作成して公開してみたが、入力項目が不足しているとエラーを表示してくれるので特に困ることはなかった。

Pebble

 登録されたアプリケーションはPebble Appstoreにすぐに反映される。ただし、iOS向けに関してはJavaScriptが使用されていると審査のために公開が1、2日待たされることがある。

 登録後はページの一番下でダウンロード数を確認できるようになる。

Pebble

 唯一困ったのはアプリケーションの紹介ページ上部に表示するヘッダーイメージの作成である。筆者は絵心が無いので結局は適当に作成したものをアップしてしまったが、すでに一定の評価を得ているアプリケーションのイメージなどは手が込んでいるものが多いので、それらと比較してしまうと少々複雑な心境になった。

■Pebbleのアプリケーション開発は選択肢の多さが魅力

 やはりPebbleのアプリケーション開発は開発環境やプログラム言語などの選択肢の多さが魅力であり、目的にあわせて選択できる所が良くできていると感じた。

 Webブラウザによる開発環境に関しては、触る前は実はネガティブな印象しか持っていなかったのだが、ログのトレース機能なども含めて良い意味で期待を裏切られた。やはりストレス無く開発環境に入っていけるのは良い。

 Pebbleのややプアに感じるスペックはどちらかというと組み込み系に通ずるものがあるので、“マイコン”や“ポケコン”といった単語に心踊るような方にもおすすめしたい。

 また正直な所、Pebbleの全ての機能を使いこなすには幅広い知識が必要になってくるが、段階的に学んでいけば“学習キット”として活用することもできるのではないかとも感じている。

 もし本稿でPebbleのアプリケーション開発に対する興味が湧いた方がおられたら、ぜひチャレンジして頂きたい。

■関連サイト
Pebble

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう