Pebble
http://apps.getpebble.com/en_US/application/564334d7a566b5954200003e新しい職場で働き出した時は、今日のランチ何食べようかな〜って楽しみでした。でも3年も経つと決めることすらおっくうになりますよね。まずいもの食うのは嫌だし、うまいものはうまい…
Pebbleをしはじめてしばらく経つのですが、相変わらずデジタル時計には慣れません。例えばですが、11時から会議で時計見たら10時58分だったとき、60-58であと2分ではなく、12度だからあと2分みたいな感じで認識するクセがついているのかと。少し前にデジタル…
Photoshop等できちんと背景を透過にして書き出しても、通常の画像と同じように読み込むと背景が黒く塗りつぶされてしまいます。以下のようにすれば、背景が透明なBitmapLayerを作ることができます。 読み込み時にPNG with transparency形式に リソースを追加…
どうも電池持ちが悪かったのでwatchfaceをデジタルのものに変更して過ごしてみました。全然違いますね・・・。ちなみにデジタルは純正の日付+時間+分表示のものです。アナログ時計は電池持ち対策を入れたいところです。色々考えてます。
前回の記事で、NumberWindowを使わない数字ピッカーのようなウィンドウの作り方を掲載しました。pebble.hatenablog.jp今回は更に公式アラームアプリに近づけて、死角は角丸、選択されている桁には三角をつけて加算/減算ができることをわかりやすく示してみま…
以前に紹介したCurrency Converter。海外から買い物をする機会が多いので重宝してます。そもそも作ろうと思ったきっかけは、ストアにいいUIのコンバーターがなかったからでした。 Currency ConverterのUI 公式のアラームアプリのような、中心のボタンで桁を…
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); というように切り替えることが出…