Il y a quelques jours, JetBrains dans son blog annonçait la sortie d'un nouvel outil de création d'applications de bureau Jetpack Compose Desktop . Une entreprise d'origine russe ne favorise pas particulièrement le public russophone et n'est pas pressée de nous parler du nouveau produit, je vais donc jouer le rôle d'un vulgarisateur.
Les développeurs Android ont peut-être déjà entendu parler de Compose , disponible dans la version préliminaire d'Android Studio 4.2. Je ne suis pas fan de l'installation de versions bêta, donc je ne pouvais pas ressentir la nouvelle technologie de mes propres mains. Mais quand j'ai entendu les nouvelles de Compose Desktop , je n'ai pas pu résister et me fixer le programme d'accès anticipé IntelliJ IDEA.
Pour commencer, j'ai installé la version IDEA 2020.3, qui contient déjà tous les paramètres et modèles nécessaires.
Créez un nouveau projet et sélectionnez le bureau utilise le modèle Kotlin 1.4.0 . La version minimale du SDK Java doit être d'au moins 11. Je l'ai testé sur Windows 10, je n'ai pas d'autres plates-formes.
L'environnement de développement générera le premier projet et le fichier principal main.kt ressemblera à ceci.
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)
}
}
}
.
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) . , -.