Jetpack撰写桌面

几天前,JetBrains在其博客中宣布发布了一种用于创建桌面应用程序Jetpack Compose Desktop的新工具一家有俄罗斯血统的公司并不会特别喜欢说俄语的观众,因此也不会急于向我们介绍新产品,因此,我将担任推广者的角色。

Android开发人员可能已经听说过Compose,可在Android Studio 4.2的预览版中使用。我不喜欢安装Beta版本,所以我自己感觉不到新技术。但是,当我听到有关Compose Desktop的消息时,我无法抗拒并为自己设置了IntelliJ IDEA抢先体验计划。

首先,我安装了IDEA 2020.3版本,该版本已经具有所有必需的设置和模板。

创建一个新项目,然后选择“桌面使用Kotlin 1.4.0”模板Java SDK的最低版本必须至少为11。我在Windows 10上进行了测试,没有其他平台。

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