Эй, ребята! Возьмите чашку кофе ☕️ и давайте создадим виджет списка контактов, используя Jetpack Glance, предоставленный Google.

Что такое Взгляд?

Jetpack Glance — это платформа для создания небольших, легких и эффективных виджетов приложений с использованием API Kotlin. Он предназначен для отображения информации, которую пользователи должны знать с первого взгляда .

Что будем строить?

Как я упоминал в начале, мы создадим виджет списка контактов. Вот как это будет выглядеть.

Настраивать

Давайте добавим зависимости в модуль вашего приложения на основе необходимых вам функций.

dependencies {
   // For AppWidgets support
   implementation("androidx.glance:glance-appwidget:1.0.0-beta01")

   // For interop APIs with Material 2
   implementation("androidx.glance:glance-material:1.0.0-beta01")

   // For interop APIs with Material 3
   implementation("androidx.glance:glance-material3:1.0.0-beta01")
}

Создание виджета списка контактов

Создайте новый файл .kt с именем ContactListWidget . Первое, что нам нужно сделать, это наследоваться от GlanceAppWidget. После этого переопределите функцию provideGlance. Здесь мы создадим пользовательский интерфейс виджета.

Откройте блок provideContent, этот метод очень похож на setContent и позволяет нам использовать компонуемые объекты Jetpack Compose.

override suspend fun provideGlance(context: Context, id: GlanceId) {
    provideContent {
        // ...
    }
}

Перед созданием виджета давайте создадим для него тему.

Тема

Во-первых, мы должны создать файл colorScheme. В моем случае я просто удалил частную собственность из темы приложения, а затем добавил их сюда.

private val colorScheme = ColorProviders(
    light = LightColorScheme,
    dark = DarkColorScheme
)

После этого мы можем вызвать GlanceTheme и передать ему новый colorScheme.

override suspend fun…