IMoNiのよくある質問(FAQ)をまとめました。 こちら

2009年11月24日

debug用キーストアの有効期限は一年

Androidのdebug用のキーストアは、1年間だけ有効なようです。なので、一年以上同じ端末の同じユーザーで開発し続けていると、以下のようなメッセージが表示されて、apkが作成できなくなることがあります。

Error generating final archive: Debug certificate expired on yy/mm/dd hh:mm!

この場合は、ホームディレクトリ近辺(ホームディレクトリ/.android/など)にある、debug.keystoreという名前のファイルを一度削除すれば大丈夫です。

2009年10月28日

IMoNi 1.4.2で受信できなかった方へ

昨夜から、お使いの端末の環境によってはメールが受信できないという問題が発生していました。(多分クリーンインストールせずにアップデートするとダメだったっぽいです。)
ご迷惑をおかけしました。さきほど1.4.3をリリースしましたので、マーケットからダウンロードしてお使い下さい。
今回はDoCoMoさんに変更があったわけではなく、私と、もう一人のIMoNi開発者kooさんとの間で発生してしまったミスです。
ごめんなさい。

2009年10月23日

落ちないServiceの作り方

 最近このBLOGがIMoNiのサポートサイトと化しているので、たまには開発者向けの投稿でも書いてみようと思います。

 何らかを定期的に監視し続けるときのように、ずっと動き続けるService(システムが提供する機能というわけではなく、AndroidのServiceコンポーネントです。)を作ることがあると思いますが、私が初めて取り組んだときは、意外とハマりどころがあるなと思いました。このことは、いつの間にか落ちていたり、停止できなかったりするアプリを目にすることが意外と多いことからも頷けると思います。

 多分いろいろな実装方法があると思いますし、処理の特性によって最適な方法は異なるかもしれませんが、私が一番簡単じゃないかなと思っているやり方を簡単に述べます。他にもアイディアや観点があれば是非教えて貰えるとうれしいです。


・息の長いThreadよりonStartとAlarmManagerを使う
 どちらも試しましたが、後者の方がコードが簡潔になりますし、バグが混入しにくいような気がします


・onStartから作業用Thread(Task)を起こす
 onStartで時間をかけすぎると(多分5秒以上)怒られるので、時間がかかる場合は別スレッドで行い、onStartは直ちに終わるようにします。ちなみに生Threadよりもjava.util.concurrent.ExecutorServiceなどを使ったほうが簡単かもしれません。例外の取り方に癖があるので気をつけます。
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/concurrent/Callable.html


・定期的に処理を行う場合は、作業用Threadの処理終了時にAlarmをset
 作業用Threadは、一回処理をして終わるようにします。定期的に処理したい場合はThreadが終わる時にAlarmに登録します。


・止める処理もonStart
 止めるときの処理もonStartでやるのがいいような気がします。intentのActionで振舞いを分けるイメージです。以下のような感じです。止める時も呼び側がstartServiceなのか、と少し誤解を招きそうですが、僕はこうしています。

public void onStart(final Intent intent, int startId) {
 super.onStart(intent, startId);
  if (ACTION_EXECUTE.equals(intent.getAction())) {
   // スレッド起こして処理実行
  }
  else if (ACTION_STOP.equals(intent.getAction()) ){
   // 終了処理(Alarmのキャンセルなど)
  }
  ・・・
}

もちろんバインドして終了処理を呼ぶ方法もありだと思います。


・必要に応じてwakelockを使う
 Alarmはpartial wakelockを取得してないとスリープ時に呼ばれないことがあるようです。またwifiなどもスリープする可能性があるので、処理の特性に応じて適宜最小限のwakelockをかけます。


・・・ところで、Androidにはちょっと厄介な特性があります。それは、メモリが足りないなどの諸々の理由でServiceが勝手に殺されることがあるということです。


・onLowMemoryは期待しない
 メモリが少なくなるとonLowMemoryメソッドが呼ばれます。このメソッドをうまく活用すればよいのですが、あまり役に立ちません。なぜなら、このメソッドはちょっとしたことですぐ呼ばれるからです。


・onDestroyも期待しない
 じゃ、死ぬときにonDestroyが呼ばれると思いきや、呼ばれずに死ぬことの方が多いです。なので、ここにコードを書いてもあまり意味はありません。


