DigiClock2 v1.0.2を公開しました。

v1.0.1ですが、本家サイトでなかなか公開されないと思っていたら、何と承認が却下されていました(ガーン)

で、却下された原因を調べてみると、どうやら起動時に時計が止まったまま動かないようなのです。どう動かないのかといった詳細は不明でしたし、実際普通に動作している状況下においては、どう対処して良いのか悩んでしまいましたが、却下されたからには何かあるに違いないと思って、とりあえずは検証作業を開始しました。

色々と検証していく中で、不具合は突然姿を現しました。それは、一度以上DigiClock2を起動したことがある状況において、OSの言語環境またはYahoo!Widgets本体の言語設定を変更した状態で再度DigiClock2を起動すると、輪郭線だけで塗り色がない状態のものが描画され、しかも時計は止まったままになっていました。おそらくこの状態が却下された状態と同じだと思われましたので、どうしてこうなったのか調べてみましたところ、すぐさま原因がわかりました。

まず、このウィジェットは日本語と英語の二種類の言語に対応しておりますが、例えば日本語環境で使用した場合、ウィジェットの環境設定ファイルに保存される設定値は当然日本語となりますが、この環境設定ファイルを英語環境で読み込もうとすると、プログラム上に該当する項目が無いので、適切な処理ができないというものです。

次に問題だったのは、選択肢がない場合にそれをどのように処理するかをあまり考えていなかった事です。僕としては言語環境を変更することは想定外の事でしたので、そこまで考えが及びませんでした。javascript的に言うと「switch文」に「default:」が必要だったのに入れ忘れていたり、あるいは「if文」に「else 〜」が欠けていたりといった感じです。

今回の修正では、前者の対策は放置して、主に後者の方で逃げ道を作っておいて、とりあえず対処することにしました。前者のほうに関しては、環境設定を定義するプログラムを工夫すれば環境設定に記述される言語を一本化できると思われますが、それはまた次の機会にと考えております。

という訳で、今回のバージョンは言語環境における不具合の修正なので、言語環境を変更しない方は特にバージョンアップする必要はありません。

ということで、ダウンロードはこちらから。