この記事の原題は「How to be a Lazy and Efficient Android Developer(怠惰で効率的なAndroid開発者になる方法)」です。このタイトルに戸惑われた方も多いと思いますが、まさにその通りで、Android開発者にぴったりのタイトルです。私の知る限り、AndroidプログラマーはfindViewById()やクリックイベントのリスニングなど、繰り返し率の高いコードを書くのを嫌がります。では、ビジネスロジックのコードを書く時間を短縮し、繰り返しコードを書かないようにするにはどうすればいいのでしょうか?それでは、怠惰で効率的なAndroidプログラマーになりましょう。その方法を知りたいですか?急ぐ必要はありません。
サードパーティのライブラリやフレームワークはたくさんあります。様々な理由で、これらのライブラリは知られていないか、知られていても使われていません。開発者の中には、自分で定義したライブラリを開発したり、サードパーティのライブラリを使いたくない人もいます。サードパーティのライブラリがあれば、アプリケーションの互換性が向上したり、UIが美しくなったり、コードがすっきりしたりと、様々なメリットがあります。そこで、初心者や経験豊富な開発者を助けるために、このようなサードパーティライブラリをもっと研究していきたいと思います。
ロボガイス
[]
getIntent()やgetExtras()を呼び出す際に、それがNullかどうかをチェックするのを忘れがちですが、RoboGuiceがお手伝いします。TextViewを初期化するためにfindViewById()を呼び出す必要がありますか?いいえ、RoboGuiceがやってくれます。
ロボガイスの各種ライブラリがどのように使われているか見てみましょう。
ロボガイスライブラリを使用してください:
取付
ロボガイスを使うには、JARファイルをダウンロードして環境変数に追加する必要があります:
簡単な一般的なイベントコードを見てみましょう:
実例
public class TestActivity extends Activity{
TextView textView1;
TextView textView2;
ImageView imageView1;
String name;
Drawable icLauncher;
LocationManager locManager;
LayoutInflater inflater;
NotificationManager notifyManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_test);
textView1 = (TextView) findViewById(R.id.textView1);
textView2 = (TextView) findViewById(R.id.textView2);
imageView1 = (ImageView) findViewById(R.id.imageView1);
name = getString(R.string.app_name);
icLauncher = getResources().getDrawable(R.id.ic_launcher);
locManager = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);
inflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
notifyManager = (NotificationManager) getSystemService(Activity.NOTIFICATION_SERVICE);
textView1.setText("Hello World! RoboGuice demo");
}
}
そして、ロボガイスによるコード合理化の魔法をご覧ください。
ロボガイスの使用
public class TestActivity extends RoboActivity{
@InjectView(R.id.textView1) TextView textView1;
@InjectView(R.id.textView2) TextView textView2;
@InjectView(R.id.imageView1) ImageView imageView1;
@InjectResource(R.string.app_name) String name;
@InjectResource(R.drawable.ic_launcher) Drawable icLauncher;
@Inject LocationManager locManager;
@Inject LayoutInflater inflater;
@Inject NotificationManager notifyManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_test);
textView1.setText(name);
}
}
この比較で、なぜロボガイスを使うべきなのかがお分かりいただけたと思います:
ロボガイスを利用するメリット
- Drawableやstringなどのリソースを初期化する必要はなく、必要に応じて@InjectResourceを使用してください。
- 上記のプラクティスは、コードを効率化するのに役立ちます。
- コードが少ないほど、問題やバグも少なくなります。
- 少量のコードでAndroid開発者の労力を削減し、実際のビジネスロジックにより集中できるようにします。
RoboGuiceとActionBarSherlock。
いくつかの基本クラスはここからダウンロードできます:
/-または、JARパッケージのRoboGuice+Sherlock.jarをダウンロードしてください。