CliphWeatherの設定画面をちょっと改善しました。
そう。
ちょっとのつもりだったんだけど、
思いの他、ドキュメントが少なくて大苦戦。
只今、AM3時です。
ようやく↓の記事を見つけて何とか実装完了!
http://android.roof-balcony.com/view/listview/custom/
先人の知恵に感謝!!
さあ、寝よう。
やれやれ。
まだまだ勉強が足りんな。
URLconnectionにタイムアウトの設定
がほぼ必須とは知らなかった。
と、言う事で、
短めのタイムアウトを設定して、
電波の悪いところでは処理を正常に失敗させる様改善。
これで行けるだろ!
明日の地下とエレベータが楽しみだぜ。
よしよし。
当初予定していた更新系の再構築はほぼ完了。
後は持ち歩いていろんなとこで検証するだけ。
後は、新しく見つけた天気情報XMLのパース処理と、
それに合わせたデザイン変更。
それと天気画像の制作。
後の作業は楽しいもんばっかだな^^
ここまでの作業は結構すり減ったから、
息抜きにちょうどいい^^
ちなみに、
今回はお天気画像を自前でデザインします。
って言っても色んなアイコン画像を参考にしながらだから、
ほぼぱくりだけど^^;
これもある種マッシュアップだよね!(違う?)
で、画像の制作はフリーの画像処理ASP「aviary」を使います。
これね。ほんと凄いよ。なんでタダなの?って感じ
俺レベルが使うには十分すぎる。
Illustratorとかもういらないんじゃないだろうか。
(俺は欲しくても買えないんだけどね。)
興味ある方はこちらです。
aviary
この週末は久しぶりにパソコンに噛り付いて過ごしてしまった。
土曜日に奥さんが子供連れてお出かけしてたのがそれに拍車をかけて、
金夜から含めると結局20時間くらいコーディングしてたんじゃないだろうか。。。
でも、その甲斐あってandroidでのSQLiteの使い方が結構分かってきた。
後、今までのAppWidgetProviderの使い方があまりよろしくなかった事も判明。
今まではAppWidgetProviderで直接XML取得のhttp通信から、
XMLのパース、ウィジェットの更新まで一連の処理を行っていたんだけど、
そもそも、AppWidgetProviderはBroadcastRecieverを継承したクラスなので、
時間の掛かる処理には向かないのだそうだ。
今まで、Homeに戻るときに不安定だったのはこの辺が原因の様な気がする。
そんなこんなで、CliphWeatherの処理を抜本的に組み替えようとしてます。
現状の問題点は以下の通り。
・起動時、Homeに戻った際等に強制終了する事がある(前回の暫定対応でやや改善)
・朝の気温、降水確率などが昼以降の更新で消えてしまう。
⇒XMLソースに入ってこないから。
・通信状況によって挙動が不安定
⇒通信なし状態は前回暫定対応で改善。途中で切断されるケースではまだ事象再現。
これを改善する為に以下の通り変更しようと取り組み中。
・XMLを取得・パースするのはバックエンドのサービスが担当。
・パース結果はSQLiteのDBに格納
・http通信にタイムアウト制御を追加
・AppWidgetProviderはSQLiteから当日~5日分のデータを取得して
ウィジェットを更新する処理に特化(通信は行わない)
⇒DBに該当データが無い場合は、サービスにデータ更新を依頼(Intent)
この仕組みで一応見かけ上、動作するところまでは辿り着いたんだけど、
今日フィールドテストして見てると以下の問題点が、、、
・回線の弱いところで更新中に強制終了が起こった
・天気情報の差分更新が上手く行っていない
⇒何故か、最高気温の方まで消えてる、、、
やれやれ。
やっぱり、端末上でデバック出来る様に、
ログチェック機能をつけようかな。
でも、あと少しだ!!
今週中にケリつけるぞ!
しかし、こう安定稼動を求められる様になって来ると、
全端末持ってないと厳しくなってくるな。
100円くらい課金したら一発で全機種揃うんだけどな~
払わないよね^^;やっぱり
ふう。
思ったより大手術だぜ。。。
結局今日10時間くらいコーディングしてるわ。
でも、ちょっと目途が見えてきた。
後は、キャッシュを消すタイミングを考えるのと、
デバッグ!
あー、いっぱいバグ出るんだろうな~
CliphWeatherに天気情報キャッシュ機能を付けようと思って、
Android組み込みDBである、SQLiteの使い方をお勉強。
何とか、
テストアプリの動作が想定通りできた。
後は、都道府県、地域情報にユニークIDを振って、
天気情報更新サービスを改修。
ウィジェット更新アプリもSQliteから読みだすように改修。
。。。やる事いっぱいだな~
とりあえず、飯食おう
やばい!
GAE/Jに浮気していたら、
CliphWeatherが大変なことになってる!
まず、ダウンロード数が5,000件を超えてしまった。。。!
明らかにExperia効果だね。
うれしいけど。ちょっとビビった^^;
それに伴って、
不具合についてのご指摘を頂く事が多くなって来た。
端末の再起動時や、HOMEへ戻った時にフリーズしたりする事が
結構あるらしい。
自分で使ってる分にはあまり気付かなかったんだけど、
ウィジェットや常駐サービスを複数設置してる方はそうなのかも。
ま、ぶっちゃけそう言う安定稼働の配慮って
あんまり出来てなかったは事実なんだよね。
と、言う事で、
本日少しだけ更新しました。
まず、更新時のHTTP通信が失敗した場合にちゃんと処理を終了させる様にしました。
(そんな事もやってなかったんですね~^^;)
それから、端末が起動した時に「更新」→「タッチ操作準備」→「タイマー設定」をしてたんですが、
「更新」でつまづくケースがあって、その場合、タッチ操作もアラームも動かないので、
お飾りウィジェットになってしまっていました。
そこで、とりあえず処理の順番を
「タッチ操作準備」→「タイマー設定」→「更新」
と組みかえました。
これによりタッチ操作が効かなくなる事はかなり減ると思います。
また、端末再起動時の処理も見直しました。
従来は通常の更新と同じ処理を再起動直後に走らせていましたが、
どうも、これが早すぎるようなので、1分後のタイマーを設定する処理に切り替えました。
これによって、私の端末では再起動時のフリーズ症状は出なくなりました。
後、気になっているのは、
電波が入らない所で更新を行ったとき、
途中で通信が途切れたときの挙動がどうなっているか。
地下鉄乗ってる時とかに実験して見ようと思います。
それはそれとして、
近いうちに、メジャーバージョンUPもやろうと思うので、
またちょっと忙しくなりそうです^^
なんだかんだで、
俺チャット大好きだわ。
昔、ネットゲームしてる時も、
冒険も楽しかったけど、しゃべりのウェイトが大きかったもんな。
てことで、
アメーバピグ結構たのしい^^
欲を言えば、もう少しフィールドを広くして欲しいけどな。
コミュニケーションのインターフェースは悪くない。
オシャレや、アクションも楽しくて、
今にもアメG購入してしまいそう。
課金のポイントが上手いんだよね。
基本的にはコミュニケーションだから、
無料で楽しめるんだけど、
人よりちょっと目立ったり、面白い事しようと思うと金がかかるって言う、
かなり考えられたバランスで作られてると思う。
今のところ、だいたい一日に2人くらいの人と話せてるかな。
うーん。
プログラミングが止まってしまいそうだ。。。