Jetpack Compose, Googleov UI alat za razvoj Android aplikacija, sada je u alfa verziji. Potpuno je interoperabilan s Androidovim standardnim prikazima.
Kada je riječ o razvoju aplikacije, postoji mnogo načina da se to postigne. Možete odabrati platformu(e) za koju ćete se razvijati, koji(e) programski jezik(e) želite koristiti, i još mnogo toga.
Još u jesen 2019. Google uveo novi okvir za izgradnju korisničkih sučelja u Androidu, koristeći Kotlin. Do sada je bio u fazi razvoja, s čestim pogrešnim promjenama i mnoštvom značajki koje su nedostajale. Ali danas je Google gurnuo Jetpack Compose u alfa stanje izdanja, što znači da je jedan korak bliže upotrebi u projektima proizvodne kvalitete.
Što je Jetpack Compose?
Prilikom izrade Android aplikacije, obično postoje dvije glavne komponente s kojima se morate suočiti: kod, za stvari temeljene na logici; i XML, za izglede. Android prema zadanim postavkama koristi Javu za kod i vlastiti skup XML oznaka za izglede.
Mnogima su Java i XML u redu, posebno za jednostavnije aplikacije. Ali oba sustava imaju svoja ograničenja i smetnje. Uvođenjem Kotlina kao
službeno (i preporučeni) jezik za razvoj Androida, strana kodiranja izrade Android aplikacije nedvojbeno je postala puno lakša. Uz Kotlinove praktične značajke kao što su ugrađena null zaštita i funkcije proširenja, kod izgleda čistije i lakše ga je čitati.Ali Kotlin nije ništa promijenio s Androidovim izgledima. Da biste napravili složeni izgled, ipak ste morali stvoriti XML datoteku i tamo je dizajnirati. Ovo ima neke značajne nedostatke, uključujući inherentno razdvajanje koda i XML-a. Ako imate stalni niz u svom kodu, na primjer, ne možete ga samo referencirati iz XML-a, pa ako se taj niz promijeni u kodu, morate se sjetiti ažurirati ga i u XML-u.
Uđite u Jetpack Compose. Ovo je Googleov odgovor na sve nezgrapniji proces dizajna XML izgleda u Androidu. Umjesto dizajniranja korisničkog sučelja vaše aplikacije u XML-u, možete to učiniti izravno iz svog koda. Iako je moguće izraditi rasporede temeljene na kodu, obično ih je teže održavati od XML-a i uključuju biblioteke koje se lako razbijaju. Compose je, s druge strane, dizajniran za rad izravno unutar Kotlina: nema više XML-a.
Jetpack Compose također je prilično radikalan odmak od standardnog imperativnog dizajna XML izgleda. Umjesto toga, sličniji je Reactu ili Flutteru, s deklarativnim izgledima koji se sami ažuriraju kada se podaci promijene, umjesto da se oslanja na programera da implementira tu logiku.
Što je podržano
Dakle, Jetpack Compose je sada u alfa fazi. Što to znači? Pa puno toga.
Interoperabilnost s prikazima
Baš kao što je Kotlin u potpunosti interoperabilan s Javom, Jetpack Compose je u potpunosti interoperabilan s Androidovim standardnim preglednicima. To znači dosta stvari.
Kao prvo, bit će puno lakše migrirati na Jetpack Compose ako to želite. Umjesto da morate pretvoriti sve svoje prilagođene prikaze i izglede u Composables, moći ćete jednostavno napraviti svoje nove izglede i komponente u Composeu. Imate biblioteku koja koristi "naslijeđene" Views, ali je vaša aplikacija dizajnirana s Compose? Nema problema. Pogled možete dodati izravno u svoju funkciju Composable. Još niste skočili na Compose, ali želite koristiti biblioteku koja se oslanja na Composables? Opet, nema problema. Samo postavite Composable izravno u svoj izgled.
Što se tiče tematiziranja, to nije tako plug-and-play kao interoperabilnost izgleda. Međutim, Google je napravio biblioteku za prilagodbu vaših standardnih XML tema u teme kompatibilne s Compose, pomažući da stvari budu centralizirane i da se izbjegne dupliciranje.
Animacije
Ovdje se zapravo nema previše za reći, osim da Jetpack Compose podržava animacije, baš kao i Androidov okvir View. Možete se pomicati, mijenjati veličinu i rotirati koliko god želite.
Lijeni popisi
Lijena lista je u biti Composeova verzija RecyclerViewa. Raspoređuje samo stavke prema potrebi, štedi RAM i povećava performanse. Naravno, pošto je ovo Compose, popise je znatno jednostavnije implementirati.
ConstraintLayout
Jedan od moćnijih prikaza u Androidu je ConstraintLayout. To vam omogućuje položaj, veličinu i težinu podređenih prikaza jedan u odnosu na drugi, dok također olakšava određene animacije. Ako ste bili zabrinuti da ćete izgubiti ovu funkcionalnost u Composeu, ne biste trebali biti, jer je i ona ovdje.
Materijalne komponente korisničkog sučelja
Još jedan skup moćnih Viewsa je Googleova knjižnica Material Components. Većina onoga što se ovdje nalazi su standardni prikazi i izgledi koje možete pronaći u matičnom okviru prikaza. Ali oni su dotjerani ili omotani kako bi pružili dodatnu funkcionalnost i olakšali tematiziranje, a također su došli do Composea.
Testiranje
Važan dio razvoja aplikacije je njeno testiranje. Za jednostavnu aplikaciju to možete učiniti ručno tako da je instalirate i koristite. Međutim, složeniji projekti mogu imati velike koristi od automatiziranih okvira za testiranje koji obavljaju većinu teškog posla umjesto vas. Jetpack Compose podržava automatizirano testiranje kako biste svoju aplikaciju učinili što stabilnijom.
Značajke pristupačnosti
Pristupačnost je važan dio našeg društva. Bez značajki pristupačnosti u našoj tehnologiji, mnogi bi ljudi jednostavno bili isključeni iz prednosti koje pružaju naši telefoni, televizori i bilo što drugo. Jetpack Compose je još uvijek u alfa fazi, tako da podrška za pristupačnost nije potpuna, ali Google to ima na umu tijekom razvoja, a rudimentarna podrška je već prisutna.
Android Studio
Ipak, nisu sve značajke Jetpack Composea u samom Jetpack Composeu. Android Studio i Kotlin također imaju dodatke i proširenja za lakše sastavljanje.
Kotlin kompajler dodatak
Kao i kod Kotlin JVM-a, u Android Studiju postoji dodatak za kompajler koji ispravno pretvara vaše Compose funkcije u kod koji Android zapravo može razumjeti i slijediti.
Interaktivni pregledi
Baš kao i s vašim standardnim XML izgledima, Android Studio dolazi s pregledom izgleda za Jetpack Compose. Iako trenutno nije tako praktičan kao XML pregledi u nekim aspektima—morate izgraditi svoj projekt za pretpregled ažurirati i izraditi namjensku funkciju pregleda—dolazi s jednom značajnom prednošću: interaktivnost pregledi.
Interaktivni pregled samo je normalan pregled, ali interaktivni. Ludo, znam. Međutim, to znači da zapravo možete upisivati tekst u tekstualne okvire, klikati gumbe i, dobro, komunicirati sa svojim Composable-ima, čak i bez potrebe da ih postavite.
Pojedinačna komponirajuća implementacija
Ako želite stvarno implementirati (tj. instalirati) svoj izgled da vidite kako radi na stvarnom uređaju, ova bi vam značajka mogla pomoći. S normalnim XML izgledima, da biste vidjeli kako izgled funkcionira u stvarnom svijetu, morate izgraditi i instalirati cijelu aplikaciju. Ako izgled koji želite testirati nije na primarnom zaslonu, možda morate puno dodirivati da biste došli do njega.
I tu dolazi do izražaja mogućnost implementacije samo jednog Composablea. Umjesto da morate izraditi i instalirati svoju aplikaciju, a zatim ići do izgleda koji testirate, možete jednostavno implementirati izgled. Android Studio će generirati i otvoriti aktivnost omotača koja samo prikazuje Composable koji ste implementirali. To može učiniti testiranje i dizajn puno bržim, a može čak pomoći u izolaciji problema povezanih s interakcijom elemenata.
Dovršavanje koda
Ako vaš IDE nema dovršetak koda, je li uopće IDE? Ne. Ne, nije. Dakle, naravno, Android Studio podržava potpuno dovršavanje koda za Jetpack Compose.
Iako ovo nije sve što Jetpack Compose donosi na stol, značajke i ponašanje iznad pokazuju koliko moćan Google želi da ovaj okvir bude. I dok je još uvijek u alfa fazi, to je korak ispred njegovog prethodnog statusa "razvoja". Ako ste odugovlačili s doista korištenjem Jetpack Compose (kao što sam ja bio), sada je možda vrijeme da pokušate još jednom.