※※※このページの翻訳は途中ですが、今後メンテナンスされません。そもそも、Androidのリソースシステムの「設計」自体が間違っており、開発者にとって非常に使いづらいものになってしまっています。それをなんとか救おうとしているのがroboguiceであると考えるからです。このような場当たり的な対応を行うよりも、Androidシステムそれ自体を修正すべきであると考えます。要するに、Guiceをandroid上で便利に利用するためのサポートライブラリ。これがなければandroidでGuiceできないというわけではないが、あった方が全然便利。※ただし、もともとguiceのAOP機能はandroidのような実行のバイトコード生成をサポートしていないプラットフォームでは使用できないことに注意。android」と注意書きしている。※以下は素人による翻訳です。AndroidRoboguiceはAndroidの開発における欠点をいくつかの欠点を解消して、物事を簡単にし、楽しくする。getIntent().getExtra()したときにいつもnullチェックを忘れないだろうか?RoboGuiceはこれをやってくれる。findViewById()をTextViewにキャストするのは不要と思わないだろうか?RoboGuiceはこれをやってくれる。RoboGuiceは開発における推測を行う。bindService()を用いてユーザサービスを取得する必要はなく、getSystemService()を用いてシステムサービスを取得すればよいのだ(訳注:???)。Serviceあるいはいかなるオブジェクトであってもそれを注入してくれ、RoboGuiceに詳細を任せることができる。RoboGuiceはアプリケーションコードをスリム化する。短いコードはバグの出現率も低い。それに追跡しやすくなる。androidぷらっとフォームのメカニックスが散らばったコードではなく、アプリ特有のロジックにフォーカスすればよいのだ。これらすべてはあなた自身がRoboGuiceを使って明示的に構成あるいはオーバライドする必要がある。RoboGuiceアプリケーションはAndroidマーケットに過去数カ月に渡ってフィーチャーされてきた。Guiceライブラリを利用して単純な依存性注入を、モバイルアプリケーション用に軽く行うものである。動き、人々に使われている。※原文:http://code.google.com/p/roboguice/wiki/SimpleExampleRoboGuiceはandroidに単純で容易な依存性注入をもたらすフレームワークであり、Guiceを使用している。今までにSpringやGuiceを使ったことがあるなら、既にこのスタイルのプログラミングがいかに便利であるかを実感しているだろう。以下の簡単な例をみてみよう。これは典型的なAndroidアクティビティだ。}この例は18行からなるコードである。onCreate()を見てみると、5行ものボイラープレート初期化を行って、たった一つのname.setText()という目的にたどりついていることがわかる。複雑なアクティビティはもっと多くのこの手のコードが必要になる。RoboGuiceを使った次のコードを比較してみよう。}この例では、onCreate()はとても読むのが簡単になっている。プラットフォームボイラープレートはすべて取り除かれ、君自身のビジネスロジックのみに集中している。SystemServiceは必要かい?一つ注入しよう。ViewやResouceは必要かい?それらも注入しよう。RoboGuiceにその詳細を任せよう。RoboGuiceのゴールは、君自身のコードを作成してもらうことだ。Androidにおいてメンテナンスが必要なすべての初期化やライフサイクルコードではなく。インストレーションページにいって、君の最初のRoboGuiceアプリケーションの構成方法の詳細を見てみよう。追加の例)RoboGuiceの使用法マニュアルは、まだまだすべき姿になっていないのだが、君が開始するために必要なサンプルを提供している。exampleを参照してほしい。インストレーション※原文:http://code.google.com/p/roboguice/wiki/InstallationダウンロードとインストールRoboGuiceとguice-2.0-no_aop.jarをダウンロードすること。3をターゲットとする。JARs)最初のRoboGuiceアプリケーション※訳注:ここはGuiceを使ったことがないと、何をやっているのかわからないと思われる。GuiceApplicationをextendsする新しいクラスを作成する(MyApplicationとしよう)。アプリケーションのAndroidManifest.xml中のandroid:name属性として、新規作成したアプリケーションを設定する。この例では以下のようになる。moduleクラスを作成する(MyModuleとしよう)。configure()メソッドを実装して、君自身のバインディングを設定する。モジュールのconfigureについてはGuiceのWikiを参照すること:http://code.google.com/p/google-guice/wiki/GettingStarted君のアプリケーションクラス中でGuiceApplication.addApplicationModules(List<Module>)メソッドをオーバライドする。リストに君のカスタムモジュールのインスタンスを追加する。}}君のアクティビティをActivityクラスをextendsさせるのではなく、GuiceActivityをextendsするように書き換える。これでGuiceを使う準備は整った。exampleを参照してくれ。example※astroboyとは鉄腕アトムのこと。Stringあるいは他のタイプのリソースを注入できる。詳細はResourceListenerを参照のこと。InjectExtra}で注入することができる。このアノテーションは基本的には以下のコードと等価である。このアクティビティへの注入時にextraが存在していなければならない。optionalがtrueで、かつextraが見つからないときには、このフィールドには何も注入されない。InjectExtra}のデフォルト動作は、null値を禁止している。使わなければならない。以下の例では、nullExtraは存在しなければならないが、しかしnullでも構わない。