SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

技術系同人誌サークルとのコラボ企画! 編集部特選ニッチな技術記事

新モデル「Pebble Time」も発表され大注目のプロダクト、スマートウォッチ「Pebble」の基礎知識とアプリ開発入門

技術系同人誌サークルとのコラボ企画! 編集部特選ニッチな技術記事(1)

  • X ポスト
  • このエントリーをはてなブックマークに追加

Pebbleアプリ開発

 PebbleはSDKを公開しているため、ユーザはそれを使って自分の望むアプリを作りやすい環境にあります。後述しますが、クラウド上での開発も可能としているため、開発環境の導入であれこれ悩んでやる気ゲージが下がるのを防ぐこともできます。PebbleアプリはWatchappとWatchfaceの2種類があることは前述しましたが、開発する上ではWatchappとWatchfaceの区別はほとんどありません。大きな違いはボタン入力を取れるかどうかで(Watchappはボタン入力が取れます)、開発途中で値を1つ変更するだけで切り替えることができます。

 Pebble本体側で動作するコードはC言語、親機側はJavaScriptで書くのが一般的ですが、Simply.jsPebble.jsの登場で、Pebble本体側で動作するコードもJavascriptで書けるようになりました。ここでは、Pebble 2.xでのアプリを開発環境と、開発方法を主に取り上げたいと思います。

Pebble Timeとの互換性

 SDK 3.0が公開され、Pebble Time用のアプリも先行して開発できるようになりました。

 そうなると、SDK 2.9までを使って開発していたアプリはPebble Timeで動くのかどうか気になるところですが、今のところは、SDK 2.9を使って開発したPebbleアプリをリビルドをせずにファームウェア3.0を積んだPebble Timeでもそのまま動作するようになる「予定」のことです。まだあくまでも「予定」ですが、互換性は期待して問題無いと思います。

 Pebble SDK 3.0での変更点などは公式サイトを覗いてみてください。カラーの設定や、対象プラットフォームの指定(PebbleかPebble Timeか、またはその両方か)ができるようになったり、エミュレータに対応したなど更新内容は盛りだくさんです。

Pebbleアプリの開発環境

 Pebbleアプリの開発環境は大きく分けて2つから選択できます。1つはローカル、もう1つはCloudPebbleです。CloudPebbleはクラウド上で開発ができ、開発環境をローカルに整える必要がなくなるため、初めてPebbleアプリを開発する際にはCloudPebbleから触ってみることをオススメします。

 また、アプリ開発する際は、iPhoneやAndroidといった親機側にPebbleの公式アプリを事前にインストールして、開発者モードを有効にしてください。CloudPebbleとローカルのどちらで開発する場合も、同一LAN上に存在する親機に対してインストールの命令を送り、そこからPebble本体にアプリがインストールされます。CloudPebbleの場合には、勝手に同一LAN内にある親機を探索してインストールしてくれますが、ローカルの場合は親機側のIPを知っておく必要があるので、公式アプリ内から確認してみてください。

CloudPebbleとは

 Pebbleのアプリ開発をブラウザ上のIDEを使って開発することができるサービスです。クラウド上で開発するとなると、できないことも多々ありそうに思えますが、基本的にローカル環境でできることは、ほぼ全てできると思っても問題ないレベルで色々できます。以下にできることを列挙してみます。

  • Pebbleのスクリーンショットの撮影
  • ビルドログ、実行時ログの確認
  • GitHubとの連携
  • リソース(png画像やフォント)のアップロード
  • 入力補完方法の設定
  • キーバインドの設定(vim-likeやemacs-likeをサポート)
  • エディタのテーマの設定(EclipseやSolarizedなど)
  • プロジェクトをまとめたzipのダウンロード
  • ブラウザ上で動作確認可能なエミュレータ

 さくっと何か作る分にはこれ以上のものは無いと思います。

 また、CloudPebbleは2014年末にエミュレータに対応したため、手元にPebbleが無い場合でも開発やデバッグが可能になりました。キー入力も取れますし、バッテリー残量や給電中かどうか、Bluetooth接続は有効な状態かどうかなどのシミュレータもついていて、開発をサポートしてくれます。コンパスや加速度系は、スマートフォンなどの携帯機から専用サイトにアクセスし、コードを打ち込むことで携帯機のコンパスと動機してくれるようです(自分の手元でも試してみようと思ったのですが、うまくいきませんでした……)。

 2月末に公開された、Pebble Timeに対応したSDK 3.0でもエミュレータに対応したため、ローカル環境で開発する際でもPebble本体がなくても開発可能になりました。

Pebbleエミュレータのスクリーンショット
Pebbleエミュレータのスクリーンショット

ローカルでの開発環境

 ローカルに開発環境を整える場合は、Pebbleアプリの開発者用ページからPebble SDKをダウンロードして、解凍して中身を適当な場所に配置してください。

 今はSDK 2.9と3.0がダウンロードできますが、基本は3.0を使用して問題ありません(※4)。現在のPebbleのファームウェアはv2.9ですが、SDK 3.0はPebbleとPebble Timeのそれぞれに対応したPebbleアプリの開発ができるためです。

 LinuxやMacの場合は問題になりませんが、Windowsの場合はバーチャルマシンにUbuntuなどを入れてLinux環境を整える必要があります。自分はVirtualBoxにUbuntuを入れてLinuxユーザ向けの導入方法を見ながら開発環境を整えました。

