JetBrains Compose voor desktop en web bevindt zich nu in de alfafase

JetBrains heeft Compose for Desktop and Web, een port van Google's Jetpack Compose voor Android, uitgebracht voor alpha. Dit is wat er nieuw is.

Als je er nog nooit van hebt gehoord Jetpack Componeren, waar ben je de laatste tijd geweest? Google heeft dit declaratieve UI-framework gemaakt om de standaard XML-layout-engine in Android te vervangen. Met Compose kunnen ontwikkelaars hun lay-outs en bijbehorende logica allemaal in Kotlin maken. JetBrains, het bedrijf achter Kotlin, deed ook mee aan de Compose-actie en werkt eraan om deze naar zowel desktop als internet te porten.

JetBrains Compose voor Desktop en Web is al een tijdje in ontwikkeling. Het heeft een openbare pre-alpha "Technology Preview" die ontwikkelaars kunnen gebruiken om platformonafhankelijke apps te maken in Compose. Ik heb het persoonlijk gebruikt mijn Samsung Firmware Downloader-app, en het werkt behoorlijk goed.

Vandaag promoot JetBrains zijn versie van Compose naar alpha. Dat betekent een stabielere API, samen met enkele nieuwe functies en wijzigingen.

Componeren voor internet

Allereerst het internet. Componeren voor internet is gelijkmatig nieuwer dan Compose voor Desktop, en er ontbreekt nogal wat. Dat betekent echter niet dat het nutteloos is. Hoewel ontwikkelaars misschien niet de fraaie kern-UI-elementen krijgen die beschikbaar zijn voor Desktop en Android, profiteren ontwikkelaars nog steeds van de voordelen van het schrijven in Kotlin met declaratieve ontwerpprincipes.

Nu Compose zich in een alfafase bevindt, zou de Web API stabieler moeten zijn, met minder of geen ingrijpende wijzigingen in de loop van de tijd.

Vensterbeheer samenstellen

Terug naar Desktop: er zijn enkele wijzigingen in de manier waarop ontwikkelaars omgaan met vensters in hun app.

De eerste is een nieuwe samenstelbare venster-API. Hierdoor kunnen ontwikkelaars declaratief communiceren met de vensters in hun app. De venstertitel kan nu bijvoorbeeld worden gewijzigd met een status, en vensters kunnen zelfs worden geopend en gesloten op basis van statussen.

Met een ander deel van de nieuwe venster-API kunnen ontwikkelaars ervoor kiezen nieuwe vensters te openen met een adaptieve (in plaats van een vaste) grootte. Dit betekent dat Compose berekent hoe groot een venster moet zijn op basis van de inhoud, automatisch de initiële grootte instelt en vervolgens het venster opent.

Plug-ins

JetBrains Compose heeft altijd een Gradle-plug-in gehad om compilatie en uitvoering uit te voeren. Met de alpha krijgt deze plug-in een versieverbetering, samen met enkele bugfixes.

Bovenop de Gradle-plug-in is er echter nu een IDE-plug-in voor IntelliJ IDEA en Android Studio om Compose voor desktop en web beter te ondersteunen. Net als Compose voor Android kunnen ontwikkelaars met deze plug-in samenstelbare functies annoteren als previews en lay-outvoorbeelden rechtstreeks in de IDE bekijken.

De plug-in is momenteel erg basic. De enige andere functie die het nu heeft, verwijdert de IDE-lintwaarschuwing over het gebruik van titelhoofdletters voor samenstelbare functienamen. Maar naarmate de tijd verstrijkt, zal het meer functies krijgen, zoals live preview.

Ondersteuning van architectuur

Hoewel het doel van JetBrains Compose is om platformonafhankelijk te zijn, biedt het nog niet helemaal volledige ondersteuning voor alle CPU-architecturen. De alpha breidt de huidige ondersteuning uit naar het volgende:

  • macOS: x86-64 (amd64), arm64
  • Windows: x86-64 (amd64)
  • Linux: x86-64 (amd64), arm64
  • Web: alles wat recent is

Hoewel dat zeker niet alles dekt, wordt de ondersteuning in de toekomst alleen maar beter.

Toekomstige ontwikkelingen

De keuze van JetBrains om Compose naar een alfastatus te brengen is belangrijk. Het betekent dat ze van plan zijn ervoor te blijven ontwikkelen, met eventuele bèta- en stabiele fasen. En uiteraard nog meer functionaliteiten.

Conclusie

Het is best spannend om te zien wat Compose te bieden heeft. Op Android vervangt het een verouderde (hoewel perfect bruikbare) layout-engine. Op desktop en internet biedt het declaratief ontwerp met behulp van een sterk getypeerde taal die gemakkelijker te gebruiken is (althans voor mij) dan op TypeScript gebaseerde talen. Vooral op desktop helpt Compose een behoorlijk grote leemte op te vullen voor functionele layout-engines.

Als je JetBrains Compose zelf wilt uitproberen, bekijk de GitHub-repository voor meer informatie over hoe u aan de slag kunt gaan.