Jetpack Compose と LicenseToolsPlugin を組み合わせてライセンス画面を作る
はじめに
Jetpack Compose と LicenseToolsPlugin を組み合わせてライセンス画面を作ってみる。
LicenseToolsPlugin を使えるようにする
LicenseToolsPlugin とはクックパッド社が作成するライブラリ管理プラグインになります。
以下のように build.gralde の plugins に LicenseToolsPlugin を追加することで使えるようになります。
(プラグインの導入方法は LicenseToolsPlugin のページに記載がありますのでそちらを参照してください)
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id "com.cookpad.android.plugin.license-tools" version "1.2.8"
}
LicenseToolsPlugin で yml ファイルを生成する
LicenseToolsPlugin では yml ファイルにてライブラリ情報を管理する仕組みになっています。
yml ファイルですが LicenseToolsPlugin の updateLicenses コマンドを実行することで作成できます。
./gradlew updateLicenses
yml ファイルで未入力の情報を記入していく
生成された yml ファイルの一部の情報が未入力になっています。
(今回の場合は #COPYRIGHT HOLDER# が未入力の情報になります)
- artifact: androidx.activity:activity-compose:+
name: activity-compose
copyrightHolder: #COPYRIGHT HOLDER#
license: The Apache Software License, Version 2.0
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
url: https://developer.android.com/jetpack/androidx/releases/activity#1.3.0
未入力の項目がある場合 html ファイルの出力に失敗するので未入力となっている情報を手作業で記入していきます。(今回の場合は TEST というテキストを適当に入れていますが本来であれば適切な情報をライブラリごとに設定する必要がありますので注意してください)
- artifact: androidx.activity:activity-compose:+
name: activity-compose
copyrightHolder: TEST TEST TEST
license: The Apache Software License, Version 2.0
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
url: https://developer.android.com/jetpack/androidx/releases/activity#1.3.0
yml ファイルから html ファイルを生成する
LicenseToolsPlugin では yml ファイルから html ファイルを生成できるようになっています。
html ファイルは LicenseToolsPlugiin の generateLicensePage コマンドを実行することで作成できます。
./gradlew generateLicensePage
ちなみに html ファイルはプロジェクトの app フォルダに licenses.html という名称で作成されます。
生成した html ファイルを WebView で表示する
あとは AndroidView で WebView を生成して、作成した html ファイルを読み込むだけです。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
AndroidView(factory = ::WebView, modifier = Modifier.fillMaxSize()) { webView ->
with(webView) {
loadUrl("file:///android_asset/licenses.html")
}
}
}
}
}
おわりに
起動してみると以下のようにライブラリ画面が表示できます。というように Jetpack Compose を利用する場合でも LicenseToolsPlugin を使えばライブラリ画面を簡単に実装できます。
Discussion