注釈

※4 自分の環境では、SDK 3.0を使ってビルドしたアプリがファームウェアv2.9のPebble本体で動作することの確認はできました。もし、SDK 3.0でビルドしたアプリの調子が悪い場合には、一度SDK 2.9を使ってビルドしてみてください。

 SDKの中には結構な量のサンプルが入っているので、実装を見たり、動作確認をしてみたりすると良いと思います。例えば、SDKを入れてみた直後に動作確認をするために、サンプルの中にある適当なWatchfaceを入れてみたい場合には以下のようにしてみてください。今回は勝手に○☓ゲームを始めるWatchfaceを入れてログも確認してみます。コマンドラインツールに関しては、このサイトの開発者用ページにもまとまっています。

○☓ゲームを始めるWatchfaceを入れるためのコマンド
$ cd PebbleSDK-3.0-dp1/Examples/watchfaces/tic_tock_toe
$ pebble build
$ pebble install --phone 192.168.11.7<公式アプリで確認した親機のIPアドレス>

 成功した場合は、Pebble本体に○☓ゲームのWatchfaceが表示されると思います。pebble installで失敗した場合には、既にPebble本体に8つアプリが入っていないかどうか確認してみてください。Pebble本体にインストール可能なアプリ数は、開発中のアプリも含めて全体で8つまでなので、既に8つある場合にはどれかを1度ロッカーに戻す必要があります。

○☓ゲームのWatchface
○☓ゲームのWatchface

 Pebble SDKは3.0からエミュレータに対応したため、インストール先にエミュレータを指定することでPebble本体が無くても動作確認ができます。

$ cd PebbleSDK-3.0-dp1/Examples/watchfaces/tic_tock_toe
$ pebble build
$ pebble install --emulator basalt

 ここでの「basalt」は、カラー表示に対応したファームウェア3.0の名前です。Pebbleにはファームウェア2.9、Pebble Timeにはファームウェア3.0が搭載されます。ちなみにファームウェア2.9の名前はApliteです。basaltの代わりにapliteを指定すると白黒スクリーンのエミュレータが起動します。

 カラー表示できるようにサンプルの中をいじって、basaltのエミュレータで表示してみると少し楽しめるかもしれません。

カラー表示のエミュレータ
カラー表示のエミュレータ

それぞれの長所・短所

 ローカルでの開発とクラウド上での開発、両方とも軽くですがトライしてみた結果、それぞれの長所・短所が見えてきたのでまとめてみます。

ローカル
  • 長所
    • 自分の好きなエディタやIDEを使って開発が可能
    • ビルドや実行の待ち時間がクラウド開発に比べると早い
    • Pebble SDK 3.0からエミュレータに対応
  • 短所
    • 環境導入時に躓く可能性有り
    • リソースの追加時に直接管理ファイルをいじるため、事故が起きやすい
    • Windowsの場合はバーチャルマシンの導入が必要
クラウド
  • 長所
    • 導入が容易
    • ローカルに環境を整える必要が無くなる
    • 専用のアップローダページがあるため、リソースの取り扱いが容易
    • Pebble、およびPebble Timeに対応したエミュレータをサポート
  • 短所
    • サービスが落ちていてまともにコードを書けないときがある
    • ビルドして実行する際に、インジケータダイアログが最前面に出るため開発の手が止まる
    • 外部ライブラリを取り込む仕組みが無いためコピペが必要
    • 親機にビルド結果を流し込む時のログが不十分で、問題が起きた時に対処しづらい
    • 多くのイメージリソースを使う場合、一つ一つアップロードするのが少し面倒
    • GitHub連携をサポートはしているが、複数人で開発するのには不向き
    • 現在はBitbucketなど他のホスティングサービスを利用できない

 これだけを見ると「じゃあローカルで開発したらいいじゃない!」となるぐらい、クラウド側が不利ですが、個人的には最初はクラウドで作って途中からローカルに切り替えることを推奨します。移行時期は以下の目安を参考にしてみてください。1つ以上該当するのであれば、多少時間がかかってもローカルに開発環境を整えたほうが良いと思います。

クラウドからローカルへの移行時期の目安
  • クラウド上のIDEに耐えられないとき
  • 開発スピードが必要なとき
  • 外部ライブラリをバリバリ使う必要が出てきたとき
  • 複数人開発する必要が出てきたとき
  • GitHub以外のホスティングサービスを使いたいとき
  • Pebbleアプリの開発慣れたわー、というとき

 CloudPebbleで既にPebbleアプリを開発している場合には、CloudPebbleのSETTING画面にある「DOWNLOAD AS ZIP」をして、プロジェクトをまるごとzipで落としてくることで、ローカルでも同じ環境で開発を継続できます。

次のページ
Pebbleアプリの開発方法

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
技術系同人誌サークルとのコラボ企画! 編集部特選ニッチな技術記事連載記事一覧
この記事の著者

ぼぶ(ボブ)

 不規則な生活を送る系のエンジニア。 最近はガジェットや3Dプリンタ、モデリングに興味があります。 Twitter:@Bob_Mk2

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8485 2015/03/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング