Jetpack Compose, sada nástrojů uživatelského rozhraní Google pro vývoj aplikací pro Android, je nyní ve verzi alfa. Je plně interoperabilní se standardními pohledy Androidu.
Pokud jde o vývoj aplikace, existuje mnoho způsobů, jak toho dosáhnout. Můžete si vybrat, pro kterou platformu (y) chcete vyvíjet, který programovací jazyk (jazyky) chcete používat a mnoho dalšího.
Ještě na podzim roku 2019 Google představil nový rámec pro vytváření uživatelských rozhraní v Androidu pomocí Kotlin. Až dosud byl ve vývojovém stavu s častými změnami a spoustou chybějících funkcí. Dnes však Google posunul Jetpack Compose do stavu alfa vydání, což znamená, že je o krok blíže k použití v projektech produkční kvality.
Co je Jetpack Compose?
Při sestavování aplikace pro Android jsou obvykle dvě hlavní součásti, se kterými se musíte vypořádat: kód pro věci založené na logice; a XML pro rozvržení. Ve výchozím nastavení používá Android pro kód Java a pro rozvržení vlastní sadu značek XML.
Pro mnohé jsou Java a XML v pořádku, zejména pro jednodušší aplikace. Ale oba systémy mají svá omezení a nepříjemnosti. Se zavedením Kotlina jako an
oficiální (a doporučený) jazyk pro vývoj Androidu, stránka kódování při vytváření aplikace pro Android se pravděpodobně stala mnohem jednodušší. Díky užitečným funkcím Kotlin, jako je vestavěná ochrana null a funkce rozšíření, kód vypadá čistěji a je snadněji čitelný.Kotlin ale na rozložení Androidu nic nezměnil. Chcete-li vytvořit komplexní rozvržení, musíte ještě vytvořit soubor XML a navrhnout jej tam. To má některé významné nevýhody, včetně inherentního oddělení mezi kódem a XML. Pokud máte ve svém kódu například konstantní řetězec, nemůžete na něj odkazovat pouze z XML, takže pokud se tento řetězec v kódu změní, musíte jej také aktualizovat v XML.
Zadejte Jetpack Compose. Toto je odpověď společnosti Google na stále složitější proces návrhu rozvržení XML v systému Android. Místo navrhování uživatelského rozhraní vaší aplikace v XML to můžete udělat přímo z kódu. I když je možné vytvořit rozvržení založená na kódu, jsou obvykle méně udržitelná než XML a zahrnují snadno rozbitné knihovny. Compose je na druhou stranu navržen tak, aby fungoval přímo v Kotlinu: žádné XML.
Jetpack Compose je také docela radikálním odklonem od standardního imperativního návrhu rozvržení XML. Místo toho je to více podobné React nebo Flutter, s deklarativním rozložením, které se aktualizuje při změně dat, místo toho, aby se spoléhalo na vývojáře, že implementuje tuto logiku.
Co je podporováno
Jetpack Compose je tedy nyní v alfa verzi. Co to znamená? No, hodně věcí.
Interoperabilita s pohledy
Stejně jako Kotlin je plně interoperabilní s Java, Jetpack Compose je plně interoperabilní se standardními Views Android. To znamená docela dost věcí.
Za prvé bude mnohem snazší migrovat na Jetpack Compose, pokud chcete. Namísto toho, abyste museli převádět všechny své vlastní pohledy a rozvržení na Composables, budete moci pouze vytvářet nová rozvržení a komponenty v Compose. Máte knihovnu, která používá „starší“ zobrazení, ale vaše aplikace je navržena s funkcí Compose? Žádný problém. Zobrazení můžete přidat přímo do funkce Composable. Ještě jste neskočili do Compose, ale chcete používat knihovnu, která spoléhá na Composables? Opět žádný problém. Jednoduše vložte Composable přímo do svého rozložení.
Pokud jde o tématiku, není to tak plug-and-play jako interoperabilita rozložení. Nicméně, Google vytvořil knihovnu k přizpůsobení vašich standardních XML témat do motivů kompatibilních s Compose, což pomůže udržet věci centralizované a vyhnout se duplicitě.
Animace
Zde není příliš co říci, kromě toho, že Jetpack Compose podporuje animace, stejně jako rámec Android View. Můžete se pohybovat, měnit velikost a otáčet, jak chcete.
Líné seznamy
Líný seznam je v podstatě verzí RecyclerView společnosti Compose. Pouze rozkládá položky podle potřeby, šetří RAM a zvyšuje výkon. Vzhledem k tomu, že jde o Compose, je samozřejmě implementace seznamů podstatně jednodušší.
ConstraintLayout
Jedním z nejvýkonnějších zobrazení v Androidu je ConstraintLayout. To vám umožní umístit, velikost a váhu podřízených pohledů vůči sobě navzájem a zároveň zjednodušit určité animace. Pokud jste se obávali ztráty této funkce v Compose, neměli byste mít, protože je zde také.
Materiálové komponenty uživatelského rozhraní
Další sadou výkonných pohledů je knihovna Material Components společnosti Google. Většina z toho, co je zde, jsou standardní pohledy a rozvržení, které najdete v nativním rámci View. Jsou však vylepšeny nebo zabaleny, aby poskytovaly další funkce a usnadňovaly vytváření motivů, a také se dostaly do Compose.
Testování
Důležitou součástí vývoje aplikace je její testování. U jednoduché aplikace to můžete provést ručně instalací a používáním. Složitější projekty však mohou výrazně těžit z automatizovaných testovacích rámců, které většinu tvrdé práce udělají za vás. Jetpack Compose podporuje automatické testování, takže můžete svou aplikaci udělat co nejstabilnější.
Funkce usnadnění
Dostupnost je důležitou součástí naší společnosti. Bez funkcí pro usnadnění v naší technologii by spousta lidí byla jednoduše vyřazena z výhod, které poskytují naše telefony, televize a cokoli jiného. Jetpack Compose je stále ve verzi alfa, takže podpora přístupnosti není dokončena, ale Google na to během vývoje pamatuje a základní podpora je již k dispozici.
Android Studio
Ne všechny funkce Jetpack Compose jsou však v samotném Jetpack Compose. Android Studio a Kotlin mají také pluginy a rozšíření pro snadnější skládání.
Plugin kompilátoru Kotlin
Stejně jako v případě Kotlin JVM je v Android Studio k dispozici kompilační plugin, který správně převede vaše funkce Compose na kód, kterému Android skutečně rozumí a dokáže jej následovat.
Interaktivní náhledy
Stejně jako u vašich standardních rozvržení XML přichází Android Studio s náhledem rozvržení pro Jetpack Compose. I když to v současné době není v některých aspektech tak pohodlné jako náhledy XML – musíte svůj projekt sestavit náhled aktualizovat a vytvořit vyhrazenou funkci náhledu – přináší to jednu pozoruhodnou výhodu: interaktivní náhledy.
Interaktivní náhled je jen normální náhled, ale interaktivní. Blázen, já vím. To však znamená, že můžete ve skutečnosti psát text do textových polí, klikat na tlačítka a pracovat s vašimi Composables, aniž byste je museli nasazovat.
Single Composable Deployment
Pokud chcete skutečně nasadit (tj. nainstalovat) své rozvržení, abyste viděli, jak funguje na skutečném zařízení, tato funkce vám může pomoci. Chcete-li vidět, jak rozložení funguje v reálném světě, musíte s normálními rozvrženími XML sestavit a nainstalovat celou aplikaci. Pokud rozvržení, které chcete otestovat, není na primární obrazovce, možná k němu často klepete, abyste se k němu dostali.
A právě zde přichází na řadu možnost nasadit pouze jeden Composable. Místo toho, abyste museli sestavovat a instalovat aplikaci a poté přejít na rozvržení, které testujete, můžete rozvržení pouze nasadit. Android Studio vygeneruje a otevře obalovou aktivitu, která pouze zobrazí vámi nasazenou sestavu. To může značně urychlit testování a návrh a může dokonce pomoci izolovat problémy související s interakcí prvků.
Dokončení kódu
Pokud vaše IDE nedokončuje kód, je to vůbec IDE? Ne. Ne, není. Android Studio tedy samozřejmě podporuje úplné dokončení kódu pro Jetpack Compose.
I když to není vše, co Jetpack Compose přináší, výše uvedené funkce a chování ukazují, jak mocný Google chce, aby tento rámec byl. A i když je stále ve verzi alfa, je to krok před jeho předchozím „vývojovým“ stavem. Pokud jste se zdráhali skutečně používat Jetpack Compose (jako já), možná je čas to zkusit znovu.