読者です 読者をやめる 読者になる 読者になる

Pebbleアプリ開発メモ

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

【Pebble】Random Deciderをリリースしました。

http://apps.getpebble.com/en_US/application/564334d7a566b5954200003e新しい職場で働き出した時は、今日のランチ何食べようかな〜って楽しみでした。でも3年も経つと決めることすらおっくうになりますよね。まずいもの食うのは嫌だし、うまいものはうまい…

【Pebble】【Watchface】時間帯ごとにアナログ/デジタルを切り替える

Pebbleをしはじめてしばらく経つのですが、相変わらずデジタル時計には慣れません。例えばですが、11時から会議で時計見たら10時58分だったとき、60-58であと2分ではなく、12度だからあと2分みたいな感じで認識するクセがついているのかと。少し前にデジタル…

【Pebble】透過pngを使用する

Photoshop等できちんと背景を透過にして書き出しても、通常の画像と同じように読み込むと背景が黒く塗りつぶされてしまいます。以下のようにすれば、背景が透明なBitmapLayerを作ることができます。 読み込み時にPNG with transparency形式に リソースを追加…

【Pebble】アナログ時計とデジタル時計の電池持ちの差

どうも電池持ちが悪かったのでwatchfaceをデジタルのものに変更して過ごしてみました。全然違いますね・・・。ちなみにデジタルは純正の日付+時間+分表示のものです。アナログ時計は電池持ち対策を入れたいところです。色々考えてます。

【Pebble】公式アラームアプリのようなUIを作成する(角丸+三角バージョン)

前回の記事で、NumberWindowを使わない数字ピッカーのようなウィンドウの作り方を掲載しました。pebble.hatenablog.jp今回は更に公式アラームアプリに近づけて、死角は角丸、選択されている桁には三角をつけて加算/減算ができることをわかりやすく示してみま…

【Pebble】公式アラームアプリのようなUIを作成する

以前に紹介したCurrency Converter。海外から買い物をする機会が多いので重宝してます。そもそも作ろうと思ったきっかけは、ストアにいいUIのコンバーターがなかったからでした。 Currency ConverterのUI 公式のアラームアプリのような、中心のボタンで桁を…

【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); というように切り替えることが出…