Compose Multiplatform — первая программа
Compose Multiplatform — первая программа
Compose Multiplatform — декларативный UI на Kotlin для Android, iOS, Desktop и Web (экспериментально). Один UI-код на нескольких платформах.
База Kotlin: Первая программа · Android Compose: Экосистема · Корутины.
Создание проекта
В Android Studio: File → New → Project → Kotlin Multiplatform App
или шаблон на kmp.jetbrains.com.
Минимальная цель для старта — Desktop (JVM).
Зависимости (фрагмент build.gradle.kts)
plugins {
kotlin("multiplatform") version "1.9.24"
id("org.jetbrains.compose") version "1.6.11"
}
kotlin {
jvm("desktop") {
compilations.all {
kotlinOptions.jvmTarget = "17"
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
}
}
val desktopMain by getting {
dependencies {
implementation(compose.desktop.currentOs)
}
}
}
}
compose.desktop {
application {
mainClass = "MainKt"
}
}
Общий UI (commonMain)
App.kt:
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
@Composable
fun App() {
var count by remember { mutableStateOf(0) }
MaterialTheme {
Column(
modifier = Modifier.fillMaxSize().padding(24.dp),
verticalArrangement = Arrangement.spacedBy(12.dp)
) {
Text("Compose Multiplatform")
Text("Счётчик: $count")
Button(onClick = { count++ }) {
Text("Увеличить")
}
}
}
}
Точка входа Desktop
desktopMain/kotlin/main.kt:
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
fun main() = application {
Window(onCloseRequest = ::exitApplication, title = "Hello CMP") {
App()
}
}
./gradlew :desktopRun
(имя задачи зависит от шаблона — в IDE: Run configuration для desktop target.)
Платформы
| Target | Статус |
|---|---|
| Android | стабильно (Jetpack Compose) |
| Desktop JVM | стабильно |
| iOS | стабильно (нативный рендер Skia) |
| Web | экспериментально |
Бизнес-логику держите в commonMain, платформенный код — в androidMain, iosMain, desktopMain.
Дальше
- Ktor — первая программа для общего backend;
- мобильный раздел: /encyclopedia/4-code-dev/4-12-mobilnye-prilozheniya/1135.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). История Kotlin - создание языка JetBrains для плавной совместимости с Java и современной разработки. Экосистема Kotlin-приложений - инструменты, фреймворки и мультиплатформенные сценарии разработки. Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Набор советов, правил, принципов и обычаев в разработке на этом языке. Основы Kotlin - архитектура проекта, платформенные модули и базовые принципы разработки на языке. Типизация, набор правил определения типа данных значений языка. Операторы и выражения в Kotlin - логика вычислений, приоритеты операций и идиоматичный стиль записи условий. Циклы и управляющие конструкции в Kotlin - идиоматичные способы итерации, условия и управление выполнением. ООП в Kotlin - классы, модификаторы доступа, наследование и идиоматичное проектирование объектных структур. Кавычки, точки, запятые, скобки и прочие знаки препинания. Kotlin использует набор зарезервированных слов для построения синтаксических конструкций языка. Все ключевые слова разделены на категории по назначению. Набор функций, которые включены в стандартную библиотеку языка.История языка Kotlin
Экосистема Kotlin-приложений
Что требуется знать перед началом изучения языка программирования Kotlin
Рекомендации по разработке на Kotlin
Основы языка Kotlin
Типы данных и объявление переменных
Операторы и выражения в Kotlin
Циклы и управляющие конструкции
Объектно-ориентированное программирование в Kotlin
Синтаксис и пунктуация в Kotlin
Ключевые слова языка Kotlin
Встроенные функции и расширения Kotlin