・各処理の終了時に現在の状況を保存しておき、onCreateで再startする
 つまり死ぬことを予め予期できないし検知できないので、いつ死んでもいいように、なんらかの処理を終えたときに最新の状況を逐次記録(永続化)しておきます。Serviceのプロセスは殺されたとしても、しばらくするとまた別のプロセスが勝手に生成されます。しかしこの時点ではServiceはまっさらな状態なので、以前の最新の状況を読み込んで、何をやっていたかを思い出してから再度動き続けるようにします。

以上です。
繰り返しますが、他にも「おれはこうやってる」などのアイディアや観点があれば是非教えて貰えるとうれしいです。

2009年10月22日

IMoNi よくある質問(FAQ)

 IMoNiのお問い合わせについて、個別にお返事できておらず申し訳ありません。このBLOGのコメントとAndroid Marketのコメントは定期的に拝見しています。最近似たような質問を受けることが多いので、FAQとしてまとめることにしました。


・IMoNiは何をするアプリですか

 「IMoNi(芋煮)」は、Android用のiモードメールクライアントです。「iモード.net」のメールを見たり、iモード.net経由でメールを送信したりすることができます。Androidでもiモードのメールを継続してお使いの方にお勧めです。


・IMoNiはiモードが使えるということでしょうか

 いいえ、そういうわけではありません。IMoNiは、PCのブラウザからiモードのメールを利用できる「iモード.net」というサービスを経由しています。そのためIMoNiでiモードメールを利用するためにはiモード.netの契約が必要になります。他のiモードのサービスは利用できません。


・IMoNiでiモードのメールを利用するために必要なものを教えて下さい


  • インターネットに繋がるAndroidの端末(DoCoMoのものでなくてもかまいません)
  • iモードを契約して、@docomo.ne.jpのメールアドレスを入手していること
  • 上記のメールアドレスに対するiモード.netの契約をしていること
  • 上記のiモードを利用できるFOMA端末(必要な時に誰かから貸してもらえるなら不要)


・Android端末での新規契約時や他キャリアからの乗換時にはiモードの契約ができないと聞きましたが本当でしょうか

 正確なことはわからないのですが、新規契約時や他キャリアからの乗換でも契約できると思います。


・IMoNiにIDとパスワードを設定したのにメールの送受信ができません!!

 まず、「iモード.net」のWEBサイトにブラウザで接続し、問題なくログインできるかどうかを確認して下さい。また、IMoNiを利用するためには、ワンタイムパスワードを使わないようにしなければなりませんので、「iモード.net」のWEBサイトから、ワンタイムパスワードを無効にするように設定をしておいて下さい。


・それでもどうしてもメールの送受信ができません!!

 実際に見てみないと私にもわからないので、もし東京23区内で私と時間を合わせて頂くことが可能でしたら、直接見せて下さい。どこかで待ち合わせしてお会いしましょう。


・IMoNiを使う上で気をつけておいたほうがいいことは何でしょうか

 iモード.netは、ログインするたびに通知メールがiモードセンターへ送られるようになっています。IMoNiでは、ログイン回数を減らすよう努めていますが、それでも一日に数回以上のログインが発生します。iモードセンターのメールが最大保管件数(1000件)を超えた場合、以降のメールは受信できません。iモードセンターのメールは、iモード対応の端末で受信(ログイン通知メールの受信は無料)するか、720時間(30日)経過すると削除されます。また、iモードの「メール選択受信」機能を使えば、メールの一括削除も可能です。IMoNiをお使いになる際は、メール選択受信を利用して、定期的にiモードセンターのメールの状況を確認されることをお勧めします。


・iモードセンターのメールが一杯だと言われました

 iモードセンターのメールはiモード.netでは消すことができません。FOMA端末でiモードの「メール選択受信」機能を使い、メールを削除して下さい。
 なお、iモードセンターのメールが一杯になってしまう典型的なケースは、IMoNiと同じようなiモード.netに接続するアプリを同時に動かしている場合です。この場合は、お互いのアプリケーションがiモード.netへの接続を奪い合いますので、すぐにメールが一杯になってしまうと思います。ログイン合戦を避けるためにもどちらかをOFFにされることをお勧めします。
 また、Wi-Fiと3Gの接続が頻繁に切り替わってしまう場所に長時間いるときも、比較的ログイン通知メールが発生しやすくなっているようです。


・IMoNiを使うときはiモードセンターのメールが一杯になりそうかどうかを常に気にしておかなければならないのですか

 iモードセンターのメールが一杯になるとメールの送受信が一切できなくなりますので、気にしておいたほうがよいかとは思います。ただ、通常想定される利用方法ではiモードセンターのメールが一杯になることはありませんし、一杯になっていればIMoNiの画面上でわかりますので、あまり神経質にならなくてもよいと思います。


