Jetpack Compose for Desktop dodaje Swing sloj i podršku za Apple Silicon

JetBrains je izdao novu verziju Jetpack Compose for Desktop, open-source cross-platform UI razvojnog okvira.

Ako se bavite bilo kakvom razvojnom djelatnošću, vjerojatno ste čuli za JetBrains. Oni su tvrtka koja stoji iza ogromnog paketa IDE-a koji uključuje IntelliJ (osnovu za Android Studio), CLion, PhpStorm i mnoge druge. Oni su također ti koji su napravili Kotlin, iznimno popularan višeplatformski programski jezik.

I JetBrains se opet vraća na to. Prije nešto više od godinu dana Google je predstavio novi mehanizam za izgled za Android pod nazivom Jetpack Compose. Prošlo je dosta velikih promjena od tada, ali se pretvorio u kompetentnu (iako još uvijek donekle nestabilnu) alternativu Androidovim klasičnim XML izgledima.

Kakve veze Jetpack Compose ima s JetBrainsom? Pa, kao prvo, napisano je u Kotlinu. Ali također, JetBrains je u tišini radio na prijenosu Composea na prostor radne površine. Bio je javan kao rani razvojni pregled, a sada je JetBrains spreman službeno objaviti da postoji.

Što je Jetpack Compose?

O tome sam malo govorio u uvodu, ali mislim da zaslužuje malo više objašnjenja. Ako ste prije razvijali na Androidu, vjerojatno ste navikli na to kako izgleda izgleda. Prvo dizajnirate svoj izgled u XML datoteci, a zatim komunicirate s tim izgledom iz Jave ili Kotlina. Iako je funkcionalan, pomalo je zastario, a može biti teško upravljati raspoređivanjem rasporeda na više jezika.

Kao alternativu ovome, Google je počeo razvijati Jetpack Compose. Compose je mehanizam za raspored za Android izgrađen na Kotlinu. Sav vaš izgled i logički kod su na jednom mjestu, što interaktivnost čini puno lakšom. Također je deklarativan, umjesto imperativnog stila XML izgleda.

Prijelaz na mehanizam za deklarativni raspored s imperativnog može potrajati privikavanje, ali Compose je definitivno poboljšanje u odnosu na XML, iako je još uvijek u ranoj fazi.

Jetpack Compose za stolno računalo

Dakle, Compose je lijepa alternativa rasporedu za izvorne Android aplikacije. Ali nije (obično) višeplatformski. Tu na scenu stupa JetBrains. Tvrtka je prenijela Jetpack Compose na desktop prostor, s podrškom za Windows, Linux i macOS (i Intel i ARM).

Iako postoje i drugi mehanizmi za izgled koji postoje za stolna računala, kao što su Electron, JavaFX i UWP, trenutno je malo u haosu. Neki nisu višeplatformski, pa rade samo na jednom određenom operativnom sustavu. Drugi su tehnički višeplatformski, ali zahtijevaju puno posla za distribuciju. Pa ipak, s drugima je teško raditi, poput JavaFX-a.

Jetpack Compose for Desktop, s druge strane, relativno je jednostavan za korištenje, podržava skaliranje prikaza, ima ugrađeni stil i (gotovo) potpuno je višeplatformski. Iako još ne možete kompajlirati za sve distribucije iz jednog operativnog sustava, sam kod je potpuno prenosiv. Baš kao i kod Androida, zapakirana aplikacija temelji se na Javi, iako korisnici ne moraju imati instaliran JDK da bi je koristili.

Unakrsna kompatibilnost

Budući da je Compose for Desktop još uvijek nov, nedostaju mu neke značajke. Kako bi pomogao programerima da zaobiđu ova ograničenja, Compose for Desktop je interoperabilan s dva popularnija Java mehanizma za raspored, JavaFX i Swing. Ako imate aplikaciju za stolno računalo razvijenu na jednom (ili na oba) od ovih motora, možete započeti prijelaz na Compose zadržavajući svoju trenutnu bazu kodova.

Android + stolno računalo

Što ako želite prenijeti svoju Android aplikaciju Compose na radnu površinu? Pa, također možete (na neki način) to učiniti. Elementi korisničkog sučelja vaše aplikacije mogu se jednostavno dijeliti između Androida i stolnog računala. Nećete moći sve podijeliti, ali to svakako olakšava razvoj.

Podrška za Apple Silicon

Ovo sam već spomenuo, ali ću to opet spomenuti. The novi Apple Silicon Macovi prilično su nevjerojatni, ali procesori se temelje na ARM CPU arhitekturi, što znači da se mnoge macOS aplikacije trenutno izvode preko prevoditelja Rosetta 2 x86. Dok je Apple napravio prilično dobar posao s tim prijevodom, izvorni ARM programi i dalje će raditi bolje.

Pa, Jetpack Compose for Desktop izvorno podržava Apple Silicon. To znači da se nećete morati brinuti o padu performansi zbog prijevoda ili o budućoj podršci kada je Apple ukine.

Funkcionalnost

Dakle, sve je dobro i dobro što je JetBrains napravio novi mehanizam za izgled za desktop, ali tko može reći da je bolji od onoga što sada imamo?

Mi.

Upotrijebio sam najnoviju dostupnu verziju u trenutku pisanja ovog teksta (0.2.0-build132) za izradu jednostavne aplikacije za dodjelu dopuštenja za SystemUI Tuner. Budući da nisam toliko upoznat s Composeom i deklarativnim dizajnom, bilo mi je malo teže od aplikacije s XML rasporedom, ali uspio sam. I puno je lakši za korištenje nego JavaFX.

Iako je podrška za teme (tj. tamni način rada) još uvijek pomalo sumnjiva, prilično je lako izgraditi interaktivni izgled, a osim nekoliko titranja prilikom promjene veličine prozora, sve radi dobro.

Ako želite provjeriti aplikaciju, izvorni kod je dostupan na GitHub. Samo ga uvezite pomoću IntelliJ-a ili Android Studija i trebao bi biti spreman za rad.


Osobno sam prilično uzbuđen zbog Jetpack Compose za stolno računalo. Prije nisam ni znao da postoji, ali to je već moj izbor za radnu površinu. Više možete saznati na Web stranica Jetpack Compose for Desktop ili na GitHubu.

Što mislite o tome? Vrijedi li ga provjeriti i možda čak koristiti umjesto drugih dostupnih okvira? Javi mi!

Autori istaknutih slika: JetBrains na GitHubu