Beberapa hari yang lalu, JetBrains dalam blognya mengumumkan rilis alat baru untuk membuat aplikasi desktop Jetpack Compose Desktop . Perusahaan dengan akar bahasa Rusia tidak terlalu menyukai audiens berbahasa Rusia dan tidak terburu-buru memberi tahu kami tentang produk baru, jadi saya akan mengambil peran sebagai pemopuler.
Pengembang Android mungkin sudah mendengar tentang Tulis , yang tersedia dalam versi pratinjau Android Studio 4.2. Saya bukan penggemar menginstal versi beta, jadi saya tidak bisa merasakan teknologi baru dengan tangan saya sendiri. Tetapi ketika saya mendengar berita tentang Compose Desktop , saya tidak dapat menahan diri dan menetapkan sendiri Program Akses Awal IntelliJ IDEA.
Untuk memulainya, saya menginstal versi IDEA 2020.3, yang sudah memiliki semua pengaturan dan templat yang diperlukan.
Buat proyek baru dan pilih template Desktop menggunakan Kotlin 1.4.0 . Versi minimum Java SDK harus minimal 11. Saya mengujinya di Windows 10, saya tidak memiliki platform lain.

Lingkungan pengembangan akan menghasilkan proyek pertama dan file utama main.kt akan terlihat seperti ini.
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) . , -.