Spec-Zone.ru › Kotlin 2

Предварительный просмотр интерфейса Compose

Вы можете создавать компонуемые функции предварительного просмотра, чтобы видеть, как ваш интерфейс отображается в IDE (IntelliJ IDEA и Android Studio), не запуская эмулятор. Эта ключевая функция Jetpack Compose позволяет легко визуализировать отдельные компоненты с тестовыми данными в различных конфигурациях. Кроме того, вы можете использовать Compose Hot Reload, чтобы мгновенно видеть изменения кода в работающем приложении для целевой платформы desktop JVM.

Чтобы включить предварительный просмотр Compose в общем коде проекта Kotlin Multiplatform, необходима целевая платформа Android, поскольку для предварительного просмотра используются библиотеки Android.

Изначально Compose Multiplatform реализовал ограниченную аннотацию @Preview в виде пользовательской библиотеки, но начиная с версии 1.10.0 эта реализация объявлена устаревшей, поскольку исходная аннотация AndroidX теперь полностью поддерживает несколько платформ.

На этой странице вы найдете:

  • инструкции по включению предварительного просмотра в общем коде для различных конфигураций проекта;

  • инструкции по использованию и настройке предварительного просмотра с дополнительными параметрами;

  • обзор поддерживаемых сочетаний Compose Multiplatform, AGP и аннотаций.

Настройка предварительного просмотра

Если вы начинаете с нуля, можно создать новый проект с помощью мастера IDE, в котором уже настроены необходимые параметры

Для начала установите плагин Kotlin Multiplatform для IDE, доступный как для IntelliJ IDEA, так и для Android Studio. Новый проект будет содержать готовую к использованию функцию App с аннотацией @Preview:

Preview composables in IDE

Чтобы включить поддержку предварительного просмотра в существующем проекте, добавьте необходимые зависимости в файл build.gradle.kts модуля KMP:

  1. Зависимость от аннотации для исходного набора commonMain: старую или новую, в зависимости от версии Compose Multiplatform.

  2. Зависимость от инструментов в classpath, объявление которой зависит от конфигурации Android.

Зависимость от аннотации должна указывать на одну из реализаций @Preview, например:

kotlin {
    sourceSets {
        commonMain.dependencies {
            // The new annotation, available in CMP 1.10.0 and later
            implementation("org.jetbrains.compose.ui:ui-tooling-preview:1.10.0")
            // To import the new annotation:
            // import androidx.compose.ui.tooling.preview.Preview

            // The old annotation, deprecated in CMP 1.10.0
            implementation("org.jetbrains.compose.components:components-ui-tooling-preview:1.10.0")
            // To import the old annotation:
            // import org.jetbrains.compose.ui.tooling.preview.Preview
        }
    }
}

Зависимость от инструментов следует объявить в корневом блоке dependencies {} файла build.gradle.kts модуля общего кода одним из двух способов — в зависимости от конфигурации целевой платформы Android:

  • Если вы используете плагин com.android.application или com.android.library:

    dependencies {
        debugImplementation("org.jetbrains.compose.ui:ui-tooling:1.10.0")
    }
    
  • Если вы используете плагин com.android.kotlin.multiplatform.library:

    dependencies {
        androidRuntimeClasspath("org.jetbrains.compose.ui:ui-tooling:1.10.0")
    }
    

Использование предварительного просмотра

Compose Multiplatform позволяет использовать все возможности предварительного просмотра, предоставляемые инструментами Android. Можно сделать предварительный просмотр интерактивным, скопировать его как изображение или отобразить несколько вариантов одной и той же компонуемой функции @Preview с разными параметрами. Подробнее о доступных функциях см. в руководстве Android по предварительному просмотру.

Настраивая дополнительные параметры, можно управлять тем, как функция @Composable отображается при предварительном просмотре во время разработки. Compose Multiplatform поддерживает следующие параметры аннотации @Preview:

  • name: отображаемое имя предварительного просмотра.

  • group: имя группы для предварительного просмотра, позволяющее логически упорядочивать и выборочно отображать связанные предварительные просмотры.

  • widthDp: максимальная ширина в dp.

  • heightDp: максимальная высота в dp.

  • locale: текущая локаль приложения.

  • showBackground: флаг, определяющий, следует ли применять к предварительному просмотру цвет фона по умолчанию.

  • backgroundColor: 32-разрядное целое число цвета ARGB, задающее цвет фона предварительного просмотра.

Поддерживаемые конфигурации

В зависимости от версий зависимостей и стиля конфигурации проекта для включения предварительного просмотра Compose можно использовать несколько поддерживаемых сочетаний:

  • Compose Multiplatform 1.9 со старой аннотацией @Preview и Android, настроенным с помощью androidTarget {}.

  • Compose Multiplatform 1.10 со старой аннотацией @Preview и Android, настроенным с помощью androidTarget {}.

  • Compose Multiplatform 1.10 с новой аннотацией @Preview и Android, настроенным с помощью androidTarget {}.

  • Compose Multiplatform 1.10 с новой аннотацией @Preview и Android, настроенным с помощью androidLibrary {} при AGP 9.0. Подробную информацию об обновлении приложений KMP см. в руководстве по переходу на AGP 9.0.

Поддержка AGP 9.0 в IntelliJ IDEA скоро появится; ожидается, что она будет добавлена в первом квартале 2026 года.

Доступные аннотации

В Compose Multiplatform доступны две аннотации @Preview:

  • androidx.compose.ui.tooling.preview.Preview

    • Это исходная аннотация Android Jetpack, адаптированная для нескольких платформ в Compose Multiplatform 1.10. Она поддерживает все параметры из объявления Android в общем коде.

    • Необходимая зависимость времени выполнения — org.jetbrains.compose.ui:ui-tooling-preview.

    • В дальнейшем рекомендуется использовать именно эту аннотацию.

  • org.jetbrains.compose.ui.tooling.preview.Preview

    • Это первая мультиплатформенная реализация аннотации, имитирующая работу только на Android. Она поддерживает ограниченное число параметров, но предоставляет базовые возможности предварительного просмотра.

    • Необходимая зависимость времени выполнения — org.jetbrains.compose.components:components-ui-tooling-preview.

    • Эта аннотация объявлена устаревшей в Compose Multiplatform 1.10.

Чтобы использовать одну из этих аннотаций в общем коде, добавьте соответствующую зависимость времени выполнения для исходного набора commonMain, как показано выше.

Конфигурации целевой платформы Android

Если в вашем проекте используется плагин Android Gradle 8.x, в части проекта Kotlin Multiplatform следует использовать либо плагин приложения Android (com.android.application), либо плагин библиотеки Android (com.android.library), а конфигурацию Android следует указывать в блоке androidTarget {} файла build.gradle.kts.

Для Android Gradle plugin 9.0 доступен новый плагин библиотеки KMP для Android (com.android.kotlin.multiplatform.library), который добавляет блок androidLibrary {} для конфигурации Android. Этот плагин можно использовать и с AGP 8.x, но такое сочетание имеет известные проблемы и не рекомендуется.

AGP 9.0 поддерживается в последней стабильной версии Android Studio, но пока не поддерживается в IntelliJ IDEA; поддержка ожидается в первом квартале 2026 года.

Подробную информацию о переходе на AGP 9.0 см. на странице о переходе.

4 марта 2026 г.
Адаптивные макетыОбзор ресурсов

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform/compose-previews.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API