LoginSignup
332
356

More than 1 year has passed since last update.

最近のAndroid開発でよく使われているっぽいライブラリまとめ(2021/08)

Last updated at Posted at 2019-05-26

私は去年から真面目にAndroid開発を始めたのですが、プロダクトの開発で息するように使われているライブラリなどは誰も教えてくれず知るまでなかなか時間がかかりました。この記事ではこれからAndroid開発を始める人向けに今よく使われているライブラリをまとめます。

「よく使われている」は完全に主観です。

AAC

Android Architecture Componentsの略で、Android Jetpackのコンポーネントの一つです

AACに含まれるライブラリの中でも特によく使うものについて紹介します。

Data Binding Library

文字通りデータバインディングに使うライブラリです。私はMVVMでの開発でよく使ってます。XMLにオブジェクトをバインドしたり、後述するLiveDataなどで双方向のデータバインディングもできるので大変便利です。

Lifecycle

ActivityやFragmentのライフサイクルを管理します。LifecycleObserverを使うとActivityやFragmentのライフサイクルイベントを他のクラスで監視することができるのでとても便利です。

LiveData

LiveDataはライフサイクルと連動して、値の変更を通知することができます。私はRxのSubjectを使ってレイヤー間の通知を行っていた部分をLiveDataに置き換えました。双方向のデータバインディングにも利用できて便利です。

Room

RoomではSQLiteをスムーズに使えるようなインターフェースを提供しています。私はそこまでがっつり使ってないのでなんとも言えません。

ViewModel

ViewModelはActivityやFragmentのライフサイクルと関連づけてUI関連のデータを管理することができます。いわゆるMVVMのViewModelとは文脈が少々異なる物だと思いますが、MVVMでのアプリケーション開発にはとても役立ちます。私はめちゃくちゃ使っています。

Navigation

Fragmentの遷移をXMLで管理することが出来ます。safeArgsというプラグインを導入することで、Fragment間のデータの受け渡しを簡単に定義出来るので便利です。

Paging

よくある無限スクロールでのページングが簡単に(?)実装できます。

その他

  • WorkManager
    • ぶっちゃけ使ったことないので知りません

Jetpack Compose

Jetpack Composeは前述のAndroid Jetpackの一部です。

Jetpack Composeを使用するとKotlinのコード上でUIを定義することができます。
Jetpack Composeを使用することで、Webフロント界隈ではスタンダード(?)になっている宣言的UIをAndroidで実現することができます。「よく使われている」かはまだ微妙なラインですが、今後どんどん使われていく流れを感じます。

accompanist

Jetpack Composeの様々な拡張が提供されているライブラリです。Jetpack Composeを使っているプロジェクトではかなり使用されているように思います。

通信周り

okhttp + retrofit + RxJava(RxKotlin) + RxAndroid + moshi(gson) みたいな構成をよく見ます。 最近はcoroutineを使った非同期処理もよく見かけます。

HTTPクライアント

okhttp

デファクトでしょう。私はこれが無いと生きていけないです。

retrofit2

RESTをいい感じに扱えるライブラリ。okhttpと一緒に使うことが多し。

JSONパーサ

一昔前はJacksonが使われていたらしい?

gson

google製です。よく見ます。私はDeserializerを自分で書かなきゃいけない時など複雑な要件の時に使ってます。

moshi

square製です。最近は専らこっちを使ってます。

画像

glide

画像表示には欠かせない存在です。よく見ます。

picasso

こっちもよく見ます。体感的にはglideの方が使われてそう。

COIL

COILはCoroutine Image Loaderという意味で、Kotlinのコルーチンを利用した画像ライブラリです。軽量かつ高速です。

Rx

RxJava

リアクティブプログラミングというパラダイムのコード記述ができます。学習コストは高いですが覚えると大変便利です。非同期処理用のライブラリだと思われがち。最近は他の技術に置き換える流れを感じますがまだまだ色んなところで使われているし個人的にはこれが無いとかなり辛い。

RxKotlin

RxJavaのKotlin拡張です。KotlinでRxを使うならぜひ導入しましょう。

RxAndroid

Android開発におけるRxJavaでの非同期通信には欠かせない存在です。

RecyclerView

groupie

最近人気すぎて怖い。でも確かに便利です。

epoxy

airbnb製。複雑なRecyclerViewを簡単に構築することができます。DataBindingとも併用が容易で使いやすいです。MvRxなどairbnbの他のライブラリとの相性も良さげ。

デバッグ関連

Log代替

timber

android.util.Logのラッパーです。誰も教えてくれないけどみんな使ってます(主観)。ビルドタイプによる機能の切り替えなどができます。

メモリ管理

leakcanary

信頼と実績のsquare製。アプリのメモリリークを検出し、通知します。当たり前のように使われている感じがします。

通信ログ周り

stetho

okhttpに噛ませるとChromeで通信ログなどが見れます。めちゃ便利。

flipper

Facebook製。Android以外のプラットフォームでも使えます。プラグインを追加することで様々な機能が利用できるようになります。便利〜

その他

Hyperion-Android

色々できます。詳しくはこちらの記事を見てください。

DI

Dependency Injectionの略です。最近は知ってて当たり前感があります。参考

dagger2

square発google製。めちゃくちゃ使われてます。学習コストはかなり高いと思います。

koin

Kotlin実装のDIライブラリ。知名度も上がってきて勢いを感じます。daggerよりわかりやすいので私は好きです。

dagger hilt

AndroidでDaggerをより簡単に扱えるようにしたものです。前述の通り、daggerはかなり学習コストが高いですが、hiltを使うとかなりシンプルな記述でAndroidアプリにdaggerを導入できます。今後のスタンダードになりそうな予感がします。

テスト周り

mockito

モッキングフレームワークです。デファクト感があります。

mockk

Kotlin実装のモッキングライブラリです。最近見かけるようになりました。

spek

Kotlin製のテストフレームワークです

truth

Google製のアサーションライブラリ。AndroidXのテストのドキュメントでも採用されているようです。

その他

ThreeTenABP

Androidで日付を簡単に扱えるライブラリ。誰も教えてくれないけど大変便利で使ってる人も多いはず。

所感

  • Java -> Kotlinの流れを強く感じます(koinとか)
  • 最近のAndroid開発ではdaggerやRxなど学習コストの高いものを覚える必要があり、開発を始める敷居が高くなっているように思います
  • 「これはみんな使ってるっしょ!」みたいなライブラリがあれば是非教えてください
332
356
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
332
356