Jetpack Compose, noul set de instrumente UI de la Google pentru Android, este acum în versiunea alfa

Jetpack Compose, setul de instrumente Google UI pentru dezvoltarea de aplicații Android, este acum în versiunea alfa. Este pe deplin interoperabil cu vizualizările standard Android.

Când vine vorba de dezvoltarea unei aplicații, există o mulțime de modalități de a face acest lucru. Puteți alege pentru ce platformă(e) să dezvoltați, ce limbaj(e) de programare doriți să utilizați și multe altele.

În toamna lui 2019, Google introdus un nou cadru pentru construirea de interfețe de utilizare în Android, folosind Kotlin. Până acum, a fost într-o stare de dezvoltare, cu schimbări frecvente de rupere și tone de caracteristici lipsă. Dar astăzi, Google a împins Jetpack Compose în starea de lansare alfa, ceea ce înseamnă că este cu un pas mai aproape de a fi utilizat în proiecte de calitate de producție.

Ce este Jetpack Compose?

Când construiți o aplicație Android, există de obicei două componente principale cu care trebuie să vă ocupați: codul, pentru lucruri bazate pe logică; și XML, pentru machete. În mod implicit, Android folosește Java pentru cod și propriul set de etichete XML pentru machete.

Pentru mulți, Java și XML sunt foarte bune, mai ales pentru aplicațiile mai simple. Dar ambele sisteme au limitările și supărările lor. Odată cu introducerea lui Kotlin ca an oficial Limbajul (și recomandat) pentru dezvoltarea Android, partea de codificare a creării unei aplicații Android a devenit, probabil, mult mai ușoară. Cu funcțiile la îndemână ale lui Kotlin, cum ar fi protecția nulă încorporată și funcțiile de extensie, codul arată mai curat și este mai ușor de citit.

Dar Kotlin nu a schimbat nimic cu aspectul Android. Pentru a realiza un aspect complex, mai trebuia să creați un fișier XML și să îl proiectați acolo. Acest lucru are câteva dezavantaje notabile, inclusiv separarea inerentă dintre cod și XML. Dacă aveți un șir constant în codul dvs., de exemplu, nu îl puteți referi doar din XML, așa că dacă acel șir se modifică în cod, trebuie să vă amintiți să îl actualizați și în XML.

Introduceți Jetpack Compose. Acesta este răspunsul Google la procesul de proiectare a layout-ului XML din ce în ce mai complicat în Android. În loc să proiectați interfața de utilizare a aplicației dvs. în XML, puteți face acest lucru direct din codul dvs. Deși este posibil să se creeze machete bazate pe cod, acestea sunt de obicei mai puțin ușor de întreținut decât XML și implică biblioteci ușor de spart. Compose, pe de altă parte, este conceput să funcționeze direct în Kotlin: nu mai este XML.

Jetpack Compose este, de asemenea, o abatere destul de radicală de la designul imperativ standard al layout-urilor XML. În schimb, este mai asemănător cu React sau Flutter, cu aspecte declarative care se actualizează singure atunci când datele se schimbă, în loc să se bazeze pe dezvoltator pentru a implementa acea logică.

Ce este acceptat

Deci, Jetpack Compose este acum în alfa. Ce înseamnă asta? Ei bine, multe lucruri.

Interoperabilitate cu Views

La fel cum Kotlin este pe deplin interoperabil cu Java, Jetpack Compose este pe deplin interoperabil cu View-urile standard ale Android. Asta înseamnă destul de multe lucruri.

În primul rând, va fi mult mai ușor să migrați la Jetpack Compose dacă doriți. În loc să trebuiască să convertiți toate vizualizările și aspectele personalizate în Composables, veți putea să vă creați doar noile aspecte și componente în Compose. Aveți o bibliotecă care utilizează vizualizări „vechi”, dar aplicația dvs. este proiectată cu Compose? Nici o problemă. Puteți adăuga Vizualizare direct în funcția Composable. Nu ați trecut încă la Compose, dar doriți să utilizați o bibliotecă care se bazează pe Composables? Din nou, nicio problemă. Doar puneți Composable-ul chiar în aspectul dvs.

În ceea ce privește tematica, nu este chiar atât de plug-and-play precum interoperabilitatea aspectului. In orice caz, Google a creat o bibliotecă pentru a vă adapta temele XML standard în teme compatibile cu Compose, ajutând să păstrați lucrurile centralizate și să evitați dublarea.

Animații

Nu sunt prea multe de spus aici, cu excepția faptului că Jetpack Compose acceptă animații, la fel ca framework-ul View de la Android. Puteți muta, redimensiona și roti după cum doriți.

Liste leneșe

