2011年3月21日月曜日

地震情報の改善メモ

v0.5.0で地震情報を追加してから、以下のようにバージョンアップを重ねています。
3/12:v0.5.0
3/13:v0.5.1
3/16:v.0.5.2
大地震の影響で思ったよりもいろいろな修正を加える必要がありましたので、備忘録の意味も含めてその過程を記しておこうと思います。(以前のブログとの重複もあります)



まず、3月上旬に通知履歴画面の改善をしてから地震情報画面の作成をしていました。
気象庁のホームページの地震情報にはいくつかのカテゴリがあります。その中で「各地の震度に関する情報」が最も情報量が多いので、このページから情報を取得することにしました。
また、ただの一覧では面白くないので、一覧からリンクしている詳細画面の文字情報(「どこそこで震度X」といった情報)を取得し、[詳細]ボタンから表示できるようにしました。
3/10時点ではほぼ完成しており、週末に公開しようと考えていました。

■v0.5.0:地震情報を追加
そんな矢先、3/11(金)に地震が発生しました。
中途半端な状態で利用されても混乱を招くだけかと思ったのですが、表示内容に問題はありませんでしたので、何かしらの役に立てればとリリースする事にしました。

■v0.5.1:性能改善と震度速報
v0.5.0は2つの問題がありました。
1つ目は、「各地の震度に関する情報」は更新が遅い点です。
2つ目は、最新情報の取得に時間がかかる(数分)点です。
1つ目についてです。
気象庁の地震情報の公開の流れとして、「緊急地震速報」→「震度速報」→「各地の震度に関する情報」となっています。(詳細は気象庁ホームページを参照してください)
今回のような大地震では「各地の震度に関する情報」の更新に数時間かかっています。
「震度速報」の更新もそれほど速いとは言えないのですが、今回のような災害の場合、「各地の震度に関する情報」のみでは役立たずになってしまいます。
そのため、「震度速報」も見えるように改善しました。
2つ目についてです。
v0.5.0では地震情報の更新時には一覧のページと、そこからリンクされる詳細ページから情報を取得していました。
そのため、一覧ページ(1ページ)+詳細ページ(地震回数分ページ)分の通信を行う必要があります。
一覧ページには約1週間分の情報が記載されおり、普段は20〜30個の地震が記載されています。
しかし、3/12の時点で地震の数が200を超えていたため、1回の更新に数分かかる状態になっていました。
そのため、更新時は一覧ページのみ取得し、[詳細]ボタンクリック時に詳細ページの取得を行うように変更しました。
現時点でも地震の数が多いため、更新には少し時間がかかりますが、v0.5.0よりは格段に速くなっています。

■v0.5.2:通知に関する改善
この手のアプリ開発者はだれでも悩むところだと思うのですが、自動更新のサービスをいつ起動するかと言った問題があります。
私のアプリでは以下のタイミングでサービスを開始するようになっています。
・アプリインストール後の初回起動時
・アプリバージョンアップ後の初回起動時
・電源ON直後
・自動更新時刻を過ぎたタイミングでアプリを起動した時(サービスがおかしくなってしまった場合の対応)
これまで自動更新の対象となっていた天気、アメダス、警報は地域を登録しないと実際の処理は行われないため、アプリインストール直後のサービス起動は次回起動時刻を設定するだけで実際には何も行っていません。
しかし、地震情報は地域設定が不要なため、アプリインストール直後のサービス起動時に地震情報が更新され、最近の地震多発も重なって大量の通知がされるようになっていました。
この点はコメント等でも指摘されています。
また、アプリインストール直後にはマスタテーブルの作成も行っているため、このタイミングでの自動更新でDB更新エラーが発生する問題もありました。
v0.5.2ではこれらの問題を改善しました。
まず、サービスの起動タイミングですが、起動タイミングは変更せずに、1回目の処理では実際の更新処理を行わず、次回起動時刻を10分後に設定するだけに改善しました。
次に、地震通知期間の設定を追加し、設定期間以内(デフォルトは1日以内)の情報を通知するように改善しました。
また、v0.5.1では地震通知は情報発表単位で行っていましたが、地震発生単位で行うようにしました。
気象庁が地震を発表する際に、情報発表日時と地震発生日時を付与して発表しており、同一の地震でも発表の内容を修正する度に複数回発表されることがあります。
同じ地震発生日時の通知は上書きして通知するように修正しています。
(まれに、同一と思われる地震が異なる地震発生日時で発表されている事があり、その場合は上書きされませんが)

想定外の地震でss天気予報も想定外の修正が必要となりましたが、結果的にはより良い形にできたかと思います。

0 件のコメント:

コメントを投稿