Компоненты только для Android
Compose Multiplatform построен на основе Jetpack Compose. Большинство функций Compose Multiplatform доступно на всех платформах. Однако есть API и библиотеки, которые можно использовать только в целевой платформе Android. Это связано либо с тем, что они предназначены только для Android, либо с тем, что их ещё не перенесли на другие платформы. На этой странице приводится краткий обзор этих частей API Compose Multiplatform.
API только для Android
API только для Android предназначен исключительно для этой платформы и недоступен на других платформах. Это связано с тем, что другим платформам не нужны некоторые концепции, используемые в Android. Обычно в этом API используются классы из пакета android.* или настраивается поведение, специфичное для Android. Вот несколько примеров частей API только для Android:
класс
android.context.Contextпеременные
LocalContextиLocalConfigurationклассы
android.graphics.BitmapFactoryиandroid.graphics.Bitmapфункция
ImageBitmap.asAndroidBitmap()класс
android.app.Activityкласс
ComposeViewпеременная
LocalViewфункция
Modifier.pointerInteropFilter()библиотека внедрения зависимостей Hilt
Обычно нет веских причин делать такие части API общими, поэтому лучше оставить их только в androidMain.
API с классами Android в сигнатурах
Некоторые части API Compose Multiplatform используют в сигнатурах android.*, androidx.* (за исключением androidx.compose.*), но их поведение применимо и на других платформах:
Управление ресурсами:
stringResource,animatedVectorResource,Fontи класс*.Rдля управления ресурсами. Дополнительную информацию см. в разделе Изображения и ресурсы.Навигация. Дополнительную информацию см. в разделе Навигация и маршрутизация.
класс
ViewModel. Дополнительную информацию см. в разделе Мультиплатформенный ViewModel.библиотека Paging.
компоновка
ConstraintLayout.библиотека Maps.
инструмент Preview и плагин для предварительного просмотра приложений для настольных компьютеров.
класс
WebView.Другие библиотеки Jetpack Compose, которые ещё не перенесены в Compose Multiplatform.
В будущем их могут перенести в commonMain в зависимости от сложности и спроса.
API, которые часто используются при разработке приложений, например разрешения, устройства (Bluetooth, GPS, камера) и операции ввода-вывода (сеть, файлы, базы данных), не входят в область применения Compose Multiplatform.
API без классов Android в сигнатурах
Некоторые части API могут быть доступны только для целевой платформы Android, даже если их сигнатуры не содержат классов android.* или androidx.* и API применим на других платформах. Обычно это связано с тем, что реализация использует множество особенностей платформы, и создание других реализаций для остальных платформ требует времени.
Обычно такие части API переносят в Compose Multiplatform после их появления в Jetpack Compose для целевой платформы Android.
В Compose Multiplatform 1.12.0 следующие части API не доступны в commonMain:
функция
Modifier.imeNestedScroll()функция
Modifier.magnifier()переменная
LocalOverscrollConfigurationбиблиотека material3-adaptive
библиотека material3-window-size-class
Запрос на перенос API Android
Для каждого API, который можно перенести с Android, в YouTrack для Compose Multiplatform есть открытая задача. Если вы считаете, что API можно перенести с Android и сделать общим, но для него ещё нет задачи, создайте её.
© 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-android-only-components.html