Spec-Zone.ru › Kotlin 2

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

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

  • Автоматический подбор резервного шрифта для веба

  • MCP-сервер для ИИ-агентов в Compose Hot Reload

  • API v2 для окон и диалогов на настольных платформах

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

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

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

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

В предыдущей версии, использовавшейся в Compose Multiplatform 1.11, была Milestone 144. Изменения между этими версиями можно посмотреть в примечаниях к выпуску.

Это обновление также устраняет конфликты дублирующихся символов в iOS в приложениях, которые уже включают собственную библиотеку Skia (например, в приложениях на основе Chromium).

iOS

Повышена производительность прокрутки ленивых компоновок

В Compose Multiplatform для iOS повышена производительность прокрутки ленивых компоновок. Деактивация элементов списка выполняется вне этапа отрисовки, благодаря чему отрисовка завершается быстрее, а прокрутка становится плавнее.

Веб

Автоматический подбор резервного шрифта

Раньше символы, отсутствующие в загруженных шрифтах приложения, отображались в виде символов-заменителей (□, так называемый «тофу»).

Теперь Compose Multiplatform для веба автоматически загружает по мере необходимости нужные поднаборы шрифта Noto, если при отрисовке встречаются символы, для которых не найден шрифт. После загрузки шрифтов Compose повторно компонує затронутый текст. Обратите внимание: символы-тофу могут ненадолго появиться, пока не будет загружен нужный шрифт.

Настольные платформы

MCP-сервер для ИИ-агентов в Compose Hot Reload

Теперь Compose Hot Reload поставляется с экспериментальным сервером Model Context Protocol (MCP), который позволяет ИИ-агентам для написания кода напрямую взаимодействовать с запущенным приложением Compose.

Раньше, когда ИИ-агент изменял код Compose, не было надежного способа проверить результат: агент не мог убедиться, что горячая перезагрузка прошла успешно, увидеть отрисованный интерфейс или прочитать журналы выполнения и исключения. С MCP-сервером агенты могут запускать перезагрузку, делать снимки экрана, изучать семантическое дерево, имитировать щелчки и ввод данных, а также читать журналы приложения без вашего участия.

Полный список MCP-инструментов, доступных ИИ-агенту, и сведения о подключении см. в разделе MCP-сервер для ИИ-агентов.

API v2 для окон и диалогов

Мы представили новый экспериментальный API v2 для WindowState и DialogState на настольных платформах, устраняющий ряд ограничений существующего API. API v2 доступен в подпакете androidx.compose.ui.window.v2.

API v2 позволяет гибче управлять расположением и размером окон и диалогов. Вы можете:

  • Выбирать экран, на котором будет отображаться окно

  • Задавать собственную логику позиционирования и изменения размера, в том числе с учетом исходного размера содержимого

  • Задавать минимальный и максимальный размер окна

  • Располагать диалоги относительно родительского окна

API v2 также явно учитывает асинхронный характер изменений состояния окна, разделяя запрошенное и фактическое состояния.

Например, чтобы открыть окно фиксированного размера по центру экрана:

import androidx.compose.material.Text
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.application
import androidx.compose.ui.window.v2.Window
import androidx.compose.ui.window.v2.WindowBoundsProvider
import androidx.compose.ui.window.v2.WindowPositionProvider
import androidx.compose.ui.window.v2.WindowSizeProvider
import androidx.compose.ui.window.v2.rememberWindowState

@OptIn(ExperimentalComposeUiApi::class)
fun main() = application {
    val windowState = rememberWindowState(
        initialBoundsProvider = WindowBoundsProvider(
            positionProvider = WindowPositionProvider.CenteredOnScreen,
            sizeProvider = WindowSizeProvider.Fixed(DpSize(400.dp, 200.dp))
        )
    )

    Window(
        onCloseRequest = ::exitApplication,
        state = windowState,
    ) {
        Text("Hello, World!", fontSize = 48.sp)
    }
}

API v2 также позволяет реализовать сценарии, которые ранее были невозможны: например, подгонять размер окна под содержимое и при этом позволять содержимому расширяться (с помощью модификаторов, таких как fillMaxSize()), если окно становится больше. Подробности см. на странице документации API v2 для окон и диалогов.

Зависимости

Библиотека

Координаты Maven

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

Runtime

org.jetbrains.compose.runtime:runtime*:1.12.0

Runtime 1.12.0

UI

org.jetbrains.compose.ui:ui*:1.12.0

UI 1.12.0

Foundation

org.jetbrains.compose.foundation:foundation*:1.12.0

Foundation 1.12.0

Material

org.jetbrains.compose.material:material*:1.12.0

Material 1.12.0

Material3

org.jetbrains.compose.material3:material3*:1.12.0-alpha03

Material3 1.5.0-alpha22

Material3 Adaptive

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

Material3 Adaptive 1.3.0-beta02

Lifecycle

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

Lifecycle 2.11.0

Navigation

org.jetbrains.androidx.navigation:navigation-*:2.10.0-alpha02

Navigation 2.10.0-alpha05

Navigation3

org.jetbrains.androidx.navigation3:navigation3-*:1.2.0-alpha02

Navigation3 1.2.0-alpha04

Navigation Event

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

Navigation Event 1.1.1

Savedstate

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

Savedstate 1.4.0

WindowManager Core

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

WindowManager 1.5.1

25 августа 2026 г.
Начало работы с Compose MultiplatformЧто нового в Compose Multiplatform 1.11.1

© 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-112.html

Spec-Zone.ru

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