Предварительный просмотр интерфейса Compose
Вы можете создавать компонуемые функции предварительного просмотра, чтобы видеть, как ваш интерфейс отображается в IDE (IntelliJ IDEA и Android Studio), не запуская эмулятор. Эта ключевая функция Jetpack Compose позволяет легко визуализировать отдельные компоненты с тестовыми данными в различных конфигурациях. Кроме того, вы можете использовать Compose Hot Reload, чтобы мгновенно видеть изменения кода в работающем приложении для целевой платформы desktop JVM.
Изначально Compose Multiplatform реализовал ограниченную аннотацию @Preview в виде пользовательской библиотеки, но начиная с версии 1.10.0 эта реализация объявлена устаревшей, поскольку исходная аннотация AndroidX теперь полностью поддерживает несколько платформ.
На этой странице вы найдете:
инструкции по включению предварительного просмотра в общем коде для различных конфигураций проекта;
инструкции по использованию и настройке предварительного просмотра с дополнительными параметрами;
обзор поддерживаемых сочетаний Compose Multiplatform, AGP и аннотаций.
Настройка предварительного просмотра
Если вы начинаете с нуля, можно создать новый проект с помощью мастера IDE, в котором уже настроены необходимые параметры
Для начала установите плагин Kotlin Multiplatform для IDE, доступный как для IntelliJ IDEA, так и для Android Studio. Новый проект будет содержать готовую к использованию функцию App с аннотацией @Preview:

Чтобы включить поддержку предварительного просмотра в существующем проекте, добавьте необходимые зависимости в файл build.gradle.kts модуля KMP:
Зависимость от аннотации для исходного набора
commonMain: старую или новую, в зависимости от версии Compose Multiplatform.Зависимость от инструментов в 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.
Доступные аннотации
В 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 см. на странице о переходе.
© 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