Escritorio Jetpack Compose

Hace unos días, JetBrains en su blog anunció el lanzamiento de una nueva herramienta para la creación de aplicaciones de escritorio Jetpack Compose Desktop . Una empresa con raíces rusas no favorece especialmente a la audiencia de habla rusa y no tiene prisa por contarnos sobre el nuevo producto, por lo que asumiré el papel de divulgador.

Es posible que los desarrolladores de Android ya hayan oído hablar de Compose , que está disponible en la versión preliminar de Android Studio 4.2. No soy fanático de instalar versiones beta, por lo que no podía sentir la nueva tecnología con mis propias manos. Pero cuando escuché las noticias sobre Compose Desktop , no pude resistirme y me puse el Programa de Acceso Temprano IntelliJ IDEA.

Para empezar, instalé la versión IDEA 2020.3, que ya tiene todas las configuraciones y plantillas necesarias.

Cree un nuevo proyecto y seleccione la plantilla Desktop uses Kotlin 1.4.0 . La versión mínima del SDK de Java debe ser al menos 11. Lo probé en Windows 10, no tengo otras plataformas.

Plantilla en IDEA
Plantilla en IDEA

El entorno de desarrollo generará el primer proyecto y el archivo principal main.kt se verá así.

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

.

Redactar aplicación de escritorio
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