JetBrains har udgivet Compose til desktop og web, en port af Googles Jetpack Compose til Android, til alpha. Her er hvad der er nyt.
Hvis du ikke har hørt om Jetpack Compose, hvor har du været for nylig? Google skabte denne deklarative UI-ramme for at erstatte standard XML-layoutmotoren i Android. Compose lader udviklere skabe deres layout og tilhørende logik alt sammen i Kotlin. JetBrains, firmaet bag Kotlin, kom også med i Compose-handlingen og arbejder på at overføre det til både desktop og internettet.
JetBrains Compose til desktop og web har været under udvikling i et stykke tid nu. Det har haft en offentlig pre-alfa "Technology Preview", som udviklere kan bruge til at skabe apps på tværs af platforme i Compose. Jeg har personligt brugt det til min Samsung Firmware Downloader app, og det fungerer ret godt.
I dag promoverer JetBrains sin version af Compose til alpha. Det betyder en mere stabil API sammen med nogle nye funktioner og ændringer.
Skriv til web
Først og fremmest nettet. Compose for Web er lige
nyere end Compose til desktop, og det mangler en del. Det betyder dog ikke, at det er ubrugeligt. Selvom udviklere muligvis ikke får de smarte kerne-UI-elementer, der er tilgængelige til desktop og Android, får udviklere stadig fordelene ved at skrive i Kotlin med deklarative designprincipper.Nu hvor Compose er i et alfa-stadium, burde web-API'en være mere stabil, med færre, hvis nogen, brydende ændringer foretaget over tid.
Skriv vinduesstyring
Tilbage til skrivebordet er der nogle ændringer i, hvordan udviklere interagerer med windows i deres app.
Den første er en ny komponerbart vindue API. Dette lader udviklere interagere deklarativt med vinduerne i deres app. For eksempel kan vinduestitlen nu ændres med en tilstand, og vinduer kan endda åbnes og lukkes baseret på tilstande.
En anden del af det nye vindue API lader udviklere vælge at have nye vinduer åbne med en adaptiv (i stedet for fast) størrelse. Det betyder, at Compose beregner, hvor stort et vindue skal være baseret på dets indhold, automatisk indstille den oprindelige størrelse og derefter åbne vinduet.
Plugins
JetBrains Compose har altid haft et Gradle-plugin til at udføre kompilering og eksekvering. Med alpha får dette plugin et versionsbump sammen med nogle fejlrettelser.
Ud over Gradle-pluginet er der dog nu et IDE-plugin til IntelliJ IDEA og Android Studio for bedre at understøtte Compose til desktop og web. På samme måde som Compose til Android giver dette plugin udviklere mulighed for at kommentere komponerbare funktioner som forhåndsvisninger og se layouteksempler direkte i IDE.
Pluginnet er meget grundlæggende lige nu. Den eneste anden funktion, den har lige nu, fjerner IDE-fnug-advarslen om brug af store og små bogstaver til komponerbare funktionsnavne. Men det vil få flere funktioner, som tiden går, såsom live preview.
Arkitekturstøtte
Selvom målet for JetBrains Compose er at være på tværs af platforme, har den ikke helt fuld understøttelse af alle CPU-arkitekturer endnu. Alfa udvider den nuværende understøttelse til følgende:
- macOS: x86-64 (amd64), arm64
- Windows: x86-64 (amd64)
- Linux: x86-64 (amd64), arm64
- Web: alt nyt
Selvom det bestemt ikke dækker alt derude, vil support kun blive bedre i fremtiden.
Fremtidig udvikling
JetBrains' valg om at flytte Compose til en alfatilstand er vigtigt. Det betyder, at de planlægger at fortsætte med at udvikle sig til det, med eventuelle beta- og stabile stadier. Og selvfølgelig flere funktioner.
Konklusion
Det er ret spændende at se, hvad Compose har at bringe. På Android erstatter den en forældet (selv om den er perfekt brugbar) layoutmotor. På desktop og web bringer det deklarativt design ved hjælp af et stærkt indtastet sprog, der er nemmere at bruge (i det mindste for mig) end TypeScript-baserede sprog. Især på Desktop hjælper Compose med at udfylde et ret stort hul for funktionelle layoutmotorer.
Hvis du er interesseret i at prøve JetBrains Compose selv, tjek GitHub-depotet for flere detaljer om, hvordan du kommer i gang.