Jetpack Compose til skrivebord tilføjer Swing-lag og Apple Silicon-understøttelse

click fraud protection

JetBrains har udgivet en ny version af Jetpack Compose til Desktop, en open source-grænsefladeudviklingsramme på tværs af platforme.

Hvis du laver nogen form for udviklingsarbejde, har du sikkert hørt om JetBrains. De er firmaet bag den enorme suite af IDE'er, der inkluderer IntelliJ (basen til Android Studio), CLion, PhpStorm og mange andre. Det er også dem, der har lavet Kotlin, det enormt populære programmeringssprog på tværs af platforme.

Og JetBrains er tilbage på det igen. For lidt over et år siden introducerede Google en ny layoutmotor til Android kaldet Jetpack Compose. Det er gået igennem en del store ændringer siden da, men det er blevet til et kompetent (omend stadig noget ustabilt) alternativ til Androids klassiske XML-layouts.

Hvad har Jetpack Compose med JetBrains at gøre? For det første er det skrevet i Kotlin. Men også JetBrains har i det stille arbejdet på at portere Compose til skrivebordspladsen. Det har været offentligt som et tidligt udviklereksempel, og nu er JetBrains klar til officielt at annoncere, at det eksisterer.

Hvad er Jetpack Compose?

Jeg talte lidt om det i indledningen, men jeg synes, det fortjener noget mere forklaring. Hvis du har udviklet på Android før, er du sikkert vant til, hvordan layouts fungerer. Først designer du dit layout i en XML-fil, og derefter interagerer du med det layout fra Java eller Kotlin. Selvom det er funktionelt, er det lidt forældet, og det kan være svært at administrere dine layouts på tværs af sprog.

Som et alternativ til dette begyndte Google at udvikle Jetpack Compose. Compose er en layoutmotor til Android bygget oven på Kotlin. Al dit layout og logikkode er samlet ét sted, hvilket gør interaktivitet meget nemmere. Det er også deklarativt i stedet for den imperative stil i XML-layouts.

Det kan tage lidt at vænne sig til at flytte til en deklarativ layoutmotor fra en imperativ, men Compose er bestemt en forbedring i forhold til XML, selvom det stadig er i de tidlige stadier.

Jetpack Compose til desktop

Så Compose er et godt layoutalternativ til native Android-apps. Men det er (normalt) ikke på tværs af platforme. Det er her JetBrains kommer ind. Virksomheden har porteret Jetpack Compose til skrivebordspladsen med understøttelse af Windows, Linux og macOS (både Intel og ARM).

Mens der findes andre layoutmotorer til desktop, såsom Electron, JavaFX og UWP, er det lidt af et rod lige nu. Nogle er ikke på tværs af platforme, så de fungerer kun på ét specifikt operativsystem. Andre er teknisk set tværplatforme, men kræver meget arbejde at distribuere. Og stadig, andre er bare en smerte at arbejde med, som JavaFX.

Jetpack Compose for Desktop er derimod relativt nem at bruge, understøtter skærmskalering, har indbygget styling og er (næsten) fuldt ud på tværs af platforme. Selvom du endnu ikke kan kompilere for alle distributioner fra ét operativsystem, er selve koden fuldstændig bærbar. Ligesom med Android er en pakket app baseret på Java, selvom brugere ikke behøver et JDK installeret for at bruge det.

Krydskompatibilitet

Da Compose for Desktop stadig er nyt, mangler den nogle funktioner. For at hjælpe udviklere med at omgå disse begrænsninger er Compose for Desktop interoperabel med to af de mere populære Java-layoutmotorer, JavaFX og Swing. Hvis du har en desktop-app udviklet i en (eller begge) af disse motorer, kan du begynde at skifte til Compose, mens du bibeholder din nuværende kodebase.

Android + Desktop

Hvad hvis du vil bringe din Compose Android-app til skrivebordet? Nå, det kan du også (en slags) gøre. UI-elementerne i din app kan nemt deles mellem Android og desktop. Du vil ikke kunne dele alt, men det gør helt sikkert udviklingen nemmere.

Apple Silicon Support

Jeg nævnte dette ovenfor, men jeg vil nævne det igen. Det nye Apple Silicon Macs er ret fantastiske, men processorerne er baseret på ARM CPU-arkitekturen, hvilket betyder, at mange macOS-apps i øjeblikket kører gennem Rosetta 2 x86-oversætteren. Selvom Apple gjorde et ret godt stykke arbejde med den oversættelse, vil native ARM-programmer stadig køre bedre.

Nå, Jetpack Compose til Desktop understøtter Apple Silicon indbygget. Det betyder, at du ikke behøver at bekymre dig om ydelsesfald fra oversættelse eller om fremtidig support, når Apple stopper med det.

Funktionalitet

Så det er godt, at JetBrains lavede en ny layout-motor til desktop, men hvem vil sige, at den er bedre end den, vi har nu?

Mig.

Jeg brugte den seneste tilgængelige build, da jeg skrev dette (0.2.0-build132) til at lave en simpel app til at give tilladelser til SystemUI Tuner. Da jeg ikke er så fortrolig med Compose og deklarativt design, var det lidt sværere for mig end en XML-layout-app, men jeg gjorde det. Og det er meget nemmere at bruge end JavaFX.

Mens temaunderstøttelse (dvs. mørk tilstand) stadig er lidt usikker, er det ret nemt at bygge et interaktivt layout, og bortset fra et par flimmer, når du ændrer størrelsen på vinduet, fungerer alt fint.

Hvis du vil tjekke appen ud, er kildekoden tilgængelig på GitHub. Bare importer det med IntelliJ eller Android Studio, og det skulle være klar til at køre.


Personligt er jeg ret begejstret for Jetpack Compose til Desktop. Jeg vidste ikke engang, at det eksisterede før, men det er allerede min foretrukne desktop-layoutmaskine. Du kan lære mere på Jetpack Compose for Desktop hjemmeside eller på GitHub.

Hvad synes du om det? Er det værd at tjekke ud og måske endda bruge i stedet for andre tilgængelige rammer? Lad mig vide!

Udvalgte billedkreditter: JetBrains på GitHub