数日前、JetBrainsはブログで、デスクトップアプリケーションJetpack ComposeDesktopを作成するための新しいツールのリリースを発表しました。ロシアにルーツを持つ会社は、ロシア語を話す聴衆を特に好むわけではなく、新製品について急いで教えてくれるので、私は人気者の役割を引き受けます。
Android開発者は、Android Studio4.2のプレビューバージョンで利用できるComposeについてすでに聞いたことがあるかもしれません。私はベータ版をインストールするのが好きではないので、自分の手で新しいテクノロジーを感じることができませんでした。しかし、Compose Desktopについてのニュースを聞いたとき、私はIntelliJIDEA早期アクセスプログラムに抵抗して自分自身を設定することができませんでした。
まず、必要な設定とテンプレートがすべて揃っているIDEA2020.3バージョンをインストールしました。
新しいプロジェクトを作成し、Kotlin1.4.0テンプレートを使用するデスクトップを選択します。Java SDKの最小バージョンは11以上である必要があります。Windows10でテストしましたが、他のプラットフォームはありません。

開発環境で最初のプロジェクトが生成され、メインファイルmain.ktは次のようになります。
import androidx.compose.desktop.Window
import androidx.compose.material.Text
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
fun main() = Window {
var text by remember { mutableStateOf("Hello, World!") }
MaterialTheme {
Button(onClick = {
text = "Hello, Desktop!"
}) {
Text(text)
}
}
}
.

androidx -.
: , , .
import androidx.compose.desktop.Window
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Text
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp
fun main() = Window(title = " ", size = IntSize(300, 250)) {
var count by remember { mutableStateOf(0) }
MaterialTheme {
Column(Modifier.fillMaxSize(), Arrangement.spacedBy(5.dp)) {
Button(modifier = Modifier.align(Alignment.CenterHorizontally), onClick = {
count++
}) {
Text(if (count == 0) "Hello Kitty" else " : $count!")
}
Button(modifier = Modifier.align(Alignment.CenterHorizontally),
onClick = {
count = 0
}) {
Text("")
}
}
}
}
-.

, Android . . Android, Windows (Mac, Linux) . , -.
.