Twórz UI aplikacji desktopowych przy pomocy Kotlina
JetBrains opublikował właśnie wydanie Milestone 1 nowego frameworku do tworzenia UI aplikacji desktopowych przy pomocy Kotlina — framework ten nazywa się Jetpack Compose for Desktop. Nazwa wynika z tego, że pod spodem narzędzie ma wiele wspólnego z zestawem bibliotek dla urządzeń mobilnych z Androidem od Google’a o nazwie Jetpack Compose. A więc jeśli ktoś ma tam doświadczenie, to nietrudno będzie zacząć z nowością od JetBrains. Warto też dodać, że core API nowego frameworku zachowuje się tak samo, jak jego mobilny odpowiednik, dostarczając nam takie rzeczy, jak różne elementy UI oraz modyfikatory.
Compose for Desktop będzie rozwijane wraz z Jetpack Compose Google’a, tak aby zapewnić, że żadna z tych technologii nie pozostaje w tyle. Developerzy będą też mogli dzielić się konkretnymi implementacjami w UI między desktopem a urządzeniami mobilnymi.
Aplikacje zbudowane z nowym frameworkiem działają na Windowsie, macOS oraz Linuksie, czyli głównych platformach desktopowych.
Opis
Nowe narzędzie przedstawia reaktywne i deklaratywne podejście do tworzenia interfejsów użytkownika na desktopie przy pomocy Kotlina, z API inspirowanym przez takie nowoczesne frameworki, jak React, czy Flutter.
Compose for Desktop pozwala tutaj przede wszystkim na zadeklarowanie UI za pomocą kodu łączącego ze sobą funkcje, które można komponować. Według twórców, ich framework automatycznie synchronizuje stan aplikacji oraz reprezentację wizualną.
Start
Twórcy zapewniają, że rozpoczęcie pracy z Compose for Desktop jest bardzo łatwe. Po skonfigurowaniu zależności możesz ustawić proste UI zachowujące stan, używając do tego zaledwie kilku linijek kodu:
import androidx.compose.desktop.Window
import androidx.compose.foundation.Text
import androidx.compose.material.*
import androidx.compose.runtime.*
fun main() = Window(title = "Compose for Desktop") {
var count by remember { mutableStateOf(0) }
MaterialTheme {
Button(onClick = { count++ }) {
Text(if (count == 0) "Hello World" else "Clicked $count!")
}
}
}
Co więcej, developerzy dostaną również sporą bibliotekę z gotowymi elementami UI do wykorzystania.
Praca na desktopie
Compose for Desktop ma API posiadające funkcje specyficzne do pracy na desktopie, posiadając jednocześnie strukturę tych API, które możemy znaleźć w Jetpack Compose. Pozwalają one więc danej aplikacji reagować na zdarzenia kursora, wysyłać zapytania oraz manipulować rozmiarem i położeniem okien aplikacji. Można też tutaj tworzyć tray icons oraz elementy paska menu.
Twórcy zaznaczają jednak, że wiele jeszcze pozostaje do zrobienia i mają nadzieję podzielić się swoimi odkryciami na temat pracy z frameworkiem na desktopie tak szybko, jak to tylko możliwe. Feedback oczywiście mile widziany.
Podsumowanie
Według twórców, przy wydaniu Milestone 1 użytkownicy nadal mogą trafiać na błędy i niedogodności w pracy. Może tam również niestety brakować niektórych funkcji. Co więcej, niektóre API, z których użytkownicy będą mogli korzystać teraz, prawdopodobnie się zmienią przy okazji pierwszego stabilnego wydania.
Mimo wszystko nowe narzędzie można już testować, a więcej można też dowiedzieć się na stronie Compose for Desktop.