・ログイン通知メールが来ないアプリもあるようですが、なぜIMoNiはログイン通知メールが来るのでしょうか

 厳密に言うと、ログイン通知メールを来ないようにできるアプリは存在しないと思います。ログイン通知メールが来ないといわれているアプリケーションは、おそらく定期的にiモード.netに接続して接続を維持しているのだと思います。IMoNiでは、電池の消耗を抑えるためにiモード.netへ定期的に接続しておらず、定期チェックの間隔に従ってiモード.netに接続します。そのためチェックの間隔が長いと、接続がすでにタイムアウトしているため、再度ログインを試みます。おすすめは15分間隔です。

・IMoNiでメールを送受信するのにお金がかかりますか

お使いの端末や接続形態、キャリアによって事情は異なりますが、通信料はWEBブラウザでWEBサイトを見る際にかかる料金と同じだとお考え下さい。一例としては、

  • HT-03Aを使っている
  • Bizホーダイダブルに加入している
  • 3Gで接続している
  • 日本国内で利用している
のであれば、Bizホーダイダブルの定額の範囲に含まれます。


・IMoNiを有料にする予定はありますか

 ありません。なぜなら、DoCoMoさんの公式アプリではないので、いつIMoNiが使えないようになってもおかしくないからです。ある日突然利用できなくなったとしても、私は責任を取ることができません。私の努力の範囲内で解決できればよいですが解決できないこともあるかもしれません。だから無料で公開していますし、今後も有料にするつもりはありません。


・添付ファイルの送信に対応する予定はありますか

 今のところありません。なぜならスマートフォン版のiモード.netでは、メールを添付することができないからです。スマートフォン版のiモード.netが対応していないことはIMoNiでも実現することが難しいです。


・定期チェックで指定した間隔とは異なるタイミングで、勝手に定期チェックが動作することがありますが何故でしょうか

 理由は二つ考えられます。ひとつは、メール送信後の定期チェック強化機能を有効にしている場合です。この設定を有効にすると、メールを送信してから約15分間だけ、90秒程度の間隔でチェックするようになります。15分たつと元の間隔に戻ります。(メールを送信したら返信が来るかもしれないので、返信を早く受け取れる機会を増やすためです。)
 もうひとつは、メモリ(RAM)不足により、IMoNiの定期チェックが強制的に停止させられてしまったときです。Androidでは、システムの空きメモリが足りなくなると、動作中の色々なアプリを停止させてメモリを開けようとします。IMoNiの定期チェックは、強制的に停止させられると、約5秒後に再起動しますが、目覚めたときに一度だけチェックを実行してから元の間隔に戻るようになっています。


・返信時に、相手の名前は宛先欄に表示されているのに、送信時にエラーになります

 「電話帳お預かりサービス」が原因である可能性が高いです。電話帳お預かりサービスを使っていると、iモード.netのサイトでは、電話帳に存在する人がメールアドレスではなく、氏名として表示されるらしい、ということを別の利用者の方から報告を頂戴したことがあります。例えば、名前:「田中さん」、メールアドレス(tanaka@example.com)としてiモード側の電話帳に登録していると、iモード.netでは、「tanaka@example.com」ではなく「田中さん」と表示されるようです。iモード.netの電話帳とIMoNiは連携できていないので、返信時の送信先(田中さんのメールアドレスはtanaka@example.comであるということ)がわからず、送信時にエラーになります。
 iモードの電話帳に登録しているものと全く同じ氏名とメールアドレスをAndroid端末側の連絡先(アドレス帳)にも登録していれば、宛先欄の入力エリアを少し触ると、入力されている文字列を使って連絡先の情報と照合をかけにいきますので、メールアドレスを取得することができることもあると思います。本件はIMoNi側では対応が難しいので、申し訳ありませんが電話帳お預かりサービス利用時の制限だとお考えください。


・「~」が本文にあると送信に失敗してしまいます

 HT-03AのWEBブラウザでiモード.netに接続した場合にも、その文字は送れませんので、IMoNiからも送れません。「から」は2種類あると思います。小さめの方を使うと送れると思います。


・文字が小さくて読めません

 申し訳ありません。メールの本文に限って、ですが、「本文」を書かれているヘッダ部分(灰色)の上に指を置き、指を右にスライドさせると文字が大きくなる。逆に左にスライドさせると文字が小さくなる、という機能があります。