O listă leneșă este în esență versiunea lui Compose a unui RecyclerView. Prezintă elemente numai după cum este necesar, economisind RAM și sporind performanța. Desigur, acesta fiind Compose, listele sunt mult mai simplu de implementat.

ConstraintLayout

Una dintre cele mai puternice vizualizări din Android este ConstraintLayout. Acest lucru vă permite să poziționați, dimensiunea și greutatea vizualizărilor copilului unul față de celălalt, facilitând în același timp anumite animații. Dacă v-ați îngrijorat că pierdeți această funcționalitate în Compose, nu ar trebui să fiți, pentru că este și aici.

Componente materiale ale UI

Un alt set de vizualizări puternice este biblioteca Google Material Components. Cele mai multe dintre ceea ce se află aici sunt vizualizări standard și machete pe care le puteți găsi în cadrul nativ View. Dar sunt modificate sau împachetate pentru a oferi funcționalitate suplimentară și a face tematizarea mai ușoară și și-au făcut drumul spre Compose.

Testare

O parte importantă a dezvoltării unei aplicații este testarea acesteia. Pentru o aplicație simplă, puteți face acest lucru manual instalând-o și utilizând-o. Cu toate acestea, proiectele mai complexe pot beneficia foarte mult de cadrele de testare automatizate care fac cea mai mare parte din munca grea pentru tine. Jetpack Compose acceptă testarea automată, astfel încât să vă puteți face aplicația cât mai stabilă posibil.

Caracteristici de accesibilitate

Accesibilitatea este o parte importantă a societății noastre. Fără funcțiile de accesibilitate din tehnologia noastră, mulți oameni ar fi pur și simplu excluși de la beneficiile oferite de telefoanele, televizoarele și orice altceva. Jetpack Compose este încă în alfa, așa că suportul pentru accesibilitate nu este complet, dar Google îl ține cont în timpul dezvoltării, iar suportul rudimentar este deja prezent.

Android Studio

Totuși, nu toate caracteristicile Jetpack Compose sunt în Jetpack Compose în sine. Android Studio și Kotlin au, de asemenea, pluginuri și extensii pentru o compunere mai ușoară.

Pluginul de compilare Kotlin

Ca și în cazul Kotlin JVM, există un plugin de compilator în Android Studio pentru a vă converti funcțiile Compose în cod pe care Android îl poate înțelege și urma.

Previzualizări interactive

La fel ca în cazul machetelor XML standard, Android Studio vine cu o previzualizare a aspectului pentru Jetpack Compose. Deși în prezent nu este la fel de convenabil ca previzualizările XML în unele aspecte, trebuie să vă construiți proiectul pentru previzualizarea pentru a actualiza și a crea o funcție de previzualizare dedicată - vine cu un avantaj notabil: interactiv previzualizări.

O previzualizare interactivă este doar o previzualizare normală, dar interactiv. Nebun, știu. Ceea ce înseamnă, totuși, este că puteți introduce text în casete de text, puteți face clic pe butoane și, ei bine, puteți interacționa cu Composables, fără a fi nevoie chiar să le implementați.

Implementare compusă unică

Dacă doriți să implementați (adică să instalați) aspectul pentru a vedea cum funcționează pe un dispozitiv real, această caracteristică vă poate ajuta. Cu aspecte XML normale, pentru a vedea cum funcționează un aspect în lumea reală, trebuie să construiți și să instalați întreaga aplicație. Dacă aspectul pe care doriți să îl testați nu este pe ecranul principal, este posibil să faceți multe atingeri pentru a ajunge la el.

Și aici intră în joc capacitatea de a implementa doar un singur Composable. În loc să fie nevoie să construiți și să instalați aplicația dvs. și apoi să navigați la aspectul pe care îl testați, puteți doar să implementați aspectul. Android Studio va genera și deschide un wrapper Activitate care afișează doar Composable-ul pe care l-ați implementat. Acest lucru poate face testarea și proiectarea mult mai rapide și chiar poate ajuta la izolarea problemelor legate de interacțiunea elementelor.

Completarea codului

Dacă IDE-ul tău nu are completarea codului, este chiar un IDE? Nu. Nu, nu este. Deci, desigur, Android Studio acceptă completarea completă a codului pentru Jetpack Compose.


Deși acesta nu este tot ceea ce Jetpack Compose aduce la masă, caracteristicile și comportamentul de mai sus arată cât de puternic dorește Google să fie acest cadru. Și, deși este încă în alfa, acesta este cu un pas înaintea statutului său anterior de „dezvoltare”. Dacă ați renunțat să utilizați cu adevărat Jetpack Compose (cum am fost eu), acum ar putea fi momentul să mai încercați.