Android開発用ライブラリの整理(2015年11月時点その1)

昨今のAndroid開発ではライブラリを使う事が前提のようです

 

ひとまず、使えそうなものを調査(+実践も含む)してます

 

ライブラリの1次選定は下記先生方の記事(+qita等)を参考にさせていただきました。

有用な情報大変ありがとうございました。

github.com

techlife.cookpad.com

 

 

HTTP Client

以前のAndroid 開発では、標準のDefault Http Clientを使っていましたが、

今の潮流は、

・volley
OkHttp

この2つのようです。

volleyはGoogle、OkHttpはAndroid ライブラリでは有名なsquare社がつくったものです

基本どちらも使い勝手は良さ気ですが、

volleyはちょっとあかんかったと、cookPadさんがdisってたため、

OKHttpを使う事にしました。

導入したアプリ自体がシンプルな通信しかしないのと、

自分自身の開発経験が少ないため、

本格的に恩恵を感じるのはもう少し先になりそうです。

 

イベントバス

アプリ内でのメッセージ通信用に使うもの

・otto
・Event Bus

最初はどういった類のものか良く分からなかったのですが、

例えば、Activityクラス(fragmentも同)内で、HTTP通信用クラスを実行した際に、非同期の応答結果がHTTP通信クラスのコールバックで返ってくるようなケース。

 

このHTTP通信クラスでの応答結果をActivityクラスが知るためには、Activityクラス内に応答結果が返ったら、教えてね的なコールバックを実装しておく必要があるが、

わざわざコールバック関数作るのめんどいし、何より、Acivityが切り替わった後に、応答結果が返ってきてしまうと存在しないActivityに対してコールバックを呼ぶため落ちる、との事。

 

イベントバスだと、Activityが有効になった時点でイベント通知のレジスタ

無効になった時点でイベント通知のアンレジスタ出来るので大丈夫。

とりあえず、試しに使った感覚ですと、皆様の言う通り、非常に便利だと思います。

ちなみに、ネットで調べた限りottoとEvent Busでそこまで差異は無さそうですが、ottoのほうが情報が分かり易かったのと、信頼のsquare社製という事で、今後もottoを使っていく予定です。

 

View Injection

コード量の削減+可読性向上

・Butter knife

ひとまず習うより慣れろで使ってみてます。

以前、試した後に、使えそうだったので、引き続き別のアプリで使おうとしたところ、エラーが発生しました。どうやら、v7.0から変わったみたいです(割と大きく)

なので、v7.0以降と前では注意が必要です。

詳細は下記で詳しくまとめていただいています

qiita.com