・IMoNiは誰が作っていますか、DoCoMoの関係者ですか

 私eggと、kooさんという友達の二人で趣味で作っています。DoCoMoさんのお仕事をしたことはありませんし、IMoNiについてDoCoMoさんと話をしたこともありません。


・なぜIMoNiを作ろうと思ったのですか

 kooさんも私もAndroidが好きなので、HT-03Aが販売を開始してから間もなく購入(機種変更)しましたが、ITリテラシーが高い家族や友達ばかりではないため、iモードのメールアドレスを継続して利用する必要がありました。特に迷惑メールをブロックする目的で携帯以外からのメールを拒否しているケースも多く、彼らの携帯にGMailのメールアドレスから送信しても届かないことがあります。年輩の方の中には自分でホワイトリストを編集できない人も数多くいらっしゃいます。なので「GMailに変更したのでよろしく」とはなかなか言えませんでした。DoCoMoさんから公式アプリが出ていればよかったのですが、出るかどうかもわかりませんし、出るとしても時間がかかるのではないかと思ったのでHT-03Aを使い続けるためにも自分達で作ることにしました。これが主な経緯です。


・IMoNiのソースコードを公開する予定はありますか

 ありません。少し前までは全て公開していましたが、少し改造すればiモード.netを経由したスパム送信の仕組を簡単に作ることができてしまうという意見を頂いたので公開を中止しました。


・IMoNiとアプリケーション間連携をしたいのですが

 大歓迎です。ご連絡下さい。


・Emoji Picker(絵文字入力部)との連携の仕方を教えて下さい

こちら」をご覧ください。

2009年10月16日

IMoNi 1.4.0

たくさんのコメント、ご意見、ご感想、ありがとうございます。最近忙しくてコメントを満足に返せておらず申し訳ありません。頂いたご意見を基にして、少しずつ拡張していきます。
IMoNi 1.4.0をリリースしました。

・iモードセンターのメールBOXが一杯でiモード.netへログインできないときに、そのことを知らせるよう修正
・画像付きメール(デコメなど)の表示
要望が非常に多いので実装してみました。うーん、いまいちイケてない気がしますが、動くのは動いてそうですのでとりあえず公開します。無いよりはマシ程度ですが、もし宜しければお使い下さい。お使いになる場合は下記【説明】【注意事項】をお読み下さい。


【説明】

デコメなどの画像付きメールは、リストの右側(スターの左側)に、小さな画像マークが出るようになっています。



メール一件の内容を見ても、今までと同様に画像は無視されています。



この画面のメニューから「画像も含めて表示」を選ぶことで、画像も含んだメール全体をHTMLとして確認することができます。




【注意事項】

  • 画像は「画像も含めて表示」を押したときにiモード.netへ取りに行きますので、通信が発生します。通信圏内にいなければ、画像を見ることができません。
  • iモード.netへ接続しているセッションが有効な状態でなければ画像が表示できません。通信圏内にいるにもかかわらず画像が表示されない場合は、iモード.netへのセッションが無効になっている可能性がありますので、一度「ただちにチェック」などでメールチェックを行い、セッションを確立してから、再度画像の表示を試みて下さい。
  • この機能は、本バージョンのIMoNiをインストールしてから新たに受信したメールにのみ有効です。前バージョンで受信済のメールには適用されません。
  • 画像の形式によっては、本来アニメーションするはずのものがアニメーションしないことがあるようです。(おそらくアニメーションGIFがダメなようです。)

2009年10月06日

IMoNi 1.3.0

大変お待たせしました。i-mode.netの変更に対応したものをマーケットにリリースしました。私が長期旅行中だったためご迷惑をおかけしました。昨日帰国しました。フランスではネットにつなげやすかったのですが、イタリアではネットにつなげる環境をうまく手に入れられなかったので、お返事もできませんでした。どうもすみません。

リリースしたものは、kooさんが対応して下さった野良アプリとほぼ同じですが、前のバージョンでエクスポートしたメールがインポートできないという不具合の修正も加えています。

・iモード.netのレイアウト変更対応
・フォルダ機能の追加

2009年09月30日

送信できない件について

御迷惑をおかけして申し訳ありません。
先ほど現象は確認しました。すぐに調べたいところなのですが、私が現在PCを持たずに海外旅行中のため、修正することができません。
おそらくiモード.netのサイトに変更があったのではないかと思います。

原因の調査はもう一人の開発者のkooさんにお願いしているところです。

御迷惑をおかけしますが、御容赦下さい。

2009年09月10日

