blog

高度なAndroid開発:依存ライブラリRoboguiceを使う

この記事の原題は「How to be a Lazy and Efficient Android Developer(怠惰で効率的なAndroid開発者になる方法)」です。皆さんは混乱されていると思いま...

Feb 16, 2024 · 5 min. read
シェア

この記事の原題は「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をダウンロードしてください。

Read next

day03-gitチェックアウトとアンドゥ

1.コミット履歴の表示 git log コマンドでコミット履歴を表示することができます。他のコマンドと組み合わせることで、さまざまな形式でコミット履歴を表示することができます。たとえば、git log -patch でパッチを表示したり、git log -stat で変更されたファイルの数を表示したり、git log

Feb 13, 2024 · 2 min read