Jetpack Compose Desktop

Há poucos dias, a JetBrains em seu blog anunciou o lançamento de uma nova ferramenta para a criação de aplicativos de desktop Jetpack Compose Desktop . Uma empresa com raízes russas não favorece particularmente o público que fala russo e não tem pressa em nos contar sobre o novo produto, então assumirei o papel de um divulgador.

Os desenvolvedores do Android podem já ter ouvido falar do Compose , que está disponível na versão de visualização do Android Studio 4.2. Não sou fã de instalar versões beta, então não pude sentir a nova tecnologia com minhas próprias mãos. Mas quando ouvi a notícia sobre o Compose Desktop , não pude resistir e definir para mim mesmo o programa de acesso antecipado IntelliJ IDEA.

Para começar, instalei a versão IDEA 2020.3, que já tem todas as configurações e modelos necessários.

Crie um novo projeto e selecione o modelo Desktop usa Kotlin 1.4.0 . A versão mínima do Java SDK deve ser pelo menos 11. Testei no Windows 10, não tenho outras plataformas.

Modelo em IDEA
Modelo em IDEA

O ambiente de desenvolvimento irá gerar o primeiro projeto e o arquivo principal main.kt terá esta aparência.

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