2012年8月24日金曜日

[SwipeStarter]バグかぁ。


まぁ、バグって思うよね。
でも、たぶん、おそらく、プログラムじゃどうにも出来ない問題もあると思うんだ。

■設定が消える
設定はAndroid標準の設定ファイルとデータベースの2種類で保存しています。
設定画面の内容はAndroid標準の設定ファイルで、フォルダの中身とかドロワーのフィルタとかはデータベース。
たぶん設定画面の事と想像。
で、消えるって言う表現が良く分からないんだけど、たぶん設定が全部ぶっ飛んでるんだと思うんです。
たとえば、「この設定だけ毎回書き換わる」とか言うのであればバグだと思うし、全員なるはずだから。
で、ぶっ飛んでると仮定して、ぶっとぶ可能性は何があるかなぁというと
・設定保存中にプロセスを消されたり(タスクキラーとか)
・設定保存中に電池ぶっこ抜いたり
・設定保存中に・・・・
って言うことだと思うのね。
このアプリは非同期保存はしていないので、設定画面作業中になんかした場合かなぁ。
Android標準の設定ファイルはXMLっていうテキストファイルなんだけど、設定を保存する=ファイルの読み書きが行われているって事なのね。
ファイルの読み書きが遅い端末の場合、保存中に・・・って事が起こりやすくなる。(と思っている)
たぶん、このアプリに限らず、設定が多めのアプリではなりやすいかなぁ。

なるべく設定中の問題がおきないようにはしてるんだけど、やっぱ100%って訳にはいかない。
手動で削除できないように、アプリ履歴に表示させない。
その代わりアプリ内で確実にプロセスをキル。
でも、プロセスとしては動いてるから、そういうアプリ使えば見えちゃうのね。

と言うことで(ぜんぜん解決していないけど)、対応方法は「設定中はなるべく安静にしてね^^」です。

※あくまでも僕の想像です。
 動作的にそういう動きじゃねーよと言うことが有ればご報告ください。

解決方法として、設定ファイルを小分けにしてファイル読み書き速度を上げるってのも考えられるんですが、ちょっと大掛かり過ぎるので、時間ががっつり空いてからかな。


■買ったはずの・・
購入情報は上でいうところのデータベースとAndroid標準の設定ファイルの両方で管理しています。
コレは、何回も確認しに行かないように、認証情報をDBに保存していて、SwipeStarter側はAndroid標準の設定ファイルに保存しています。
で、アプリで見てるのはAndroid標準の設定ファイルの方なのでぶっ飛んでたら毎回表示されちゃうかな。
購入履歴ボタンで再確認すれば戻ると思います。


と、アプリ開発者が何とかできるバグ(プログラムに含まれる誤りや不具合)とそうでないバグ(端末や使い方による環境に依存した問題)があると思います。
アプリを購入してもらって(してなくても)使ってたら、なんかおかしな動きをする。
ユーザにとっては、それはすべてバグなんですよね。
私は良く分かっています。
でも、すべての要因がプログラムにあるわけではないという事も覚えておいて欲しいです。

携帯電話っていう身近で老若男女が使う物に、個人が作ったプログラムが簡単に乗る。
ココまでがものすごく簡単だから、アプリの問題はすべてアプリってなっちゃう気がする。
もちろん、プログラムバグもあったりすると思うけど、基本的にはプログラムバグは全員同じ現象が起こらなければならない。※基本的にはね!違うこともあるよ

Androidって、同じOSバージョンにもかかわらず、端末によって違う動きをしたりする。
コレは、メーカーカスタマイズのせいだと思う。
メーカーカスタムのせいで動かなかった場合、それは環境依存バグでどうにも出来ない(どうにかできることもあるけど確認にものすごく時間がかかる)

あと、やっぱりパソコンみたいなもんだから、OS云々よりスペックも結構関係しそう。
※こんなこと書いたら低スペックマシンでもギャー、みたいな事言われそうですが、一応低スペックマシンでもちゃんといける様に考えてますよ。
 ただ、所詮プログラムでAndroid標準の設定ファイルの書き込み速度を上げるのは無理なので、と言う意味です。



と、言い訳みたいなことをだらだらと書いてみましたが、纏めます。

直せるバグなら直します!!!!
2行で状況を察するのは無理です!!!!

2 件のコメント:

  1. 設定ファイルにnullを書き込んだりすると論理的に壊れて読めなくなるよ。
    onActivityResultでインスタンス変数をputしてたりする?

    返信削除
  2. あ、そうか。
    インスタンス変数ぶち込んだりはしていないですけど、完全に論理破壊の観点漏れていました。

    これ、手詰まりかなぁと思っていたんですけど、もうちょっと見直してみます。
    ありがとうございます。
    感謝!!

    返信削除