Jetpack Glance を用いた AppWidget の開発で AppWidget のプレビューを表示させる方法です。
実装
Jetpack Compose のプレビュー周りの実装と同じような感じで実装します。
依存の追加
androidx.glance:glance-preview と androidx.glance:glance-appwidget-preview の依存を追加します。
androidxGlancePreview = { module = "androidx.glance:glance-preview", version.ref = "glance" }
androidxGlanceAppwidgetPreview = { module = "androidx.glance:glance-appwidget-preview", version.ref = "glance" }
注意点としては Jetpack Compose の androidx.compose.ui:ui-tooling-preview のように androidx.glance:glance-appwidget-preview の方はリリースビルドに含まないように依存を追加します。
androidx.glance:glance-preview がプレビューのアノテーションのみを持ち、リリースビルドには不要ですが実際にプレビューを表示する実装が androidx.glance:glance-appwidget-preview に含まれているためです。
dependencies {
implementation(libs.androidxGlancePreview)
debugImplementation(libs.androidxGlanceAppwidgetPreview)
}
プレビューの表示
あとは Jetpack Compose と同じ要領で AppWidget のプレビューを実装します。@Preview の import 間違いだけ注意です。
import androidx.glance.preview.Preview
@OptIn(ExperimentalGlancePreviewApi::class)
@Preview
@Composable
private fun PreviewAppWidget() {
GlanceTheme {
AppWidget()
}
}
プレビューの制限
Glance AppWidget 1.1.1 と Android Studio Panda 1 時点の内容です。
AppWidget のプレビューは Jetpack Compose のプレビューのようにプレビューの端末インストールや Interactive Mode のような機能は備えておらず、単にプレビューをするだけのものとなっています。
唯一プレビューで可能なことがプレビューの画像としてコピーする機能です。これは AppWidget に設定するプレビュー画像にそのまま使えるので地味ですが覚えておくと便利かもしれないです。
