たゆたふ。

定まる所なく揺れ動き、いろいろやってみたメモ。など

tingbot アプリを公開してみた

この所、ちょっと前に届いた、tingbotで遊んでいる。
ひととおり機能を試したので、アプリを作ってみた。

作ったのは天気予報を表示するアプリ。
どこかの API から天気予報を取ってきて、それを表示するだけ。 出かける前に傘が必要かどうかが分かる程度でも便利かなぁと。

サクッと実装

とりあえず、情報源として天気予報 API を探さねばとぐぐってみると OpenWeatherMap が見つかった。 3 時間単位で予報が取れ、詳細なのだが、海外のサービスなのでデータはすべて英語。 また、API を利用するためにはアカウントを作って、API Key を取らないといけないのがちょっと面倒。 アプリをダウンロードした人にもこの面倒をお願いすることになる。 更に天気予報を取得する都市コードを探すのもちょっと面倒そう。

無料で、使用制限が緩くて、登録など不要で使えそうな API で、できれば日本語の API ということで探してみた。 どうもWeather Hacks - livedoor 天気情報 くらいしかなさそうだった。
降水確率が含まれないのは残念だが、手軽さを優先して今回はこれを採用。

Python でコードを書くのは久々なので思い出しながら、作ってみた。

見栄えを変更

最初のデザインはこんな感じ。いたってシンプルな表示。

Weather Hacks - livedoor 天気情報API では アイコンの URL も含まれているので、画面に表示しているのはそのアイコン。 でも、画像サイズが小さく、これ以上拡大して表示すると粗さが目立ってしまう。 文字を読まなくても絵を見てわかるほうが、離れたところからも確認できるだろうと 思ったので、もっと大きく、わかりやすく天気を絵で表示できるようにすることにした。

ライセンスフリーのアイコン集とかを探してみると、天気アイコンをフォントとして公開しているものもあることに気がついた。 フォントのほうが、大きさや色を自由に調整できるのはと思い、天気フォントを探すことにした。

良さげなのは次の 2 つ。

前者は各天気がひとつづず 1 文字に割り当てられたもの。 後者は天気要素をばらして文字にしており、必要に合わせて組み合わせて使うもの。

後者のForecast Font は太陽はオレンジ、雲はグレーと塗り分けられ、それらを組み合わせて ひとつのアイコンを作れそうなのが良いなぁと思い、採用。

次はフォントを組み合わせて各天気に対応したアイコンを作っていく作業。 やってみて思ったのは、外国には「晴時々雨」とか「雨のち曇」っていう表現はないのかな?ってこと。 もともとの API で取れる天気予報には例えば「雨時々晴」という予報があり、それに対応した天気アイコンが用意されているが、 いろいろ見た天気フォントにはそのようなどっち付かずの状態を表すようなものがなさそうだった。
このような表現は日本特有なのかな。 などと思いながら、少々面倒だったが、API が返す 30 種類の天気それぞれにフォントの組み合わせを実装した。

そして公開

さて、ひととおりできたので、公開してみようとマニュアルで方法を確認する。 tingbot では The Tingbot Oceanというサイトで、tingbot アプリを募って公開している。

ここに自作アプリを公開する手順は次の通り。

  1. 楽しい or 便利なアプリを作る
  2. アプリのソースに icon.png と言う名前でアイコンを追加する(なくてもアプリを実行はできる)
  3. 更にapp.tbinfoという名前でアプリ名や作者、Web サイトなどのメタ情報をつける
  4. ソースを Github に push する
  5. The Tingbot Oceanリポジトリにある ocean/apps.yamlに公開したいアプリの情報を追記して、プルリクを投げる
  6. マージされるのを待つ

で、マージされれば、The Tingbot Ocean に次の様に公開される。 登録の仕方が、なんとも手作りな感じだが、PR して中一日くらいでマージされた。

日本語を表示するアプリでは最初の公開かな。