JetBrains har gitt ut Compose for Desktop and Web, en port av Googles Jetpack Compose for Android, til alpha. Her er hva som er nytt.
Hvis du ikke har hørt om Jetpack Compose, hvor har du vært i det siste? Google opprettet dette deklarative UI-rammeverket for å erstatte standard XML-layoutmotoren i Android. Compose lar utviklere lage sine layouter og tilhørende logikk alt i Kotlin. JetBrains, selskapet bak Kotlin, kom også med på Compose-handlingen og jobber med å portere den til både skrivebord og nettet.
JetBrains Compose for Desktop og Web har vært under utvikling en stund nå. Den har hatt en offentlig pre-alfa "Technology Preview" som utviklere kan bruke til å lage apper på tvers av plattformer i Compose. Jeg har personlig brukt det til min Samsung Firmware Downloader-app, og det fungerer ganske bra.
I dag markedsfører JetBrains sin versjon av Compose til alpha. Det betyr en mer stabil API, sammen med noen nye funksjoner og endringer.
Skriv for web
Først av alt, nettet. Compose for Web er jevnt
nyere enn Compose for Desktop, og det mangler ganske mye. Det betyr imidlertid ikke at det er ubrukelig. Selv om utviklere kanskje ikke får de fancy kjerne-UI-elementene som er tilgjengelige for skrivebord og Android, får utviklere fortsatt fordelene ved å skrive i Kotlin med deklarative designprinsipper.Nå som Compose er i et alfastadium, bør Web API være mer stabilt, med færre, om noen, brytende endringer som er gjort over tid.
Komponer Window Management
Tilbake til skrivebordet er det noen endringer i hvordan utviklere samhandler med vinduer i appen deres.
Den første er en ny komponerbart vindu API. Dette lar utviklere samhandle med vinduene i appen deres på en deklarativ måte. For eksempel kan vindustittelen nå endres med en tilstand, og vinduer kan til og med åpnes og lukkes basert på tilstander.
En annen del av det nye vinduet API lar utviklere velge å ha nye vinduer åpne med en adaptiv (i stedet for fast) størrelse. Dette betyr at Compose vil beregne hvor stort et vindu må være basert på innholdet, automatisk angi startstørrelsen og deretter åpne vinduet.
Plugins
JetBrains Compose har alltid hatt en Gradle-plugin for å utføre kompilering og utførelse. Med alfa får denne plugin en versjonsbump, sammen med noen feilrettinger.
På toppen av Gradle-pluginen er det imidlertid nå en IDE-plugin for IntelliJ IDEA og Android Studio for bedre å støtte Compose for Desktop og Web. På samme måte som Compose for Android lar denne plugin utviklere kommentere komponerbare funksjoner som forhåndsvisninger og se forhåndsvisninger av layout direkte i IDE.
Programtillegget er veldig grunnleggende akkurat nå. Den eneste andre funksjonen den har akkurat nå, fjerner IDE-lo-advarselen om bruk av tittel for komponerbare funksjonsnavn. Men det kommer til å få flere funksjoner etter hvert som tiden går, for eksempel live forhåndsvisning.
Arkitekturstøtte
Selv om målet for JetBrains Compose er å være på tvers av plattformer, har den ikke helt full støtte for alle CPU-arkitekturer ennå. Alfaen utvider gjeldende støtte til følgende:
- macOS: x86-64 (amd64), arm64
- Windows: x86-64 (amd64)
- Linux: x86-64 (amd64), arm64
- Web: alt som er nylig
Selv om det absolutt ikke dekker alt der ute, kommer støtten bare til å bli bedre i fremtiden.
Fremtidig utvikling
JetBrains valg om å flytte Compose til en alfatilstand er viktig. Det betyr at de planlegger å fortsette å utvikle for det, med eventuelle beta- og stabile stadier. Og selvfølgelig flere funksjoner.
Konklusjon
Det er ganske spennende å se hva Compose har å bringe. På Android erstatter den en utdatert (selv om den er perfekt brukbar) layoutmotor. På skrivebord og web gir det deklarativ design ved å bruke et sterkt skrevet språk som er enklere å bruke (i hvert fall for meg) enn TypeScript-baserte språk. Spesielt på skrivebordet hjelper Compose med å fylle et ganske stort gap for funksjonelle layoutmotorer.
Hvis du er interessert i å prøve JetBrains Compose selv, sjekk ut GitHub-depotet for mer informasjon om hvordan du kommer i gang.