SurfTide7 for Android 新しいウィジェット追加予定

Screenshot_2016-06-24-14-29-09.png

タイドウィジェットに加えて、波情報(天気や風や波)をリアルタイムで表示するウィジェットを作成中です。現時刻より6時間先までの1時間毎のウェザー情報をウィジェットの表示します。
ほぼ出来上がってて、こまかなタイミングや挙動を調整中です。早ければ今月中にもリリースしようかと思ってます。
天気関連のウィジェットは数あれど、波情報に特化したウィジェットは他には無いのではと思います。(まぁたいして調べてませんが…)

リアルタイムといってもウェザー情報そのものは1日に4回程度しか更新されてないようなので、今回はタイマーを仕掛けずに、ウェイクアップをトリガーにして、所定時間を経過していればサーバに問い合わせるようにサービスプログラムを書いています。
実際は、スリープ後次にウェイクアップしたとき30分経過していればまずキャッシュをチェックします。キャッシュが3時間を経過していればサーバに最新データを問合せます。サーバでもキャッシュしているので、リクエストがきてもキャッシュが有効(6時間はサーバキャッシュ)ならキャッシュを戻し、キャッシュが無効ならサービス先である「WorldOnlineWeather」へ最新データをリクエストします。

「こんな面倒なことせずに、毎回問い合わせちゃえば良いじゃん!」と思うかも知れませんが、クライアントに負荷(通信処理はバッテリーも消費しますし)かけないようにするためと、1日にリクエストできる回数がサービスを受けているウェザー情報サービスで制限されているので、なるべくムダな通信をさせないようにするためです。

アプリ側のウェザー情報取得もほぼ同じようなプロセスで動いていますが、そちらは明示的にアプリのキャッシュをクリアすることが出来るので、サーバへのリクエストタイミングをサーバキャッシュの有効時間と合わせて長めに設定しています。