Jetpack Compose for Desktop pridáva vrstvu Swing a podporu Apple Silicon

JetBrains vydal novú verziu Jetpack Compose for Desktop, open-source multiplatformového vývojového rámca používateľského rozhrania.

Ak robíte nejakú vývojovú prácu, pravdepodobne ste už počuli o JetBrains. Sú to spoločnosť, ktorá stojí za obrovskou sadou IDE, ktorá zahŕňa IntelliJ (základ pre Android Studio), CLion, PhpStorm a mnoho ďalších. Sú to tiež tí, ktorí vytvorili Kotlin, veľmi populárny multiplatformový programovací jazyk.

A JetBrains sa k tomu opäť vracia. Pred niečo vyše rokom spoločnosť Google predstavila nový modul rozloženia pre Android s názvom Jetpack Compose. Prešlo to odvtedy došlo k niekoľkým zásadným zmenám, ale zmenil sa na kompetentnú (aj keď stále trochu nestabilnú) alternatívu ku klasickým rozloženiam XML systému Android.

Čo má Jetpack Compose spoločné s JetBrains? No po prvé je to napísané v Kotline. JetBrains však tiež potichu pracuje na prenose Compose do priestoru pracovnej plochy. Bolo to verejné ako skorá ukážka vývojára a teraz je JetBrains pripravený oficiálne oznámiť, že existuje.

Čo je Jetpack Compose?

Trochu som o tom hovoril v úvode, ale myslím, že by si to zaslúžilo podrobnejšie vysvetlenie. Ak ste už predtým vyvíjali na Androide, pravdepodobne ste si zvykli, ako fungujú rozloženia. Najprv navrhnete svoje rozloženie v súbore XML a potom interagujete s týmto rozložením z Java alebo Kotlin. Aj keď je funkčný, je trochu zastaraný a môže byť ťažké spravovať rozloženie rozdelené medzi jazyky.

Ako alternatívu k tomu začal Google vyvíjať Jetpack Compose. Compose je nástroj rozloženia pre Android postavený na Kotline. Celý váš kód rozloženia a logiky je na jednom mieste, čo značne uľahčuje interaktivitu. Je to tiež deklaratívne, namiesto imperatívneho štýlu rozložení XML.

Prechod na nástroj deklaratívneho rozloženia z imperatívneho môže chvíľu trvať, než si zvyknete, ale Compose je určite vylepšenie oproti XML, aj keď je stále v počiatočnom štádiu.

Jetpack Compose for Desktop

Compose je teda pekná alternatíva rozloženia pre natívne aplikácie pre Android. Ale nie je to (normálne) multiplatformové. Tu prichádza na rad JetBrains. Spoločnosť preniesla Jetpack Compose do priestoru pracovnej plochy s podporou pre Windows, Linux a macOS (Intel aj ARM).

Aj keď existujú iné nástroje rozloženia, ktoré existujú pre stolné počítače, ako napríklad Electron, JavaFX a UWP, v súčasnosti je to trochu neporiadok. Niektoré nie sú multiplatformové, takže fungujú iba na jednom konkrétnom operačnom systéme. Iné sú technicky multiplatformové, ale ich distribúcia si vyžaduje veľa práce. A stále, s ostatnými je len ťažko pracovať, ako napríklad JavaFX.

Jetpack Compose for Desktop je na druhej strane pomerne jednoduchý na používanie, podporuje škálovanie displeja, má vstavaný štýl a je (takmer) plne multiplatformový. Zatiaľ čo ešte nemôžete kompilovať pre všetky distribúcie z jedného operačného systému, samotný kód je úplne prenosný. Rovnako ako v prípade Androidu je zbalená aplikácia založená na jazyku Java, hoci používatelia na jej používanie nepotrebujú nainštalovaný JDK.

Krížová kompatibilita

Keďže Compose for Desktop je stále nový, chýbajú mu niektoré funkcie. Aby sme vývojárom pomohli obísť tieto obmedzenia, Compose for Desktop je interoperabilný s dvoma z najpopulárnejších nástrojov na rozloženie Java, JavaFX a Swing. Ak máte desktopovú aplikáciu vyvinutú v jednom (alebo oboch) z týchto motorov, môžete začať s prechodom na Compose pri zachovaní vašej súčasnej kódovej základne.

Android + Desktop

Čo ak chcete aplikáciu Compose Android preniesť na plochu? No, môžete to tiež (tak trochu) urobiť. Prvky používateľského rozhrania vašej aplikácie možno jednoducho zdieľať medzi Androidom a počítačom. Nebudete môcť zdieľať všetko, ale určite to uľahčuje vývoj.

Podpora Apple Silicon

Spomenul som to vyššie, ale spomeniem to znova. The nové počítače Apple Silicon Mac sú celkom úžasné, ale procesory sú založené na architektúre CPU ARM, čo znamená, že veľa aplikácií pre macOS momentálne beží cez prekladač Rosetta 2 x86. Aj keď Apple odviedol s týmto prekladom celkom dobrú prácu, natívne programy ARM budú stále fungovať lepšie.

Jetpack Compose for Desktop natívne podporuje Apple Silicon. To znamená, že sa nebudete musieť obávať poklesu výkonu z prekladu alebo budúcej podpory, keď ju Apple ukončí.

Funkčnosť

Takže je celkom dobré, že JetBrains vytvoril nový modul rozloženia pre desktop, ale kto povie, že je lepší ako to, čo máme teraz?

ja.

Použil som najnovšiu dostupnú zostavu v čase písania tohto článku (0.2.0-build132) na vytvorenie jednoduchej aplikácie na udeľovanie povolení pre SystemUI Tuner. Keďže nie som tak oboznámený s Compose a deklaratívnym dizajnom, bolo to pre mňa trochu ťažšie ako aplikácia na rozloženie XML, ale zvládol som to. A jeho použitie je oveľa jednoduchšie ako JavaFX.

Aj keď je podpora tém (t. j. tmavý režim) stále trochu neistá, je celkom jednoduché vytvoriť interaktívne rozloženie a okrem niekoľkých blikaní pri zmene veľkosti okna všetko funguje dobre.

Ak si chcete aplikáciu vyskúšať, zdrojový kód je dostupný na GitHub. Stačí ho importovať pomocou IntelliJ alebo Android Studio a malo by byť pripravené na spustenie.


Osobne som celkom nadšený z Jetpack Compose for Desktop. Predtým som ani nevedel, že existuje, ale už je to môj obľúbený nástroj na rozloženie pracovnej plochy. Viac sa môžete dozvedieť na Webová stránka Jetpack Compose for Desktop alebo na GitHub.

Čo si o tom myslíš? Oplatí sa to vyskúšať a možno aj použiť namiesto iných dostupných rámcov? Daj mi vedieť!

Poďakovanie za odporúčané obrázky: JetBrains na GitHub