「ステュディオス」な生活

「ステュディオス」=何かを面白がり、熱中することにより生き生きしている状態。 日々の「ステュディオス」を求めて…

tingbot アプリを公開してみた

f:id:HeRo:20161011225300p:plain

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

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

サクッと実装

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

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

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

見栄えを変更

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

f:id:HeRo:20161011231152p:plain

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して中一日くらいでマージされた。

f:id:HeRo:20161012010437p:plain

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