IMoNiの紹介ページ

 最近IMoNiを紹介して下さっているサイトやblogを拝見する機会が多くなりました。感謝の気持ちをこめて、4つのページを載せたいと思います。評価の中で多いのは、AndroidらしいAndroidっぽいという文脈です。これは「便利」を超える最高の賛辞ではないかと私は思います。


・日経トレンディネット
これは便利! アンドロイド携帯でiモードメールを送受信できるアプリ
http://trendy.nikkeibp.co.jp/article/column/20090904/1028655/?P=1

石川さんという方が、Androidの魅力について、IMoNiを題材にして語って下さっています。ただいいアプリ、ではなく、このコンテキストで取りあげて下さったことが嬉しいです。


・ケータイWatch
「みんなのケータイ」HT-03Aの「Androidらしい」お勧めアプリ5つ
http://k-tai.impress.co.jp/blog/2009/08/googleht-03a-1.html

なんと先頭に挙げて下さっています。「Androidらしい」というのはとても嬉しいほめ言葉ですね、ありがとうございます。


・Androidあぷぷ
かなり完成度が高いiモード.netクライアント「IMoNi」
http://www.android-app.info/2009/08/24/imoni/

このサイトでは、かなり初期のころから精力的にアプリを紹介されていますので、載せてもらえて光栄です。Androidと一体化しているという感想はすごくうれしいです。


・HT-03A Androidアプリ・ゲーム~Androidアプリで遊び倒せ~
2009年9月 独断と偏見のAndroidアプリベスト10!(ゲーム以外部門)
http://ht03a.blog.shinobi.jp/Entry/51/

2位にランクインしています。独断と偏見であったとしても、運営されている方の中では2位ということなので、嬉しいです。


 なお、ここでは上の4つのサイトしか載せていませんが、他にも紹介して下さった方々がたくさんいらっしゃるようで嬉しいです。ありがとうございます。

2009年09月07日

IMoNi 1.2.0

2009.09.07 21:35追記
IMoNi 1.2.0に、新規インストール時に設定を完了できない不具合がありました。1.2.0を新規にインストールされた方は一度アンインストール後、1.2.1をインストールし直してください。以前のバージョンからお使いの方はアップデートで問題ありません。申し訳ありませんがよろしくお願いします。


IMoNi 1.2.0をリリースしました。追加、変更点を簡単に書きます。

・設定でメールの送信結果をステータスバーに表示「しない」ようにしている場合も、送信を失敗したときはステータスバーで知らせるように
送信失敗時のみ教えてほしいという方は、チェックを外してお使い下さい。

・メールに対して返信したか、転送したかがわかるように
返信済み、転送済みのメールはリストのアイコンが変わります

・メールの作成画面で、テキスト入力部をタップしなくてもソフトウェアキーボードを出すように
例えばEmoji Pickerから戻ってきた場合などにキーボードが消えていましたが、なるべく出すようにしました。

2009年08月31日

IMoNi 1.1.0

IMoNi 1.1.0をリリースしました。今日は詳細に書く時間がないので、簡単に書きます。

・メールの情報を他のアプリと共有する機能の追加

端末にインストールされている他のアプリケーションに対して、メールの情報をプレゼントする機能です。メールの本文を表示する画面のメニューから「共有」を選ぶことで利用できます。メールの情報は、テキスト形式の情報を扱える旨を表明しているアプリケーションに対してプレゼントできます。

・受信済メールをSDカードへエクスポートする機能、SDカードからインポートする機能の追加

アプリの再インストール(端末の初期化)時に、メールを失わないようにするための機能です。受信済メールの一覧画面のメニューから行えます。エクスポート、インポートできるのは受信済メールのみです。送信済みメールや下書きメールについては、まだ機能を設けていません。テストはしたつもりですが、もし万が一不具合があったらごめんなさい。

・受信済メールをフィルタする機能の追加

ある文字列が含まれるメールのみを表示する機能です。受信済メールの一覧画面で(HT-03Aであれば、端末右下にある)「サーチ(むしめがね)」ボタンを押すか、メニューから「メールのフィルタ」を選ぶことで利用できます。

以下は、その他の細かなものです。

・時刻の表示を24時間表記に
・下書きや送信済メールのリストから1件のメールの編集画面に行き、再度リストへ戻ってきた時に、前回表示していた位置を表示するように
・その他細かい修正、調整


2009.8.31 20:45頃 追記:
忘れてました。。

・メールを送る前(送信ボタンを押したとき)に、確認ダイアログを出せるように

誤送信してしまう方はお使いください。設定で切り替えられます。

・メール本文のどこかを長押しでクリップボードにコピーできるように