声に出して読みたいObjective-Cのライブラリ8種(2014.7) に触発されて書いてみます。
前回はこちら
android-promise
Android フレームワークにおける Promise の実装です。Bolts は厳密には Promise ではなく(どこでそのスライドを見たのか忘れてしまった…)、継続 をベースにしているライブラリで、なにやら最近はちょっと違うものも含まれるようになってきましたが、こちらは純正の Promise の実装です。もう一つ、jdeffered もありますが、jdeffered についてはこちらを御覧ください。
Android でよくある、非同期処理とライフサイクルオブジェクトの関係で起こる悩ましいバグにうまく対応するため、Promise を生成するときにライフサイクルオブジェクトを登録するのが特徴です。これによって、ライフサイクルオブジェクトが死を迎えた場合、ライブラリ側でコールバックの後処理をしてくれます。
その他は Promise のことを解説している記事に任せておきます。
butterknife
View のインスタンスをフィールドに注入してくれるライブラリです。安心と信頼の JakeWharton 先生の力作でございます。
Butterknife#inject(Activity)
すると、@InjectView
アノテーションのついたフィールドに、対応する View のインスタンスがセットされます。この他、クリックイベントを受け付けるメソッドにもアノテーションをつけることで、対応する View のクリックイベントのリスナとして自動で設定してくれたりして、何かと便利です。
Fragment
で使う場合は、Fragment#onCreateView()
でButterknife#inject(Object, View)
し、Fragment#onDestroyView()
でButterknife#reset(Object)
をする必要がありますので、忘れないようにしましょう。
timber
ロギングをデバッグ版とリリース版で柔軟に変更できるようにするためのライブラリです。安心と信頼の JakeWharton 先生の力作でございます。
多くの場合、デバッグ版は timber で標準に用意されている、Logcat 用のログ出力を使用することでしょう。開発者は、自分で好きなログ出力先を設定することができます。出力レベルの設定も簡単(というかレベルごとに自分で好きに選択できる)です。例えば、Crashlytics にログを飛ばしたり、Google Analytics にログを飛ばしたりということが、あちこちで個別に書くこと無く、timber を経由すればいいだけになります。