A JetBrains kiadta a Jetpack Compose for Desktop új verzióját, amely egy nyílt forráskódú, többplatformos UI fejlesztői keretrendszer.
Ha bármilyen fejlesztési munkát végez, valószínűleg hallott már a JetBrainsről. Ők a cég a hatalmas IDE-készlet mögött, amely magában foglalja az IntelliJ-t (az Android Studio alapja), a CLiont, a PhpStormot és sok mást. Ők is készítettek Kotlin, a rendkívül népszerű, többplatformos programozási nyelv.
És a JetBrains ismét visszatért hozzá. Valamivel több mint egy éve a Google bemutatott egy új elrendezési motort az Android számára Jetpack Compose néven. Ez már átment jó néhány jelentős változás történt azóta, de az Android klasszikus XML-elrendezéseinek megfelelő (bár még mindig kissé instabil) alternatívává vált.
Mi köze a Jetpack Compose-nak a JetBrainshez? Nos, egyrészt Kotlinban van megírva. Ugyanakkor a JetBrains csendben dolgozik a Compose asztali területre történő portolásán. Korai fejlesztői előzetesként nyilvános volt, és most a JetBrains készen áll arra, hogy hivatalosan is bejelentse, hogy létezik.
Mi az a Jetpack Compose?
Kicsit beszéltem róla a bevezetőben, de szerintem megérdemelne egy kis magyarázatot. Ha korábban már fejlesztett Androidon, valószínűleg megszokta az elrendezések működését. Először megtervezi az elrendezést egy XML-fájlban, majd interakcióba lép a Java vagy a Kotlin elrendezésével. Bár működőképes, kissé elavult, és nehéz lehet kezelni, ha az elrendezések nyelvek között vannak felosztva.
Ennek alternatívájaként a Google megkezdte a Jetpack Compose fejlesztését. A Compose egy elrendezési motor az Android számára, amely a Kotlinra épül. Az összes elrendezés és logikai kód egy helyen található, ami nagyban megkönnyíti az interaktivitást. Ez is deklaratív, az XML-elrendezések kötelező stílusa helyett.
A deklaratív elrendezési motorra való áttérés kötelező megszokást igényelhet, de a Compose határozottan előrelépés az XML-hez képest, bár még csak a kezdeti szakaszban van.
Jetpack Compose asztali számítógépre
Tehát a Compose egy szép elrendezési alternatíva a natív Android-alkalmazásokhoz. De ez nem (általában) platformok közötti. Itt jön be a JetBrains. A vállalat a Jetpack Compose alkalmazást az asztali területre portolta, Windows, Linux és macOS (Intel és ARM) támogatásával.
Bár léteznek más elrendezési motorok asztali számítógépekhez, mint például az Electron, a JavaFX és az UWP, ez most egy kis káosz. Egyesek nem többplatformosak, így csak egy adott operációs rendszeren működnek. Mások technikailag többplatformosak, de terjesztésük sok munkát igényel. És mégis, másokkal csak fájdalmas dolgozni, mint például a JavaFX.
A Jetpack Compose for Desktop viszont viszonylag könnyen használható, támogatja a kijelző méretezését, beépített stílust tartalmaz, és (majdnem) teljesen többplatformos. Bár még nem lehet az összes disztribúcióhoz egyetlen operációs rendszerből fordítani, maga a kód teljesen hordozható. Az Androidhoz hasonlóan a csomagolt alkalmazások is Java alapúak, bár a felhasználóknak nincs szükségük JDK-ra a használatához.
Keresztkompatibilitás
Mivel a Compose for Desktop még új, hiányzik néhány funkció. Annak érdekében, hogy a fejlesztők megkerüljék ezeket a korlátozásokat, a Compose for Desktop együttműködik a két legnépszerűbb Java elrendezési motorral, a JavaFX-szel és a Swing-el. Ha az egyik (vagy mindkét) motorban fejlesztett asztali alkalmazást, akkor a jelenlegi kódbázis megőrzése mellett megkezdheti az átállást a Compose szolgáltatásra.
Android + asztali számítógép
Mi a teendő, ha a Compose Android alkalmazást asztali számítógépre szeretné vinni? Nos, ezt is megteheti (valahogy). Az alkalmazás felhasználói felület elemei könnyen megoszthatók Android és asztali számítógép között. Nem fogsz tudni mindent megosztani, de ez minden bizonnyal megkönnyíti a fejlesztést.
Apple Silicon támogatás
Ezt fentebb említettem, de még egyszer megemlítem. A új Apple Silicon Mac gépek elég csodálatosak, de a processzorok az ARM CPU architektúrán alapulnak, ami azt jelenti, hogy jelenleg sok macOS-alkalmazás fut a Rosetta 2 x86 fordítón. Míg az Apple elég jó munkát végzett ezzel a fordítással, a natív ARM programok továbbra is jobban fognak futni.
Nos, a Jetpack Compose for Desktop natívan támogatja az Apple Silicon-t. Ez azt jelenti, hogy nem kell aggódnia a fordításból eredő teljesítménycsökkenés miatt vagy a jövőbeni támogatás miatt, ha az Apple leállítja a fordítást.
Funkcionalitás
Szóval jó és jó, hogy a JetBrains új elrendezési motort készített asztali számítógépekhez, de ki mondhatja, hogy ez jobb a mostaninál?
Nekem.
A legfrissebb elérhető buildet (0.2.0-build132) használtam, hogy létrehozzak egy egyszerű engedélyt kiadó alkalmazást a SystemUI Tuner számára. Mivel nem ismerem annyira a Compose-t és a deklaratív tervezést, kicsit nehezebb volt számomra, mint egy XML-elrendezésű alkalmazás, de megcsináltam. És sokkal könnyebben használható, mint a JavaFX.
Noha a tématámogatás (azaz a sötét mód) még mindig kissé zűrzavaros, elég könnyű interaktív elrendezést készíteni, és az ablak átméretezése során előforduló néhány villogástól eltekintve minden jól működik.
Ha ki szeretné nézni az alkalmazást, a forráskód elérhető a következő helyen GitHub. Csak importálja az IntelliJ-vel vagy az Android Studióval, és készen kell állnia a futtatásra.
Én személy szerint nagyon izgatott vagyok a Jetpack Compose for Desktop miatt. Korábban nem is tudtam, hogy létezik, de máris ez a választott asztali elrendezés motorom. Többet megtudhat a Jetpack Compose asztali webhelyre vagy a GitHubon.
Mit gondolsz róla? Érdemes megnézni és esetleg más elérhető keretrendszer helyett használni? Tudasd velem!
Kiemelt képek forrásai: JetBrains a GitHubon