日記:音声エディタ Ver 1.1.0リリース!

ようやく念願の音声エディタのマッシュルーム化に成功!!
サンプルがわかりやすかったので、比較的簡単にできました。

これなら、簡単なマッシュルームだったら3時間とかでできるわなぁ〜と実感。今回は複雑でしたけど。マッシュルームから他のアプリを呼び出してしまってはまずいので、音声エディタの特徴である連携機能(メーラーやtwitterクライアントとの連携)をできないようにするためにメニューから削除。その代わりにSimejiに制御を戻すための決定ボタンに変更。

あと、翻訳とかもここではしないだろうと(というか他のマッシュルームがいっぱいある)思って、翻訳も消しました。そのほうがわかりやすいですし。

ここで、普通の音声エディタとマッシュルーム用の音声エディタの2つを作る必要性が出てきたので、メンテナンス性を確保するために、共通機能を抽出して抽象クラスを作りました。そちらにほとんどの機能を移して、その抽象クラスを継承する形で普通の音声エディタとマッシュルーム用の音声エディタを作ったので、ソースもまぁまぁ綺麗なままかなと。

あとは、デザイナーに作ってもらったアイコン類でまだ適用できていないものがあるので、週末の間にやらないとなーと思います。

明日は、瀬戸内デベロッパー倶楽部のミーティングがあるので広島へ!!


日記:よく使う機能をライブラリ化中

アプリをいくつかリリースするようになって、
「これは他のアプリを作る時でも使えるな!」
と思える機能を外部クラス化する作業をしてます。

外部クラス化というか、ライブラリ化です。

Android: 外部ライブラリ化の方法

例えば画像をダウンロードするAsyncTaskを継承したクラスなどは、いろんなアプリでも使えます。そのたびに毎度毎度ProgressDialogを付けたりするのは面倒なので、もう一気にやっちゃおうぜと。
あとは、機種によってMetricsが違いますから、ダウンロードした画像サイズと機種のディスプレイの差異を吸収するためのクラスとか。こういうのは需要がありそうな気がする。dipとpixelの計算、面倒ですからねぇ…。それと画像をキャッシュするためのImageCacheクラスとか。ここらへんも流用できそう。

オリジナルのライブラリを徐々に充実させていって、効率よくアプリを開発できるようになりたいものです。よさそうな形になったら、Javaに関してはまだまだへっぽこプログラマですが、公開できたらなぁと思います。


日記:ついに音声エディタ Ver 1.0.0 に!

今日もtwitterをしてたら、BatteryCrystalについて、追加してほしい機能のリクエストが続々と。嬉しい悲鳴ですね!他のアプリも手がけていきたいところですが、今のアプリに対してリクエストしてくださるということは、気に入ってるからもっと使えるようにしてほしいということですから、なるべくそちらに力を入れて頑張っていきたいと思います。とりあえず、RedMineにチケットは発行しておいたので、どういう課題があるかは一目瞭然です。

今のところ、RedMineとGitのチケットの関連づけの方法がイマイチわかってないので、どうやるのだろうかと。普通にコミットするときにrefsとか書いたのでいいんだろうか?それをPushしたら、RedMineで反映されるんかなー?うーん。わからない。まだ調査が足りていないだけなのですが。

今日は音声エディタのバージョンアップを行いました!!念願だった、Android2.2(Froyo)と最新版の音声検索APIへの対応でした。わかるとすごくあっけない感じでしたが、だいたい開発ってのはわからないから進めないんで、わかったときは超快感ですね!私はFroyoの端末を持ってないので、私のアプリのテストに協力してくださっている@pabroffさんにメールでapkファイルを送ってテストしてもらいました。完璧!って言われた時は最高でした!

既知のバグも取れて、ようやく一段落したので、広告のAdMobも導入してみました。今までAndroidアプリは無料アプリのみだったので(今もそうですが)、多少なりとも収入源になってくれるとまた開発用の本を買ったり、コーヒー代くらいにはなるかなと思いまして。まぁまだ使用ユーザ数が少ないのであまり期待はできないのですが、逆に多くの方に使っていただけるように開発を頑張ろうと思います!!


Android: HTC Senseが再起動を繰り返すときの対処法

会社にDesireを持っている上司がいるのですが、その人のDesireのHTC Senseが予期せぬエラーで止まって、再起動し続けてどうしようもないとのこと。確かに、ずっと再起動していてどうしようもなかった。何にもできない。電話もかけられないし、メニューキーを押しても意味がないから設定画面も開く事ができない…。

直す方法は工場出荷時に戻すしかなさそうと思われたそのとき!!
なんと解決することができました!!!
その方法を順番に記します。

  1. ハードキーの検索ボタンを押す。出るまで連打。
  2. 検索フォームがニョキッと出てきたら、「設定」と入力して設定画面へ移動
  3. アプリケーション→アプリケーションの管理→HTC センスを選択
  4. データの消去ボタンを押す
  5. ハードキーのHOMEボタンを押す

まぁ解決方法は英語のサイトに書かれていたのですが(^^;)
日本語のサイトでは、工場出荷時に戻すしかないという情報がほとんどだったので、ほとほと悩んでいたそうです。直ってよかったー!!


Android: マナーモードを取得する

BatteryCrystalがマナーモード時にも充電完了したら音が鳴るので、マナーモード時は鳴らないようにしてほしい!というリクエストをいただきました。私は勝手に「マナーモード時はOSが勝手に判断してくれるだろう」と思ってたのですが、そうではなかったようです(^^;)たしかに、マナーモードでも非常時には鳴らすようにとかあるので、違うんですねー…。というわけで実装してリリースしときました!BatteryCrystalはバージョン1.0.4になりました。

で、そのときにマナーモードを取得する方法を調べたので書いておきます。

AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
int mode = audioManager.getRingerMode();
switch (mode) {
case AudioManager.RINGER_MODE_SILENT:
case AudioManager.RINGER_MODE_VIBRATE:
	// マナーモードなので何もしない
	break;
						
default:
	// ノーマルモードなので音を鳴らす
	mSoundPool.play(mSounds[0], 1.0f, 1.0f, 1, 0, 1.0f);
	break;
}

以上でーす!