Google har gitt ut Jetpack Compose i Beta, selskapets deklarative UI-motor skrevet i Kotlin laget for å forenkle UI-utvikling.
Her er vi igjen. Jeg skrev om Jetpack Compose, Googles nye brukergrensesnittmotor, da den gikk inn alfa, og igjen når JetBrains porterte den til skrivebordsplattformer. I dag er betaversjonen av Jetpack Compose her.
I tilfelle du ikke er fanget opp av alle de nye UI-teknologiene som eksisterer (jeg klandrer deg ikke) og du ikke vil for å lese gjennom de andre artiklene (nå klandrer jeg deg), her er en rask beskrivelse av hva dette handler om. Jetpack Compose er en deklarativ UI-motor skrevet i Kotlin som har som mål å erstatte (eller i det minste være et levedyktig alternativ for) klassiske imperative UI-motorer, som Androids XML-oppsett. Jeg vil ikke komme inn på forskjellen mellom deklarative og imperative layouter, så la oss bare si at Jetpack Compose er en kraftig layoutmotor med kun kode som kan gjøre UI-implementering mye enklere.
Med det ute av veien, hva betyr egentlig en beta-utgivelse for Compose? Vel, la oss se.
API
Ethvert godt rammeverk trenger et API (per definisjon). I pre-alfa- og alfastadiene jobbet Google hardt med å bygge opp Composes API for å være så intuitivt og nyttig som mulig. Og akkurat som alle gode prosjekter, gikk det gjennom mange revisjoner. Å bruke Compose i disse stadiene kan være vanskelig siden APIer kan fjernes eller gi nytt navn uten mye advarsel.
Nå som vi er på betastadiet, er Google overbevist om at API-en er komplett og stabil. Det betyr ikke flere (drastiske) fjerninger eller endringer, så du kan bruke mer tid på å lage appen din enn å følge med på API-endringer.
En stabil API betyr selvfølgelig ikke en uforanderlig. Google vil fortsatt legge til funksjoner og endre ting rundt, men nå vil det være riktige avviklingsmeldinger og erstatningssykluser.
Coroutine-støtte
Husk når Google avviklet AsyncTask i Android, og alle var bekymret og glemte det helt? Det kan du nok takke Kotlins koroutineramme for. I sin mest grunnleggende form er det en erstatning for AsyncTask, men det er også mye kraftigere, mye mer fleksibelt og mye mer på tvers av plattformer.
Mens Jetpack Compose har på en måte støttet bruken av korutiner, det har for det meste vært som et interoperabilitetslag. Med betaen er imidlertid coroutines innebygd i Compose, slik at du kan bruke de asynkroniserte anropene dine på riktig måte igjen.
Animasjoner
Animasjoner kan være litt irriterende å bygge i Android, og en stund var de i Compose også. I betaversjonen lover Google imidlertid en "enkel å bruke" animasjons-API for å gjøre ting enklere. De har også oppdatert Android Studio for å inkludere støtte for forhåndsvisning av disse animasjonene, slik at du ikke trenger å distribuere appen din for å teste dem.
Oppsett
Android Studio har noen ganske pene verktøy for å håndtere oppsett. Den ene er layoutforhåndsvisningen, som lar deg se omtrent hvordan layouten din vil se ut på en enhet, og en annen er layoutinspektøren, som lar deg se nøyaktig hva som skjer med appens layout når den er på en enhet.
Før nå fungerte layoutforhåndsvisningen med Compose-oppsett, men du måtte bygge om appen hver gang du endret noe for at forhåndsvisningen skulle oppdateres. Nå som vi er i beta, har Android Studio imidlertid blitt oppdatert for å inkludere live forhåndsvisninger av Compose-koden din.
Også før nå fungerte ikke layoutinspektøren med Compose-oppsett. Det ville vise et skjermbilde av appen, men det var ikke i stand til å trekke ut og vise en wireframe av alle layoutkomponentene. Akkurat som med forhåndsvisningen av layout, har Android Studio blitt oppdatert med en ny layoutinspektør som støtter Compose-oppsett.
Snakke tilbake
La oss nå snakke om tilgjengelighet, en utrolig viktig funksjon som dessverre vanligvis glemmes. Heldigvis glemte ikke Google, selv om det kunne ha kommet tidligere: Compose-oppsett støtter nå Snakke tilbake, en avansert skjermleser på Android som både leser innhold for deg og lar deg samhandle med skjermen ved hjelp av enkle bevegelser.
Selv om dette er den eneste store tilgjengelighetsfunksjonen for nå, har Google lovet at andre tilgjengelighetsfunksjoner vil bli lagt til. Bedre sent enn aldri, antar jeg, og forhåpentligvis vil disse funksjonene være tettere integrert med Compose enn de var med XML.
Og det er stort sett alt.
Hvis du vil komme i gang med Jetpack Compose, er det en ganske god tid nå. Du har en funksjonskomplett API å leke med og lære, og massevis av opplæringsprogrammer rett fra Google. Sjekk ut Googles utviklernettsted for mer informasjon om oppdateringer og hvordan du bruker Compose.
Og fortell oss selvfølgelig hva du synes om endringene i beta eller din mening om Compose generelt.