JetBrains bringer Jetpack Compose, Googles deklarative designramme til Android, til nettet. Den er tilgængelig som forhåndsvisning i dag.
I de sidste par år har der været et ret stort skub til programudvikling på tværs af platforme. Rammer som React og Flutter blev skabt for at give udviklere mulighed for at dele en enkelt kodebase på tværs af Android, iOS, desktop og endda internettet. Selv JetBrains, firmaet bag nogle af de mest populære IDE'er og Kotlin-programmeringssproget, har arbejdet med udvikling på tværs af platforme. Først med Kotlin Multiplatform, men for nylig med Jetpack Compose.
For et stykke tid tilbage overførte JetBrains Jetpack Compose, Googles deklarative designramme til Android, til skrivebordet. Dette gav mulighed for cross-platform desktop-udvikling baseret på Javas JVM. Ved hjælp af Jetpack Compose kan du lave en app til Android, macOS, Windows og endda Linux, alt sammen fra én kodebase. Men udover iOS mangler der en ret stor platform fra Compose: Internettet.
Det er dog ved at ændre sig. JetBrains har
frigivet hvad de kalder en teknologisk forhåndsvisning af Jetpack Compose til web.Nu er Technology Preview dybest set et fancy navn for pre-alpha. Compose for Web er langtfra klar til at blive brugt i produktionen. Der er ingen tutorials, meget lidt dokumentation, og API'erne er langtfra komplette. Med det sagt, lad os se, hvad Compose for Web tilbyder indtil videre.
I den nuværende version er der to måder, du kan udvikle i Compose for Web: ved at bruge DOM API eller ved at bruge de eksisterende Compose-widgets, såsom Column eller Text.
Hvis du bruger DOM API, har du API-navne, der repræsenterer de forskellige HTML-elementer, som f.eks s, -en, og så videre. Den store forskel mellem Compose og klassiske Kotlin JS er dog, at du kan bruge statsbaseret deklarativt design. Denne mulighed virker som lidt af en bro mellem klassisk webudvikling og fuld deklarativ UI-udvikling. Udover at oprette et layout, lader Compose for Web dig også oprette dynamiske, tilstandsbaserede stylesheets.
Den anden mulighed er, hvad der vil se mere bekendt ud for Android- og Compose-udviklere. Der er præfabrikerede komponenter, såsom Column, Row og Slider, som du kan bruge til at bygge en web-brugergrænseflade. Lige nu er disse ikke særlig komplette, og stilarter og muligheder er ikke fuldt implementeret. Men det giver os i det mindste en idé om, hvad JetBrains har i vente til Compose for Web.
Samlet set er der i øjeblikket ikke rigtig meget at skrive til web. Den er stadig i sin meget tidlige dage. Men det kan betyde meget for fremtiden. Personligt har jeg som Android-udvikler haft problemer med at komme ind i browserbaserede layoutrammer. Grundlæggende HTML og CSS kan være klodset, og React- og Flutter-syntakser er stadig baseret på HTML-design.
Et fuldt udstyret designsprog på tværs af platforme, der ikke er baseret på webdesignprincipper, er ret spændende. Mens Jetpack Compose stadig har lang vej at gå, kan det, JetBrains har planlagt, betyde meget for fremtiden for UI-design.
Hvis du vil lære mere om Compose for Web, tjek JetBrains' meddelelse. Hvis du er interesseret i at lege med den nuværende implementering, gå over til GitHub-lageret.