JetBrains bringer Jetpack Compose, Googles deklarative designrammeverk for Android, til nettet. Den er tilgjengelig som forhåndsvisning i dag.
I løpet av de siste årene har det vært et ganske stort løft for programutvikling på tvers av plattformer. Rammer som React og Flutter ble laget for å tillate utviklere å dele en enkelt kodebase på tvers av Android, iOS, skrivebord og til og med nettet. Til og med JetBrains, selskapet bak noen av de mest populære IDE-ene og programmeringsspråket Kotlin, har jobbet med utvikling på tvers av plattformer. Først med Kotlin Multiplatform, men nylig med Jetpack Compose.
For en stund tilbake porterte JetBrains Jetpack Compose, Googles deklarative designrammeverk for Android, til skrivebordet. Dette gjorde det mulig for skrivebordsutvikling på tvers av plattformer basert på Javas JVM. Ved å bruke Jetpack Compose kan du lage en app for Android, macOS, Windows og til og med Linux, alt fra én kodebase. Men foruten iOS, mangler det en ganske stor plattform fra Compose: Internett.
Det er i ferd med å endre seg. JetBrains har løslatt det de kaller en teknologiforhåndsvisning av Jetpack Compose for Web.
Nå er Technology Preview i utgangspunktet et fancy navn for pre-alpha. Compose for Web er ikke på langt nær klar til å brukes i produksjon. Det er ingen opplæringsprogrammer, veldig lite dokumentasjon, og API-ene er på langt nær komplette. Med det sagt, la oss se hva Compose for Web tilbyr så langt.
I den gjeldende versjonen er det to måter du kan utvikle i Compose for Web: ved å bruke DOM API, eller ved å bruke de eksisterende Compose-widgetene, for eksempel Column eller Text.
Hvis du bruker DOM API, vil du ha API-navn som representerer de forskjellige HTML-elementene, som f.eks s, en, og så videre. Den store forskjellen mellom Compose og klassisk Kotlin JS er imidlertid at du kan bruke statsbasert deklarativ design. Dette alternativet virker som litt av en bro mellom klassisk nettutvikling og full deklarativ UI-utvikling. I tillegg til å lage et oppsett, lar Compose for Web deg også lage dynamiske, tilstandsbaserte stilark.
Det andre alternativet er det som vil se mer kjent ut for Android- og Compose-utviklere. Det er ferdiglagde komponenter, som Column, Row og Slider, som du kan bruke til å bygge et nettgrensesnitt. Akkurat nå er disse ikke veldig komplette, og stiler og alternativer er ikke fullt implementert. Men det gir oss i det minste en idé om hva JetBrains har i vente for Compose for Web.
Totalt sett er det for øyeblikket ikke så mye å skrive for web. Den er fortsatt i den veldig tidlige dager. Men det kan bety mye for fremtiden. Personlig, som Android-utvikler, har jeg hatt problemer med å komme inn i nettleserbaserte layoutrammer. Grunnleggende HTML og CSS kan være klønete, og React- og Flutter-syntaksene er fortsatt basert på HTML-design.
Et fullt utstyrt designspråk på tvers av plattformer som ikke er basert på webdesignprinsipper er ganske spennende. Mens Jetpack Compose fortsatt har en lang vei å gå, kan det JetBrains har planlagt bety mye for fremtiden for UI-design.
Hvis du vil lære mer om Compose for Web, sjekk ut JetBrains' kunngjøring. Hvis du er interessert i å leke med den nåværende implementeringen, gå over til GitHub-depotet.