Google har frigivet Jetpack Compose i Beta, virksomhedens deklarative UI-motor skrevet i Kotlin lavet for at forenkle UI-udvikling.
Her er vi igen. Jeg skrev om Jetpack Compose, Googles nye UI-motor, dengang den gik ind alfa, og igen når JetBrains porterede det til desktop-platforme. I dag er betaudgivelsen af Jetpack Compose her.
I tilfælde af at du ikke er fanget af alle de nye UI-teknologier, der findes (jeg bebrejder dig ikke), og du ikke vil for at læse de andre artikler igennem (nu giver jeg dig skylden), her er en hurtig beskrivelse af, hvad det hele handler om. Jetpack Compose er en deklarativ UI-motor skrevet i Kotlin, der har til formål at erstatte (eller i det mindste være et levedygtigt alternativ til) klassiske imperative UI-motorer, som Androids XML-layouts. Jeg vil ikke komme ind på forskellen mellem deklarative og imperative layouts, så lad os bare sige, at Jetpack Compose er en kraftfuld kode-only layout-motor, der kan gøre UI-implementering meget nemmere.
Med det af vejen, hvad betyder en beta-udgivelse til Compose helt præcist? Nå, lad os se.
API
Ethvert godt framework har brug for en API (per definition). I præ-alfa- og alfastadierne arbejdede Google hårdt på at opbygge Compose's API, så det var så intuitivt og nyttigt som muligt. Og ligesom ethvert godt projekt gennemgik det mange revisioner. Det kan være svært at bruge Compose i disse stadier, da API'er kunne fjernes eller omdøbes uden megen advarsel.
Nu hvor vi er på betastadiet, er Google overbevist om, at API'en er komplet og stabil. Det betyder ikke flere (drastiske) fjernelser eller ændringer, så du kan bruge mere tid på faktisk at lave din app end at følge med i API-ændringer.
Selvfølgelig betyder en stabil API ikke en uforanderlig. Google vil stadig tilføje funktioner og ændre ting, men nu vil der være korrekte udfasningsmeddelelser og udskiftningscyklusser.
Coroutine Support
Husk når Google udfasede AsyncTask i Android, og alle var bekymrede og så glemte det helt? Det kan du nok takke Kotlins coroutine-ramme for. I sin mest basale form er det en erstatning for AsyncTask, men det er også meget mere kraftfuldt, meget mere fleksibelt og meget mere tværplatform.
Mens Jetpack Compose har På en måde understøttede brugen af koroutiner, det har for det meste været som et interoperabilitetslag. Med betaen er coroutiner dog indbygget i Compose, så du kan bruge dine asynkrone opkald korrekt igen.
Animationer
Animationer kan være lidt irriterende at bygge i Android, og i et stykke tid var de også i Compose. I betaversionen lover Google dog en "let at bruge" animations-API for at gøre tingene lettere. De har også opdateret Android Studio til at inkludere understøttelse af forhåndsvisning af disse animationer, så du ikke behøver at implementere din app for at teste dem.
Layouts
Android Studio har nogle ret pæne værktøjer til at håndtere layouts. Den ene er layout-forhåndsvisningen, som lader dig se cirka, hvordan dit layout vil se ud på en enhed, og andet er layoutinspektøren, som lader dig se præcis, hvad der sker med din apps layout, når den er på en enhed.
Før nu fungerede forhåndsvisningen af layoutet med Compose-layouts, men du var nødt til at genopbygge din app, hver gang du ændrede noget, for at forhåndsvisningen skulle opdateres. Nu hvor vi er i beta, er Android Studio dog blevet opdateret til at inkludere live forhåndsvisninger af din Compose-kode.
Også før nu fungerede layoutinspektøren stort set ikke med Compose-layouts. Det ville vise et skærmbillede af appen, men det var ikke i stand til rent faktisk at udtrække og vise en wireframe af alle layoutkomponenterne. Ligesom med forhåndsvisningen af layoutet er Android Studio blevet opdateret med en ny layoutinspektør, der understøtter Compose-layouts.
Tal tilbage
Lad os nu tale om tilgængelighed, en utrolig vigtig funktion, som desværre normalt glemmes. Heldigvis glemte Google det ikke, selvom det kunne være kommet før: Compose-layouts understøtter nu Tal tilbage, en avanceret skærmlæser på Android, der både læser indhold for dig og lader dig interagere med skærmen ved hjælp af enkle bevægelser.
Selvom dette er den eneste større tilgængelighedsfunktion for nu, har Google lovet, at der vil blive tilføjet andre tilgængelighedsfunktioner. Bedre sent end aldrig, gætter jeg på, og forhåbentlig vil disse funktioner være tættere integreret med Compose, end de var med XML.
Og det er stort set alt.
Hvis du vil i gang med Jetpack Compose, er det et godt tidspunkt nu. Du har en funktionsfuld API til at lege med og lære, og masser af selvstudier direkte fra Google. Tjek ud Googles udviklerwebsted for mere information om opdateringer og hvordan du bruger Compose.
Og fortæl os selvfølgelig, hvad du synes om ændringerne i beta eller din mening om Compose generelt.