JetBrains, selskapet som står bak programmeringspsråket Kotlin, har i mange år jobbet med Kotlin Multiplatform. Dette er en åpen kildekodebasert løsning som skal gjøre det mulig å dele Kotlin-kode på tvers av ulike plattformer.
Kotlin vs. Java: - Mye unødvendig boilerplate
Kotlin Multiplatform (KMP) har vært i beta siden 2017, men onsdag 1. november annonserte JetBrains at kryssplattformløsningen er stabil og klar for å kunne brukes i produksjon. Det skriver DevClass.
– Nå som den er stabil og produksjonsklar vil jeg tro at terskelen for å ta dette i bruk er lavere, sier Jarle Hansen i Systek.
Hansen har Kotlin som sitt foretrukne programmeringsspråk, og ser lanseringen som en gyllen mulighet til å kunne ta i bruk språket i flere settinger.
– Det som jeg syns er spennende med KMP er at man kan dele kode mellom flere ulike miljøer, det inkluderer mobilapper i Android og iOS, men også web og native, sier Hansen.
«Nå som den er stabil og produksjonsklar vil jeg tro at terskelen for å ta dette i bruk er lavere.»
Ikke for GUI
Google valgte i 2019 Kotlin som hovedspråket for utvikling av Android-apper, og i likhet med Java kan Kotlin kompileres til å kjøre på JVM (Java Virtual Machine), men også til native-applikasjoner, JavaScript eller WebAssembly.
Med Kotlin Multiplatform kan man dele kode som ikke er relatert til det grafiske brukergrensesnittet (GUI-et) og bruke denne koden på tvers av ulike plattformer – som mobil, desktop og web.
Poenget er at du skal kunne gjenbruke så mye kode som mulig på tvers av de ulike plattformene, og så skrive native kode der det trengs.
JetBrains jobber imidlertid med en annen løsning, Compose Multiplatform, som skal være et deklarativt kryssplatform UI-rammeverk. Det er basert på Googles Jetpack Compose, som brukes for å lage UI til Android.
Med Compose Multiplatform skal man altså kunne lage UI-et én gang, og gjenbruke det på web, Android, iOS, macOS, Linux og Windows.
"Du kan dele én bit av logikken, all applikasjonslogikken, eller både logikken og UI-et, avhengig av behovene til teamet eller prosjektet ditt", skriver JetBrains.
Compose Multiplatform er allerede stabilt på Android og desktop (JVM), mens iOS er i alfaversjon og web (WASM) er eksperimentell.
– Mange vil skrive native
– Hvis Kotlin Multiplatform uansett ikke kan brukes til å lage UI-et, er det ikke bedre å bruke kryssplattformløsninger som React Native eller Flutter?
– Hva som er den beste løsningen vil komme an på mange faktorer, inkludert kompetanse i teamet. For erfarne Swift-utviklere så vil nok det beste fortsatt være å lage en app basert på dette, sier Jarle Hansen i Systek.
Han synes imidlertid det er fint at man nå får muligheten til å bruke Kotlin-kompetansen på flere ulike plattformer. Men han er spent på om KMP faktisk kommer til å bli tatt i bruk i stort omfang.
– Vi har jo tidligere hatt mange forsøk på å gjøre det samme med å støtte mange plattformer, med sine egne fordeler og ulemper. Til slutt så har mange gått tilbake til å skrive native uansett, sier Hansen.
Han sier det ofte kan være på grunn av ytelseskrav, eller at det rett og slett er vanskelig å lage noe på tvers fordi plattformene har ulike forventninger til hvordan en app skal se ut og fungere.
– Om KMP klarer å skille seg ut her gjenstår å se, men uansett spennende og for min del veldig positivt å få mer Kotlin!
«Til slutt så har mange gått tilbake til å skrive native uansett.»
JavaScript er det minst likte språket - men også blant de mest likte
Arrangerer meetup
Selv om Hansen koder mye i Kotlin, så jobber han personlig ikke så mye med multiplattformløsninger – for hans del går det mest i backendutvikling.
Han forteller imidlertid at han som en av initiativtakerne til Oslo Kotlin Meetup, ofte møter andre utviklere for å dele kunnskap rundt Kotlin.
Oslo Kotlin Meetup har blitt lagt merke til av JetBrains, som nylig tok kontakt med dem og spurte om de hadde lyst til å streame JetBrains "State of Kotlin Multiplatform"-event den 21. november.
– Stort sett pleier det å være et foredrag, men denne gangen vil vi møtes for å følge live streamen fra JetBrains og dele kunnskap om tidligere erfaringer med KMP, sier Hansen.
Han sier han pleier å lære mye av meetupene, og at han liker å lære litt om Kotlin-relaterte temaer som er litt på siden av det han holder på med til daglig.
– Det som blir litt ekstra kult denne gangen er at vi vil ha en egen chat for å sende inn spørsmål direkte til teamet hos JetBrains under eventen.