Google släpper Jetpack Compose beta med ett stabilt API

Google har släppt Jetpack Compose i Beta, företagets deklarativa UI-motor skriven i Kotlin gjord för att förenkla UI-utveckling.

Här är vi igen. Jag skrev om Jetpack Compose, Googles nya UI-motor, när den började alfa, och igen när JetBrains portade den till stationära plattformar. Idag är betaversionen av Jetpack Compose här.

Om du inte är fast i alla nya UI-tekniker som finns (jag klandrar dig inte) och du inte vill för att läsa igenom de andra artiklarna (nu skyller jag på dig), här är en snabb beskrivning av vad det här handlar om. Jetpack Compose är en deklarativ UI-motor skriven i Kotlin som syftar till att ersätta (eller åtminstone vara ett gångbart alternativ för) klassiska imperativa UI-motorer, som Androids XML-layouter. Jag kommer inte in på skillnaden mellan deklarativa och imperativa layouter, så låt oss bara säga att Jetpack Compose är en kraftfull kod-only layoutmotor som kan göra UI-implementeringen mycket enklare.

Med det ur vägen, vad betyder en betaversion för Compose, exakt? Vi får se.

API

Varje bra ramverk behöver ett API (per definition). I pre-alfa- och alfastadierna arbetade Google hårt med att bygga upp Composes API för att vara så intuitivt och användbart som möjligt. Och precis som alla bra projekt gick det igenom många revideringar. Att använda Compose i dessa steg kan vara svårt eftersom API: er kan tas bort eller byta namn utan mycket förvarning.

Nu när vi är i betastadiet är Google övertygade om att API: et är komplett och stabilt. Det betyder inga fler (drastiska) borttagningar eller ändringar, så du kan lägga mer tid på att faktiskt göra din app än att hänga med i API-ändringar.

Naturligtvis betyder ett stabilt API inte ett oföränderligt. Google kommer fortfarande att lägga till funktioner och ändra saker, men nu kommer det att finnas korrekta utfasningsmeddelanden och ersättningscykler.

Coroutine Support

Kom ihåg när Google utfasade AsyncTask i Android, och alla var oroliga och sedan glömde det helt och hållet? Det kan du nog tacka Kotlins coroutine-ramverk för. I sin mest grundläggande form är det en ersättning för AsyncTask, men den är också mycket kraftfullare, mycket mer flexibel och mycket mer plattformsoberoende.

Medan Jetpack Compose har ungefär stödde användningen av koroutiner, det har mestadels varit som ett interoperabilitetslager. Med betaversionen är dock coroutines inbyggda i Compose, så att du kan använda dina asynkrona samtal ordentligt igen.

Animationer

Animationer kan vara lite irriterande att bygga i Android, och ett tag var de i Compose också. I betaversionen lovar Google dock ett "lätt att använda" animations-API för att göra saker enklare. De har också uppdaterat Android Studio för att inkludera stöd för förhandsgranskning av dessa animationer, så att du inte behöver distribuera din app för att testa dem.

Layouter

Android Studio har några ganska snygga verktyg för att hantera layouter. En är förhandsgranskningen av layouten, som låter dig se ungefär hur din layout kommer att se ut på en enhet, och en annan är layoutinspektören, som låter dig se exakt vad som händer med din app layout när den är på en enhet.

Innan nu fungerade layoutförhandsgranskningen med Compose-layouter, men du var tvungen att bygga om din app varje gång du ändrade något för att förhandsgranskningen skulle uppdateras. Nu när vi är i betaversion har Android Studio dock uppdaterats för att inkludera liveförhandsvisningar av din Compose-kod.

Även tidigare fungerade layoutinspektören i princip inte med Compose-layouter. Den skulle visa en skärmdump av appen, men den kunde faktiskt inte extrahera och visa en trådram av alla layoutkomponenter. Precis som med layoutförhandsgranskningen har Android Studio uppdaterats med en ny layoutinspektör som stöder Compose-layouter.

Prata tillbaka

Låt oss nu prata tillgänglighet, en otroligt viktig funktion som tyvärr vanligtvis glöms bort. Lyckligtvis glömde inte Google, även om det kunde ha kommit tidigare: Compose-layouter stöds nu Prata tillbaka, en avancerad skärmläsare på Android som både läser innehåll för dig och låter dig interagera med skärmen med enkla gester.

Även om detta är den enda större tillgänglighetsfunktionen för tillfället, har Google lovat att, genom stabil, kommer andra tillgänglighetsfunktioner att läggas till. Bättre sent än aldrig, antar jag, och förhoppningsvis kommer dessa funktioner att vara mer integrerade med Compose än de var med XML.


Och det är i stort sett allt.

Om du vill komma igång med Jetpack Compose är det en bra tid nu. Du har ett funktionskomplett API att leka med och lära dig, och massor av handledning direkt från Google. Kolla upp Googles webbplats för utvecklare för mer information om uppdateringar och hur du använder Compose.

Och, naturligtvis, berätta för oss vad du tycker om ändringarna i beta eller din åsikt om Compose i allmänhet.