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

PebbleのWatchFaceを作ってみた

去年、PebbleがFitBitに買収されてたので、在庫が無くなる前にPebble Time Roundを買った。 今までは、Pebble Timeを使っていたんだけど、四角いし厚いしいまいちオシャレじゃないなーと思ってたのでよい機会。

毎年、正月休みに新しい何かを触ってみようと思っていて、去年はSwiftでTODOアプリを作り、TravisCIでビルド(ココが一番時間かかった記憶がある)した。ので、今年の正月休みはPebbleのWatchFaceを作ってみた。

公式のチュートリアルをなぞっただけで、特別なことはやっていないんだけども、デザインを自分で考えるのは楽しい。機能としては、日付け、時間、天気、気温、電池残量を表示するだけ。

CloudPebbleを使って開発したんだけれども、これが結構よくできていて、コーディングからビルド、エミュレータの起動、gitのコミット・プッシュまで出来る。 でも、ブラウザアプリはキーバインドが衝突したり、ブラウザバックしちゃったりするのが嫌いなので、nativefierというツールでデスクトップアプリ化した。 フレームレスウィンドウが好きなのでついでに、クローンしてパッチを当てた。

f:id:ringo6119:20170109174157p:plain

WatchFace側はC言語、アプリ側?はJavaScriptで書いた。C言語のほうがロウエナジーだってどこかに書いてあったからそうしたけど、計測はしてない。

TravisCIでビルドしてGitHubのリリースに置こうと思ったけど上手く動かず。python2系とnpm3系が必要でインストールとか面倒くいので別の機会に。 ビルドするためのdockerイメージも作ろうしたけども同じ理由でまた今度。

反省点じゃないけれども、やってみたいことが色々出てきた。

  • OpenWeatherMapは精度が悪いので、Yahoo天気とか何かにしたい
  • 設定画面でAPIトークンや、天気機能のON/OFFを切り替えたい
  • 色を変えられるようにしたい
  • font-awesomeを使って天気や電池、接続情報をアイコンで表現したい
  • 同じようなことをやっているコードのリファクタリング・抽象化

f:id:ringo6119:20170109174230p:plain

いやー、C言語って難しいね。

References