JetpackComposeデスクトップ

数日前、JetBrainsはブログで、デスクトップアプリケーションJetpack ComposeDesktopを作成するための新しいツールのリリースを発表しましたロシアにルーツを持つ会社は、ロシア語を話す聴衆を特に好むわけではなく、新製品について急いで教えてくれるので、私は人気者の役割を引き受けます。

Android開発者は、Android Studio4.2のプレビューバージョンで利用できるComposeについてすでに聞いたことがあるかもしれません私はベータ版をインストールするのが好きではないので、自分の手で新しいテクノロジーを感じることができませんでした。しかし、Compose Desktopについてのニュースを聞いたとき、私はIntelliJIDEA早期アクセスプログラムに抵抗して自分自身を設定することができませんでした。

まず、必要な設定とテンプレートがすべて揃っているIDEA2020.3バージョンをインストールしました。

新しいプロジェクトを作成し、Kotlin1.4.0テンプレートを使用するデスクトップを選択しますJava SDKの最小バージョンは11以上である必要があります。Windows10でテストしましたが、他のプラットフォームはありません。

IDEAのテンプレート
IDEAのテンプレート

開発環境で最初のプロジェクトが生成され、メインファイル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)
        }
    }
}

.

デスクトップアプリを作成する
Compose Desktop

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) . , -.

.




All Articles