カレアラ

カレアラが予定時刻に鳴動しない謎、のその後

カレアラが予定時刻に鳴動しないことがある、という問題に関し、利用者の方に協力を頂いて調査しました。昨日問題が再現したとの連絡があり、その方だけから送ってもらっているログを確認したところ次のことが分かりました。

  • クラッシュ系の問題ではありませんでした。特定の端末に偏って見られる、サービスが殺された系の問題でもありませんでした。クラッシュしていないのに、鳴動していませんでした。

  • ログの解析結果から、ソースコードを見直したところ、鳴動時刻に他の処理を優先し、鳴動処理をスキップしてしまう穴があることが分かりました。この穴にはまるかどうかは自動更新間隔の設定とカレンダーの予定のパターンに依存します。


少なくとも謎の現象を起こす1つの問題は対策できました。(今回の問題はこれで根治されることを願っています。)ご協力頂いたユーザー様にはとても感謝しています。問題追跡で助けてもらえなかったら、これはずっと謎のままでした。

 

カレアラが予定時刻に鳴動しない謎

カレアラ利用者の方から、たまに予定時刻に鳴動しない(カレアラの画面も開かない)という報告があり、その謎の解明のためにカレアラに仕掛けを入れました。その方に協力を頂いて、問題の現象が起きた時にどうなっているのか手がかりを得ようとしています。

カレアラのクラッシュレポートには未解決の困ったことが数パターンあるのですが、その1つがサービスが殺された(と思われる)ことによるものです。特定の端末に偏っているのですが、定常的にそのパターンのレポートが上がります。タスクキラーを疑っているのですが、真実は分かっていません。で、上記の問題ではタスクキラーはアンインストールしていること、鳴動しなかった日時のクラッシュレポートがないことから違う理由かなと思っています。まず、この鳴動しないことがある、という問題を解決したいです。

 

カレアラの通知画面

Androidの流儀では、メールの着信とかカレンダーのイベントなどによる通知は、Notificationという専用の仕組みを使うのが良いとされています。ステータスバーにアイコンが表示され、通知エリアを引っ張り出して該当するところをタップするとアプリが開くようにします。カレアラだと予定の時刻になった時に鳴動しますが、鳴動を止める操作はこの通知エリアを開いて行うのが良い設計です。逆に、いきなりカレアラの画面が鳴動と同時に開くようにするのは、良い設計ではないと言われています。Androidアプリ開発者の間で有名な CommonsWare 氏は特にそういう主張をしています。が、実際のユーザーの中にはその良い設計では(鳴動を止める操作が)めんどくさいと感じる人がいるようだったので、ある時から鳴動を停止できる画面がいきなり開くようにもできるようにしました。

前フリが長くなりましたが、その画面の見栄えを改善しました。変わったのはボタン部分です。電話を受ける時のボタンみたいな動きをします。(同じではないですが。)



最初からこういう趣の画面にしたかったのですが、ボタンを引きずるとボタンが伸びるようにする方法が分からず、こういうボタンの実装例がネットで見つからなかったので、適当なのでごまかしていました。その後、別のアプリの開発で覚えた方法を使って、これが出来るようになりました。

 

スペインのユーザーのコメント

カレアラの有料版へのコメントに、★2個で次のがありました。

Alarma La alarma debería activarse automáticamente

英語でないのは分かりましたがどこの国の言葉なのかは分かりません。もちろん意味も。で、Google翻訳に入れるとスペイン語のようです。翻訳結果は、

アラームが自動的にあるべき驚かす

と全く意味不明。英語ならと期待するも

Alarm The alarm should be automatically

と意味不明のまま。★2個なので不満なのは確かだと思いますが、意味不明なので何もできません。

 

アラームが鳴らなくてお怒りでしたら

カレアラのアラームが鳴らなくてお怒りでしたら、メールでご連絡下さい。対応します。

一般的な手順としては、まず、鳴動テストで鳴るかどうか調べます。選んでいる音源データーによっては無音だったり、カレアラでは再生できないものだったりします。これは、この鳴動テストで分かります。

鳴動テストでは鳴るのに、予定の時刻にアラームが鳴らない、という場合はまず予定リストを確認します。予定リストになければ鳴りません。予定リストにあるけども鳴らない場合、「通知画面の自動表示」を「自動では開きません」にします。それで鳴るなら、現象の解析が必要です。それでも鳴らない場合、タスクキラーを疑います。カレアラを殺してはいないでしょうか。

・・・Android Marketのコメントを見て困っています。心が折れそうです。