Pebbleアプリ開発メモ

Pebbleアプリ、Watchface開発のメモを残していきます。

2015-09-01から1ヶ月間の記事一覧

【Pebble】atofを使うとビルドできなくなる問題の対処法

atof使うとビルドが通らないので自分で作ります。 atof2.h float atof2(const char* s); atof2.c float atof2(const char* s){ float rez = 0, fact = 1; if (*s == '-'){ s++; fact = -1; }; for (int point_seen = 0; *s; s++){ if (*s == '.'){ point_see…

【Pebble】ストア登録用のアニメーションgif画像を簡単に作成する

ストアでアプリを販売開始する時スクリーンショットを最大5枚まで登録できるのですが、Pebbleではアニメーションgif画像も登録できます。実際のアプリが動作するフローを見せることができますので、静止画と比べて何倍も訴求効果が期待できます。これまではF…

【Pebble】Cloud PebbleでPebble Time Round用アプリの開発/デバッグ

Cloud Pebbleの現在のバージョンではターゲットにChalk(Pebble Time Round用)が含まれていません。beta版のCloudPebbleにアクセスすることで開発が可能になります。https://beta.cloudpebble.net/ide/ドキュメントやサンプルは以下から。developer.getpebble…

【Pebble】Currency Converterをリリースしました。

http://apps.getpebble.com/en_US/application/560914f0364a06a88100004d良さ気なUIのが無かったので作ってみました。NumberWindowを使うとパパっと出来そうだったのですが、一つのWindowに複数使っているサンプルがなかったのでTextLayerを使って自作しまし…

【Pebble】郵便番号検索をリリースしました。

http://apps.getpebble.com/en_US/application/5604ff2e2c4b3ca81100002cまだストアになかったのでパパっと作って出しました。アプリを起動すると現在地から近い町名いくつかと郵便番号を表示します。こういうど忘れしがちなものを時計で表示できるのはいい…

【Pebble】バッテリーの情報を取得する(常時/1度だけ)

バッテリーの情報を取得するサンプルです。 常時モニターしたい時 static void handle_battery(BatteryChargeState charge_state) { if (charge_state.is_charging) { // charging } else { // not charging } APP_LOG(APP_LOG_LEVEL_DEBUG, "%d%% remains",…

AppMessageにパラメーターを付与して実行

AppMessageにパラメーターを付与して実行したかったのですがちょっとハマったのでメモ。 呼び出し // Begin dictionary DictionaryIterator *iter; app_message_outbox_begin(&iter); // Add a key-value pair dict_write_uint8(iter, 10, 100); // key:10, …

【Pebble】ジェスチャー(振られたこと)を感知する

http://apps.getpebble.com/en_US/application/55f22f9c5521a8c25e000038現在リリースしているWatchface「Most Visible Analog」は一定時間ごとに現在の時間/直近12時間程度のサマリーを切り替えて表示しています。また、サマリーに関しては文字数が多いため…

【Pebble】設定完了後の再読み込み

設定完了後はデータを書き込んでinitを呼びたくなりますが、これをやると見た目は再起動されたように見えても中のハンドラとかがぐちゃぐちゃになってエミュレーターが起動しなくなったり、インストールすらできなくなったりします。initはコード中には書か…

【Pebble】データの永続化(App側・PebbleKit JS・サーバー側)

データの永続化には3種類あります。Cで書くと時計に、PebbleKit JSファイルに書くとローカルのlocalStorageに、設定ページに書くとwebViewのlocalStorageに保存されます。ユーザーに設定をさせてそれをCやPebblekit JSから読みたいときは渡ってきた設定ファ…

【Pebble】タイマーを仕掛けて処理を遅らせる

処理を遅らせたい時や、時間毎に繰り返し実行したいときはAppTimerクラスを使います。 static AppTimer *timer; ・ ・ ・ timer = app_timer_register(500, someMethod, NULL); // セット app_timer_cancel(s_timer); // キャンセル

【Pebble】文字列の扱い

文字列の扱い方です。純粋なCは10年ぶりくらいなので色々忘れていました。メモ。 初期化、代入 static char buff[32]; ・ ・ ・ if(condition) { snprintf(buff, sizeof(buff), "%s", buff); } else { snprintf(buff, sizeof(buff), "%s", ""); } 空の時はち…

【Pebble】ビットマップの表示/非表示を切り替える

例えば充電中であることを示すアイコンを表示したい時、情報を取得して表示/非表示を切り替える必要が出てきます。そういう時は、 layer_set_hidden(bitmap_layer_get_layer(s_charge_layer), !charge_state.is_charging); というように切り替えることが出…

Pebbleアプリの開発環境

Pebbleアプリの開発環境ですが、自分はCloudPebbleを使っています。 ブラウザからPebbleアカウントでログインすればすぐに使い始まられますし、シンタックスハイライトや補完も効くのでかなり便利&お手軽です。 エミュレーターも付いていて、ワンクリックで…