Jetpack Compose Desktop

Vor einigen Tagen kündigte JetBrains in seinem Blog die Veröffentlichung eines neuen Tools zum Erstellen von Desktop-Anwendungen Jetpack Compose Desktop an . Ein Unternehmen mit russischen Wurzeln bevorzugt das russischsprachige Publikum nicht besonders und hat es nicht eilig, uns von dem neuen Produkt zu erzählen. Deshalb werde ich die Rolle eines Popularisierers übernehmen.

Android-Entwickler haben möglicherweise bereits von Compose gehört , das in der Vorschau-Version von Android Studio 4.2 verfügbar ist. Ich bin kein Fan der Installation von Beta-Versionen, daher konnte ich die neue Technologie nicht mit meinen eigenen Händen spüren. Aber als ich die Nachrichten über Compose Desktop hörte , konnte ich nicht widerstehen und mich auf das IntelliJ IDEA Early Access-Programm einstellen.

Zunächst habe ich die IDEA 2020.3-Version installiert, die bereits alle erforderlichen Einstellungen und Vorlagen enthält.

Erstellen Sie ein neues Projekt und wählen Sie die Vorlage Desktop verwendet Kotlin 1.4.0 aus . Die Mindestversion des Java SDK muss mindestens 11 sein. Ich habe es unter Windows 10 getestet und habe keine anderen Plattformen.

Vorlage in IDEA
Vorlage in IDEA

Die Entwicklungsumgebung generiert das erste Projekt und die Hauptdatei main.kt sieht folgendermaßen aus.

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)
        }
    }
}

.

Desktop-App erstellen
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