58
Help us understand the problem. What are the problem?

posted at

updated at

Androidアプリ開発における便利なライブラリたち

はじめに

今回は僕がAndroidアプリ開発においてとても便利だと感じたライブラリを紹介していきます。

1. Timber

TimberとはAndroidの通常のLogクラスの上にユーティリティを提供する、小さくて拡張可能なAPIを持つロガーです。

Android界隈では超がつくほど有名なあのJakeWhartonが作ったライブラリです。

通常Androidにおけるログは

Log.d("debug", "hogehoge")

というふうにログを出力しますが、このTimberを使うと

Timber.d("debug: hogehoge"

というふうに引数を一つ減らしてログを出力できます。
このTimberはAndroid標準のLogクラスをラップしているらしいので非常に軽量です。

またrelease版ではログを出力したくない場合もあると思いますが、それはアプリケーションクラスで

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()

        if(BuildConfig.Debug) {
            Timber.plant(Timber.DebugTree())
        }
    }
}

としてあげるとrelease版ではログを出力しないでくれます。とても便利ですね。

Treeをplantしてあげるという表現、とてもおしゃれ

2.CircleImageView

ImageViewを丸くしたいということがよくあると思いますが(僕はよくある)、そんな時にCircleImageViewがとても便利です。
https://github.com/hdodenhof/CircleImageView

普段はこれを使わないと、drawableを自分で自作してあーだこーだやらなくては行けませんが、このライブラリを使うと簡単に丸いImageViewが使用できます。

使い方は特にImageViewと変わらず、xmlでCircleImageViewを書いてあげるだけ。

オリジナルのプロパティもかなりあり、ボーダーの色、ボーダーの太さ、背景色など自由にカスタマイズできます。

3.Glide

Glideは、画像読み込みライブラリです。
APIなどで受け取ったURLをそのまま使用し、画像を表示できます。

一昔前はAsyncTaskを使ったりとかなりだるかったのですが、これを知ってから画像読み込みがかなり楽になりました。

こちらも使い方はとても簡単


val imageView: ImageView = findViewById(R.id.imageView)
Glide.with(context).load(url).into(imageView)

とするだけ。

ImageViewのBindingAdapterを作ればもっと便利ですね


@BindingAdapter("imageUrl")
fun ImageView.setImageUrl(imageUrl: String?) {
    imageUrl ?: return
    Glide.with(context).load(imageUrl).into(this)
}

こんなBindingAdapterを作って、xml側で

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:imageUrl="@{url}"/>

こうするだけ。
あとはライブラリ側で勝手に画像を読み込んで、ImageViewに表示してくれます

まとめ

世の中には便利なライブラリがたくさんありますね。
皆さんのおすすめのライブラリがあったらぜひ教えてください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
58
Help us understand the problem. What are the problem?