#36 Androidアプリ開発で使用するライブラリなど 2020年7月
2020年7月時点で、Androidアプリ開発で使用するライブラリやツールなどをざっくり紹介してみます。 久しぶりにAndroidアプリ開発をやるぞ!という方の助けになれば幸いです。
Android Studio
AndroidアプリはEclipseではなくAndroid Studioを使用します。安定版は4.0で、ベータ版/プレビュー版として4.1と4.2があります。
安定版のダウンロードはこちら。プレビュー版のダウンロードはこちらからどうぞ(プレビュー版は日本語表示にすると最新でないことがあるため、英語版のリンクにしています)。
Kotlin
「AndroidアプリはJavaで書く」時代から、「AndroidアプリはKotlinで書く」時代にシフトしています。後述のコルーチンや 来年リリース予定のJetpack Composeなど、Kotlinが必須な場面はどんどん増えています。
AndroidX / Android Jetpack
Android
Jetpackが登場し、そこで提供されるライブラリはandroidx.*
という
パッケージで提供されるようになっています。サポートライブラリのアップデートは終了しているので、
AndroidX版をつかうよう修正していきましょう。
公式サイトはこちらです。
appcompat
アプリのベースとなるアクティビティやフラグメントはappcompat版を使用します。Android
SDKに含まれる android.app.Fragment
はdeprecatedになりました。
Navigation
アプリ内の画面遷移にはこのNavigationライブラリを使用します。特に理由がない限り、1アクティビティ複数フラグメントで 開発するのがベストプラクティスです。
公式のガイドはこちらです。
LiveData / ViewModel
LiveDataは監視可能なデータのいれもので、ViewModelはUI関連のデータ管理を担当するモノです。 フラグメント(UI)での処理を記述する際、「LiveDataをViewModelに持たせて使う」という設計パターンが推奨されています。
ConstraintLayout / MotionLayout
制約をベースにViewを配置してくれるレイアウトです。リアクティブにUIが作れるJetpack Composeは2020年7月時点ではアルファ版なので、まだまだConstraintLayoutは現役です。 アニメーションを含む場合、 MotionLayoutの利用も検討してみましょう。
DataBinding / ViewBinding
findViewById()
を書く機会が激減します。DataBindingの場合、レイアウトXMLの
ルート要素をlayout
にする必要がありますが、ViewBindingはその必要もなく、気楽に取り入れることができます。
Kotlinコルーチン
非同期処理を手続きのように書くことができ、RxJavaよりシンプルかつ柔軟に非同期処理を記述することができます。 Android Jetpackで提供されているライブラリもコルーチン対応が進んでいます。
Room
SQLiteDatabaseをとてもかんたんに扱えるようになるライブラリです。ボイラープレートコードがかなり減るので、 導入できそうな場合は導入していきましょう。
Dagger / Hilt
依存性注入(DI)をいい感じにやってくれるライブラリです。Daggerは強力な反面、学ぶのに時間がかかるという 欠点がありましたが、それをいい感じにやってくれるHiltというライブラリがアルファ版ですがリリースされています。
Hiltのドキュメントはこちらです。
Firebase
さまざまなサーバー機能を使うことができます。プッシュ通知を行いたい場合には必須になります。
公式サイトはこちらです。
OkHttp
HTTP通信ライブラリです。すでに使用しているという方も多いでしょう。
公式サイトはこちらです。
AppBundle
ライブラリでもツールでもありませんが、Google Playでアプリをリリースする際、App Bundle(.aab) でリリースすると、ダウンロードサイズを小さくすることができます。2021年のどこかで、新規アプリはこのApp Bundle対応が 必須となるようです。
まとめ
2020年7月時点での、Androidアプリ開発に使用するライブラリやツールなどを紹介してみました。 一度にすべてを導入するのは大変なので、すこしずつ導入をすすめてみてはいかがでしょうか?