Связь между Compose Multiplatform и Jetpack Compose

Compose Multiplatform — это кроссплатформенный инструментарий для создания пользовательского интерфейса, разработанный JetBrains. Он расширяет инструментарий Google Jetpack Compose для Android, добавляя поддержку других целевых платформ.
Compose Multiplatform позволяет использовать API Compose из общего кода Kotlin, благодаря чему вы можете писать общий код пользовательского интерфейса Compose, который будет работать на Android, iOS, настольных компьютерах и в вебе.
Compose Multiplatform |
Jetpack Compose |
|
|---|---|---|
Платформы |
Android, iOS, настольные компьютеры, веб |
Android |
Разработчик |
JetBrains |
Jetpack Compose и компонуемые функции
Jetpack Compose — это декларативный инструментарий для создания пользовательских интерфейсов нативных приложений Android. В его основе лежат компонуемые функции, помеченные аннотацией @Composable. Эти функции определяют части интерфейса и автоматически обновляются при изменении базовых данных. Вы можете объединять компонуемые функции для создания макетов, обработки пользовательского ввода, управления состоянием и применения анимации. Jetpack Compose включает распространённые компоненты пользовательского интерфейса, такие как Text, Button, Row и Column, которые можно настраивать с помощью модификаторов.
Compose Multiplatform основан на тех же принципах. Он использует общие с Jetpack Compose компилятор и среду выполнения Compose, а также те же API: функции @Composable, средства управления состоянием, такие как remember, компоненты макета, модификаторы и поддержку анимации. Это значит, что вы можете применить свои знания Jetpack Compose в Compose Multiplatform, чтобы создавать кроссплатформенные интерфейсы для Android, iOS, настольных компьютеров и веба.
Возможности Compose Multiplatform и Jetpack Compose
Разумеется, у Compose Multiplatform есть особенности и нюансы, связанные с конкретными платформами:
На странице Компоненты только для Android перечислены API, тесно связанные с платформой Android и поэтому недоступные из общего кода Compose Multiplatform.
Некоторые API для отдельных платформ, например API для управления окнами на настольных компьютерах или API совместимости с UIKit для iOS, доступны только на соответствующих платформах.
Ниже приведён обзор доступности популярных компонентов и API:
Compose Multiplatform |
Jetpack Compose |
|
|---|---|---|
Да |
Да |
|
Да |
Да |
|
Да |
Да |
|
Да |
Да |
|
Да |
Да |
|
Да, за исключением |
Да |
|
Да |
Да |
|
Да |
||
Да |
||
Да |
||
Ресурсы |
Библиотека ресурсов Compose Multiplatform с использованием класса |
Система ресурсов Android с использованием класса |
Нет |
Да |
|
Сторонние библиотеки для компонентов пользовательского интерфейса, навигации, архитектуры и других задач |
Библиотеки Jetpack Compose и Compose Multiplatform |
Технические подробности
Compose Multiplatform основан на коде и выпусках, публикуемых Google. Хотя Google сосредоточен на Jetpack Compose для Android, Google и JetBrains тесно сотрудничают, чтобы обеспечить поддержку Compose Multiplatform.
В Jetpack входят библиотеки, разрабатываемые Google, например Foundation и Material, которые Google публикует для Android. Чтобы API, предоставляемые этими библиотеками, можно было использовать в общем коде, JetBrains поддерживает их многоплатформенные версии, публикуемые для целевых платформ, отличных от Android.
При сборке приложения Compose Multiplatform для Android используются артефакты Jetpack Compose, опубликованные Google. Например, если добавить compose.material3 в зависимости, в целевом модуле Android проект будет использовать androidx.compose.material3:material3, а в остальных целевых модулях — org.jetbrains.compose.material3:material3. Это происходит автоматически на основе метаданных модулей Gradle в многоплатформенных артефактах.
Библиотеки для Compose Multiplatform
С помощью Compose Multiplatform вы можете публиковать библиотеки, использующие API Compose, как библиотеки Kotlin Multiplatform. Благодаря этому их можно использовать из общего кода Kotlin для нескольких платформ.
Поэтому, если вы создаёте новую библиотеку с API Compose, рассмотрите возможность воспользоваться этим и создать многоплатформенную библиотеку с помощью Compose Multiplatform. Если вы уже создали библиотеку Jetpack Compose для Android, подумайте о том, чтобы сделать её многоплатформенной. В экосистеме уже доступно множество библиотек Compose Multiplatform.
Если библиотека опубликована с помощью Compose Multiplatform, приложения, использующие только Jetpack Compose, по-прежнему могут использовать её без каких-либо затруднений: они просто используют артефакты библиотеки для Android.
Что дальше
Подробнее о реализации Compose Multiplatform для следующих компонентов:
© 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-multiplatform-and-jetpack-compose.html