« Androidアプリ「ナンバーズ計算機」 | トップページ | ラムダ式 on C# »

2013年5月19日 (日)

AndroidAnnotationsを使ってみる ~Eclipse導入編~

0. イントロダクション

 先日オープンセミナー2013@岡山に参加してきたんだけど、その懇親会LTで、@ryosms氏がAndroidAnnotationsについて触れていたのに触発されたのが、事の始まり。

 そもそもAndroidAnnotationsって何さ? という話なんだけど、Androidアプリのソースコードはとても冗長で、例えばボタンを押した時の処理を書こうと思うと、こんな感じになるのは周知のとおり。
# 匿名クラスを使った場合

Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // ボタンを押した時の処理を書く
    }
});

 Visualなんたらに慣れてる人とかだと、「なんじゃこれ」という感じになりそうだけど、これがAndoridの常識といえば常識。
 だけど、クリックイベントだけにフォーカスしたコードだけを書ければ素敵じゃない?

 AndroidAnnotationsは、この面倒で冗長なコードをコンパイル時に自動生成してくれる、ありがたいライブラリなわけです。

 てなわけで、導入してみるのです。

1. Eclipseのプロジェクトに導入してみる

 とりあえず、公式にあるやり方の日本語抄訳を載せる。

  1. まず、DownloadのページにあるDownload AndroidAnnotations 2.7.1から、AndroidAnnotationsのZipアーカイブをダウンロードして、適切な場所に展開する。
    これを展開すると、androidannotations-api-2.7.1.jarとandroidannotations-2.7.1.jarという二つのJarファイルと、その他もろもろのファイルが展開されているはず。
  2. 展開してできたJarのうち、androidannotations-api-2.7.1.jarをプロジェクトのlibsディレクトリに入れる。
  3. androidannotations-2.7.1.jarを、libsディレクトリではないどこかに入れる。
    名前は何でもいいんだけど、僕はfactoryというディレクトリを作って、そこに入れた。
  4. プロジェクトのプロパティを開き、その中のJava Compiler -> Annotation Processing を開いて、Enable annotation processingのチェックを入れる。
  5. Annotation Processingの下にあるFactory Pathを開き、androidannotations-2.7.1.jarを追加する。
  6. この状態でプロパティを確定すると、「プロジェクトをリビルドしろ」と言ってくるので、プロジェクトをリビルドする。
  7. プロパティの Java Build Path -> Libraries を開き、androidannotations-api-2.7.1.jarを追加する。
    ※追加されていない場合

 あとは、この状態でアノテーションを定義していけばよい。

2. 実際に書いてみる

 実際に、上のコードをAndroidAnnotationsで書いてみると、こう書ける。

@Click(R.id.button1)
public void button1_click() {
    // ボタンを押した時の処理
}

 ふむ、Visualなんたらみたいになったねw

 これで、findViewById()で見つけたリソースをキャストしてコールバックリスナーを定義する、あの面倒なコーディングともおさらばできそうです。

 Fragmentと一緒に使うと、コードの見通しがよくなっていいかもしれないけど、いかんせん僕がFragmentの使い方を理解できていないので当面はイベント周りのアノテーションから使っていくことになりそうだ。

|

« Androidアプリ「ナンバーズ計算機」 | トップページ | ラムダ式 on C# »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/164672/57417842

この記事へのトラックバック一覧です: AndroidAnnotationsを使ってみる ~Eclipse導入編~:

« Androidアプリ「ナンバーズ計算機」 | トップページ | ラムダ式 on C# »