2015-09-01から1ヶ月間の記事一覧
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…
ストアでアプリを販売開始する時スクリーンショットを最大5枚まで登録できるのですが、Pebbleではアニメーションgif画像も登録できます。実際のアプリが動作するフローを見せることができますので、静止画と比べて何倍も訴求効果が期待できます。これまではF…
Cloud Pebbleの現在のバージョンではターゲットにChalk(Pebble Time Round用)が含まれていません。beta版のCloudPebbleにアクセスすることで開発が可能になります。https://beta.cloudpebble.net/ide/ドキュメントやサンプルは以下から。developer.getpebble…
http://apps.getpebble.com/en_US/application/560914f0364a06a88100004d良さ気なUIのが無かったので作ってみました。NumberWindowを使うとパパっと出来そうだったのですが、一つのWindowに複数使っているサンプルがなかったのでTextLayerを使って自作しまし…
http://apps.getpebble.com/en_US/application/5604ff2e2c4b3ca81100002cまだストアになかったのでパパっと作って出しました。アプリを起動すると現在地から近い町名いくつかと郵便番号を表示します。こういうど忘れしがちなものを時計で表示できるのはいい…
バッテリーの情報を取得するサンプルです。 常時モニターしたい時 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にパラメーターを付与して実行したかったのですがちょっとハマったのでメモ。 呼び出し // Begin dictionary DictionaryIterator *iter; app_message_outbox_begin(&iter); // Add a key-value pair dict_write_uint8(iter, 10, 100); // key:10, …
http://apps.getpebble.com/en_US/application/55f22f9c5521a8c25e000038現在リリースしているWatchface「Most Visible Analog」は一定時間ごとに現在の時間/直近12時間程度のサマリーを切り替えて表示しています。また、サマリーに関しては文字数が多いため…
設定完了後はデータを書き込んでinitを呼びたくなりますが、これをやると見た目は再起動されたように見えても中のハンドラとかがぐちゃぐちゃになってエミュレーターが起動しなくなったり、インストールすらできなくなったりします。initはコード中には書か…
データの永続化には3種類あります。Cで書くと時計に、PebbleKit JSファイルに書くとローカルのlocalStorageに、設定ページに書くとwebViewのlocalStorageに保存されます。ユーザーに設定をさせてそれをCやPebblekit JSから読みたいときは渡ってきた設定ファ…
処理を遅らせたい時や、時間毎に繰り返し実行したいときはAppTimerクラスを使います。 static AppTimer *timer; ・ ・ ・ timer = app_timer_register(500, someMethod, NULL); // セット app_timer_cancel(s_timer); // キャンセル
文字列の扱い方です。純粋なCは10年ぶりくらいなので色々忘れていました。メモ。 初期化、代入 static char buff[32]; ・ ・ ・ if(condition) { snprintf(buff, sizeof(buff), "%s", buff); } else { snprintf(buff, sizeof(buff), "%s", ""); } 空の時はち…
例えば充電中であることを示すアイコンを表示したい時、情報を取得して表示/非表示を切り替える必要が出てきます。そういう時は、 layer_set_hidden(bitmap_layer_get_layer(s_charge_layer), !charge_state.is_charging); というように切り替えることが出…
Pebbleアプリの開発環境ですが、自分はCloudPebbleを使っています。 ブラウザからPebbleアカウントでログインすればすぐに使い始まられますし、シンタックスハイライトや補完も効くのでかなり便利&お手軽です。 エミュレーターも付いていて、ワンクリックで…