Spec-Zone.ru › Kotlin 2

Что нового в Compose Multiplatform 1.11.1

Основные нововведения этого выпуска:

  • Ввод текста с помощью нативных средств iOS

  • Версия v2 API для тестирования Compose UI

  • Улучшена прокрутка в веб-версиях

Полный список изменений доступен на GitHub. Версии отдельных компонентов для этого выпуска перечислены в разделе Зависимости.

Несовместимые изменения и устаревшие API

Обёртка для шейдеров на платформах, отличных от Android

На платформах, отличных от Android, тип Shader переработан: вместо actual typealias типа org.jetbrains.skia.Shader теперь используется специальный класс-обёртка Compose. Это изменение позволяет отделить общий API от прямых зависимостей от Skia/Skiko.

Действия по миграции:

  • Чтобы использовать шейдеры Skia/Skiko в API Compose, оберните их с помощью SkShader.asComposeShader().

  • Чтобы получить доступ к низкоуровневым типам Skia из Shader Compose, используйте свойство-расширение Shader.skiaShader.

  • Если вы используете сторонние библиотеки, зависящие от API Shader, обновите их до более новых совместимых версий.

Повышена минимальная версия Kotlin

Если в проекте используются нативные или веб-цели, для работы с новейшими возможностями необходимо перейти на Kotlin 2.3.10.

Изменения в поддержке целевых платформ iOS

Compose Multiplatform больше не поддерживает целевые платформы Apple x86_64, поскольку в Kotlin они объявлены устаревшими. В результате целевые платформы iosX64 и macosX64 полностью удалены из всех модулей.

Минимальная поддерживаемая версия iOS также повышена с 13.0 до 14.0.

Устаревшие API

  • В Compose Multiplatform 1.9.0 мы добавили компонуемую функцию WebElementView, позволяющую легко интегрировать HTML-элементы в веб-приложение. Оказалось, что выбранное название не совсем понятно, поэтому мы переименовали функцию в HtmlElementView, чтобы точнее отразить её назначение, связанное с HTML. Версия WebElementView объявлена устаревшей; вместо неё следует использовать HtmlElementView.

  • Key.Home объявлен устаревшим из-за неправильного сопоставления. Используйте Key.MoveHome для навигации с клавиатуры или Key.SystemHome для действий на уровне системы.

Все платформы

Тесты Compose UI v2

В Compose Multiplatform добавлена поддержка API ComposeUiTest версии v2 на платформах, отличных от Android. Эти новые API используют StandardTestDispatcher в качестве диспетчера тестов по умолчанию вместо UnconfinedTestDispatcher. Это изменение гарантирует, что сопрограммы выполняются в соответствии с порядком очереди событий, повышая надёжность тестов и приближая их поведение к рабочей среде.

Также добавлена поддержка параметра effectContext в тестах Compose UI v2. С помощью этого параметра можно указать пользовательский контекст сопрограмм при выполнении композиций.

Ранее доступные API тестирования, такие как runComposeUiTest, runSkikoComposeUiTest и runDesktopComposeUiTest, теперь объявлены устаревшими; вместо них следует использовать версии v2.

Skia обновлена до Milestone 144

Версия Skia, используемая в Compose Multiplatform через Skiko, обновлена до Milestone 144.

Ранее использовалась версия Skia Milestone 138. Изменения между этими версиями можно посмотреть в примечаниях к выпуску.

iOS

Ввод текста с помощью нативных средств

В Compose Multiplatform появилась новая реализация ввода текста, использующая нативные UIView iOS для управления вводом с помощью протоколов UITextInput и UIKeyInput. Это обеспечивает полностью нативное поведение при редактировании текста в iOS, включая точное перемещение курсора, нативные жесты и обработку выделения, а также системные контекстные меню с такими пунктами, как Autofill, Translate и Search. Новый подход соответствует внешнему виду и поведению нативных приложений iOS, а также улучшает совместимость с будущими обновлениями Apple.

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

Чтобы включить новый способ ввода текста, используйте параметр usingNativeTextInput в исходном наборе iOS:

@ExperimentalComposeUiApi
BasicTextField(
    value = state,
    keyboardOptions = KeyboardOptions(
        platformImeOptions = PlatformImeOptions {
            usingNativeTextInput(true)
        }
    )
)

Новый нативный способ ввода текста поддерживает API BasicTextField(TextFieldValue) и BasicTextField(TextFieldState), а также совместим с новым API контекстного меню, включаемым с помощью флага isNewContextMenuEnabled.

Параллельная отрисовка включена по умолчанию

В Compose Multiplatform 1.8.0 мы добавили экспериментальную возможность переноса задач отрисовки в выделенный поток рендеринга, которую можно было включить по желанию.

Начиная с Compose Multiplatform 1.11.0 параллельная отрисовка включена по умолчанию.

Веб

Прокрутка в веб-версиях теперь соответствует нативному UI

В Compose Multiplatform производительность прокрутки в веб-версиях уступала нативным пользовательским интерфейсам. В выпуске 1.11.0 были существенно переработаны и исправлены механизмы обработки касаний, благодаря чему прокрутка в веб-приложениях Compose стала соответствовать другим поддерживаемым целевым платформам. Результат этих улучшений можно увидеть в последней веб-версии приложения KotlinConf.

В рамках этой работы также улучшено декодирование изображений Coil в веб-версиях. Если вы используете Coil, обновите его до версии 3.4.0, чтобы получить наилучшие результаты.

Список исправлений, пояснения и демонстрации улучшений доступны в задаче CMP-9727.

Зависимости

Библиотека

Координаты Maven

Версия Jetpack, на которой основана

Среда выполнения

org.jetbrains.compose.runtime:runtime*:1.11.1

Runtime 1.11.2

Пользовательский интерфейс

org.jetbrains.compose.ui:ui*:1.11.1

UI 1.11.2

Foundation

org.jetbrains.compose.foundation:foundation*:1.11.1

Foundation 1.11.2

Material

org.jetbrains.compose.material:material*:1.11.1

Material 1.11.2

Material3

org.jetbrains.compose.material3:material3*:1.11.0-alpha07

Material3 1.5.0-alpha17

Material3 Adaptive

org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha07

Material3 Adaptive 1.3.0-alpha10

Lifecycle

org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-beta01

Lifecycle 2.11.0-beta01

Навигация

org.jetbrains.androidx.navigation:navigation-*:2.9.2

Navigation 2.9.7

Navigation3

org.jetbrains.androidx.navigation3:navigation3-*:1.1.2

Navigation3 1.1.2

Событие навигации

org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.1

Navigation Event 1.1.1

Сохранённое состояние

org.jetbrains.androidx.savedstate:savedstate*:1.4.0

Savedstate 1.4.0

Ядро WindowManager

org.jetbrains.androidx.window:window-core:1.5.1

WindowManager 1.5.1

02 июня 2026 г.
Что нового в Compose Multiplatform 1.12.0Что нового в Compose Multiplatform 1.10.3

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

Spec-Zone.ru

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