工大シャトルバスアプリ アップデート Ver2.0-prev

そりゃもうVer2.0というもんですから、それなりのアップデートを用意しないといけませんよね?ない知恵振り絞ってがんばりました!

更新内容:

  • 次のバス画面で到着時刻が表示されるようにしました。
  • すべての時刻表画面でアラームセット前に確認メッセージが表示されます。
  • アラームセット前に確認メッセージを表示するか設定画面から変更できます。
  • 設定画面に開発者向け項目が追加されました。(現時点では機能しません)
  • Backup APIを追加しました。本体のバックアップが有効な時、再インストール時に設定データが復元されるようになります。(ちゃんと動いているかは未確認)
  • 他の画面から戻ってきた時に画面更新のタイミングがずれる問題を修正しました。

ただのシャトルバスアプリのくせに!

しかも金沢工業大学限定のアプリのくせに!

ソースコードも公開しているくせに!

 

ちなみにこのアップデートからAndroid1.6端末へのインストールが可能となっています。ただしちゃんと完動するかは不明です。お手持ちのHT-03AやIS01でどうぞお試しくださいませ。

 

de,

 

 

なんでprevかというと。

次のバージョンアップでprevがとれて2.00となる予定なのですが、先生から

「君卒業したらこのアプリどーなるの?」

と聞かれました。

まぁ卒業しても時刻表が変わったりしたのを誰かが教えてくだされば更新しようと考えていたのですが、

もういっそのことサーバーに時刻表データおいて更新があったらサーバーからダウンロードするカタチにすればいいんじゃね?ということになりました。

というわけでVer2.00では外見は全く同じなのですが、データがローカルからサーバーへと移行します。

つまり、このアプリにインターネット接続の権限の要求が追加されます。

正直権限の要求は面倒なので追加したくないのですが、まぁ自分のプログラムスキルを高めるという意味をこめてそういう仕様にしていきたいと考えています。

やっぱりローカルのままでやってほしい!という意見ありましたらコメントください。そっちのほうが私も楽ですので!

工大シャトルバスアプリ アップデート Ver1.9

ほんとに私ったらうっかりさん!

更新内容

  • アラーム正常設定時にもエラーメッセージが表示されていた問題を修正しました。
  • マナーモード時には音が鳴らないようにしました。
  • 設定からマナーモード時でも音を鳴らす項目を追加しました。

の3点です。

ソースコードも併せて公開中です。

実は1.8にはGC対策ともう一つとして、アラームが設定出来なかった時にエラーメッセージが出てなかったのをこっそり直していたのです。

いやねGC対策は実機でちゃんと検証していたのですが、Toast表示させるぐらい実機で確認しなくてもいいわー

 

 

友人「アラーム設定時にも出るんだけどなんで」

 

Σ(゚д゚lll)ガーン

たった1行else文を書かなかっただけの単純なミスでしたorz

 

もう一つはマナーモード時には鳴らないようにしました。

あ、まぁマナーモード時に鳴らしちゃったのはなんですけど(笑)

調べてみるとAndroidはマナーモードだからって音鳴らすという風に書けば音なる仕組みみたいです。

で、どうやって判別するかというのはAudioManagerというのを使うようです。

AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);

int ringMode = am.getRingerMode();

で、取得した値がどれかによってわかるようです。

RINGER_MODE_NORMAL: 通常モード

RINGER_MODE_VIBRATE: マナーモード

RINGER_MODE_SILENT: マナーモード+バイブも鳴らない

という住み分けだそうで。

私もこれに則って、マナーモード時にはバイブのみ、サイレント時にはバイブも鳴らないように変更しました。

今まで通りマナーモード時でも鳴らしたいというために設定から変更できるようにしました。

 

 

さぁ次はVer2.0なわけなんですけど。

バグ修正でVer2.0は嫌ですね・・・(^_^;)

工大シャトルバスアプリ アップデート Ver1.8

なかなか気づかなくてすみませんでした。重大なバグの修正です。

更新内容

頻繁にガベージコレクションが起きていた問題を修正しました。

アップデートできる方は速やかにお願いします。

ダウンロードはこちらからです。

https://market.android.com/details?id=net.pfx.s5.kuluna.kitwhitebus

 

・ガベージコレクションとは?

よくGCと呼ばれますが、メモリの中のいらなくなった部分を開放しようぜという機能です。これによりJavaは得にメモリの開放を気にせずプログラムすることができます。

で、このGCが頻繁に発生してると一般的にそのプログラムはヤバいです。

そのうちOutOfMemoryErrorというのが発生すると強制終了します。

 

今回このアプリが頻繁にGCを行っていた原因として、画面を1秒ごとに更新していたことでした。
対策として、1分ごとに更新を行うようにしました。また、これでアプリ表示時のバッテリー消費も若干和らいだと思います。