SmartTraining 1.9.0 リリース

先日リリースしたSmartTraining1.9.0のこと。

 今回のバージョンアップは、以前Andronaviさんで紹介していただいた時に低かった評価の改善、Marketでいただいたコメントに対する対応を行ってみました。
 歩数については、あの当時から万歩計ロジックを2度修正して多少はマシになっていると思います。一応、個人的な計測では悪くても2割程度の誤差。ロジックについてはさらに見直して精度アップの余地はあると思っています。ただ、なかなか試験に時間がかかるので、引き続き実験と計測を繰り返しつつ徐々に改善していこうかと思っています。
 一時停止中の距離カウントを止める機能は、途中でトレーニング種別を変える機能と絡めてみました。例えば、将来的にはトライアスロンや、スキーでの滑走&リフトなど、途中で実施する運動が変化するケースでも計測の継続を容易にすることを想定しています。現実的には今のハードウェアが耐水的にも耐寒冷的にも弱いのでこの機能が真価を発揮するのはまだまだ先のことになりそうです。あと、本当は人が操作しなくても自動的に状況を認識して記録してくれるというのが理想ですが、こちらはもう少し研究が必要ですね。
 Twitterにつぶやく機能は1.8.5で適当に実装(といっても他アプリに送るだけですが)してみたのをもう少し拡張してみました。っていうか、誰もハッシュタグ使ってつぶやいてくれないので消そうかと思いましたがwちょっとだけ悪あがき。
 最後は、ContentProviderによるデータの公開。どうやって公開するのが一般的なのかわからなかったので、サポートサイトに利用側コードを貼ってあります。マッシュアップで運動の計測にはこのアプリを活用していただけるととても嬉しいです。データアクセス手段の公開と外部へのエクスポートによるアプリマッシュアップはAndroidならではの機能ではないかなと思っています。
 あと、おまけ。機能的には地味なのでどこにもコメントありませんが、設定画面で使っているトレーニングタイプの選択時に表示しているリストダイアログ。以前は標準のListPreferenceを使っていたのですが、結構殺風景だったので、リスト上にアイコンを表示するように機能拡張してみました。
やり方は、DialogPreferenceを継承したオリジナルのクラスを作成します。中身はListPreferenceとほぼ同じ(Android OSのコード参照)。んで、onPrepareDialogBuilder()内のbuilder.setSingleChoiceItems()をこんな感じに変更します。

builder.setSingleChoiceItems(trainTypeListAdapter, 0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mClickedDialogEntryIndex = which;
TrainTypeDialogPreference.this.onClick(dialog, DialogInterface.BUTTON_POSITIVE);
dialog.dismiss();
}
});

要はオリジナルのtrainTypeListAdapterを作成してsetSingleChoiceItems()に突っ込んでやるだけ。trainTypeListAdapterはアイコン付きのListViewを表示するためにごにょごにょっと記述→参照。OSのコード見るのいろいろと勉強になります。
ただ、この方法注意点が一つあります。
Issue 3972という問題があって、Comment 9の対応をすることで回避しています。
おためしあれ~。
http://code.google.com/p/android/issues/detail?id=3972

コメント

このブログの人気の投稿

Joinノードを使う(その1)

Execノードを使う

Joinノードを使う(その4)