Jetpack Compose, nová súprava UI od Google pre Android, je teraz vo verzii alfa

Jetpack Compose, súprava používateľského rozhrania Google na vývoj aplikácií pre Android, je teraz vo verzii alfa. Je plne interoperabilný so štandardnými zobrazeniami systému Android.

Pokiaľ ide o vývoj aplikácie, existuje veľa spôsobov, ako to urobiť. Môžete si vybrať, pre ktorú platformu (platformy) chcete vyvíjať, ktorý programovací jazyk (jazyky) chcete používať a ešte oveľa viac.

Ešte na jeseň 2019 Google zavedené nový rámec na vytváranie používateľských rozhraní v systéme Android pomocou systému Kotlin. Doteraz bol vo vývoji, s častými zmenami a množstvom chýbajúcich funkcií. Dnes však Google posunul Jetpack Compose do stavu alfa vydania, čo znamená, že je o krok bližšie k použitiu v projektoch produkčnej kvality.

Čo je Jetpack Compose?

Pri vytváraní aplikácie pre Android sú zvyčajne dva hlavné komponenty, s ktorými sa musíte vysporiadať: kód pre veci založené na logike; a XML pre rozloženia. V predvolenom nastavení Android používa jazyk Java na kód a vlastnú sadu značiek XML na rozloženie.

Pre mnohých sú Java a XML v poriadku, najmä pre jednoduchšie aplikácie. Ale oba systémy majú svoje obmedzenia a nepríjemnosti. So zavedením Kotlina ako an úradník (a odporúčaný) jazyk pre vývoj Androidu, kódovanie pri vytváraní aplikácie pre Android je pravdepodobne oveľa jednoduchšie. S praktickými funkciami Kotlinu, ako je vstavaná ochrana nula a funkcie rozšírenia, kód vyzerá čistejšie a je ľahšie čitateľný.

Kotlin však na rozložení Androidu nič nezmenil. Na vytvorenie komplexného rozloženia ste ešte potrebovali vytvoriť súbor XML a navrhnúť ho tam. To má niekoľko významných nevýhod, vrátane prirodzeného oddelenia medzi kódom a XML. Ak máte vo svojom kóde napríklad konštantný reťazec, nemôžete naň odkazovať len z XML, takže ak sa tento reťazec zmení v kóde, musíte ho aktualizovať aj v XML.

Zadajte Jetpack Compose. Toto je odpoveď spoločnosti Google na čoraz zložitejší proces návrhu rozloženia XML v systéme Android. Namiesto navrhovania používateľského rozhrania vašej aplikácie vo formáte XML to môžete urobiť priamo z kódu. Aj keď je možné vytvoriť rozloženia založené na kóde, zvyčajne sú menej udržiavateľné ako XML a zahŕňajú ľahko rozbitné knižnice. Compose je na druhej strane navrhnutý tak, aby fungoval priamo v Kotline: už žiadne XML.

Jetpack Compose je tiež dosť radikálnym odklonom od štandardného imperatívneho dizajnu rozložení XML. Namiesto toho je viac podobný React alebo Flutter, s deklaratívnymi rozloženiami, ktoré sa aktualizujú pri zmene údajov, namiesto toho, aby sa spoliehali na vývojára, že implementuje túto logiku.

Čo je podporované

Takže Jetpack Compose je teraz vo verzii alfa. Čo to znamená? No, veľa vecí.

Interoperabilita so zobrazeniami

Rovnako ako Kotlin je plne interoperabilný s Java, Jetpack Compose je plne interoperabilný so štandardnými zobrazeniami systému Android. To znamená pomerne veľa vecí.

Po prvé, ak chcete, bude oveľa jednoduchšie migrovať na Jetpack Compose. Namiesto toho, aby ste museli konvertovať všetky svoje vlastné zobrazenia a rozloženia na zostaviteľné, budete môcť len vytvárať nové rozloženia a komponenty v aplikácii Compose. Máte knižnicu, ktorá používa „staré“ zobrazenia, no vaša aplikácia je navrhnutá pomocou funkcie Napísať správu? Žiaden problém. Zobrazenie môžete pridať priamo do svojej funkcie Composable. Ešte ste neprešli na Compose, ale chcete použiť knižnicu, ktorá sa spolieha na Composables? Opäť žiadny problém. Jednoducho vložte Composable priamo do svojho rozloženia.

Čo sa týka tém, nie je to také plug-and-play ako interoperabilita rozloženia. však Google vytvoril knižnicu na prispôsobenie vašich štandardných tém XML do tém kompatibilných s Compose, čo pomôže udržať veci centralizované a vyhnúť sa duplicite.

Animácie

Tu nie je veľa čo povedať, okrem toho, že Jetpack Compose podporuje animácie, rovnako ako rámec Android View. Môžete sa pohybovať, meniť veľkosť a otáčať podľa toho, ako vám to vyhovuje.

Lenivé zoznamy

Lenivý zoznam je v podstate verzia RecyclerView spoločnosti Compose. Položky rozloží iba podľa potreby, čím šetrí RAM a zvyšuje výkon. Samozrejme, keďže ide o Compose, implementácia zoznamov je podstatne jednoduchšia.

ConstraintLayout

Jedným z výkonnejších zobrazení v systéme Android je ConstraintLayout. To vám umožňuje umiestniť, veľkosť a hmotnosť detských pohľadov voči sebe navzájom a zároveň zjednodušiť niektoré animácie. Ak ste sa obávali straty tejto funkcie v Compose, nemali by ste sa báť, pretože je tu tiež.

Materiálové komponenty používateľského rozhrania

Ďalšou skupinou výkonných zobrazení je knižnica Material Components od Google. Väčšina z toho, čo je tu, sú štandardné zobrazenia a rozloženia, ktoré nájdete v natívnom rámci zobrazenia. Sú však vylepšené alebo zabalené, aby poskytovali ďalšie funkcie a uľahčili vytváranie tém, a dostali sa aj do aplikácie Compose.

Testovanie

Dôležitou súčasťou vývoja aplikácie je jej testovanie. V prípade jednoduchej aplikácie to môžete urobiť manuálne nainštalovaním a používaním. Zložitejšie projekty však môžu výrazne profitovať z automatizovaných testovacích rámcov, ktoré urobia väčšinu ťažkej práce za vás. Jetpack Compose podporuje automatizované testovanie, aby ste mohli urobiť svoju aplikáciu čo najstabilnejšou.

Funkcie dostupnosti

Dostupnosť je dôležitou súčasťou našej spoločnosti. Bez funkcií dostupnosti v našej technológii by veľa ľudí jednoducho stratilo prístup k výhodám, ktoré poskytujú naše telefóny, televízory a čokoľvek iné. Jetpack Compose je stále vo verzii alfa, takže podpora prístupnosti nie je dokončená, ale Google na to pri vývoji myslí a základná podpora už existuje.

Android Studio

Nie všetky funkcie Jetpack Compose sú však v samotnom Jetpack Compose. Android Studio a Kotlin majú tiež doplnky a rozšírenia pre jednoduchšie skladanie.

Doplnok kompilátora Kotlin

Rovnako ako v prípade Kotlin JVM je v Android Studio doplnok kompilátora, ktorý správne prevedie vaše funkcie Compose na kód, ktorému Android skutočne rozumie a dokáže ho nasledovať.

Interaktívne ukážky

Rovnako ako v prípade štandardných rozložení XML, aj Android Studio prichádza s ukážkou rozloženia pre Jetpack Compose. Aj keď to v súčasnosti nie je v niektorých aspektoch také pohodlné ako ukážky XML – musíte si svoj projekt zostaviť náhľad na aktualizáciu a vytvorenie vyhradenej funkcie náhľadu – prichádza s jednou pozoruhodnou výhodou: interaktívnou náhľady.

Interaktívny náhľad je len obyčajný náhľad, ale interaktívne. Šialené, ja viem. To však znamená, že v skutočnosti môžete písať text do textových polí, klikať na tlačidlá a interagovať s vašimi Composables bez toho, aby ste ich museli nasadiť.

Single Composable Deployment

Ak chcete skutočne nasadiť (t. j. nainštalovať) svoje rozloženie, aby ste videli, ako funguje na skutočnom zariadení, táto funkcia vám môže pomôcť. Ak chcete vidieť, ako rozloženie funguje v reálnom svete, s normálnymi rozloženiami XML musíte zostaviť a nainštalovať celú aplikáciu. Ak sa rozloženie, ktoré chcete otestovať, nenachádza na hlavnej obrazovke, možno naň často klepete.

A práve tu prichádza do úvahy možnosť nasadiť len jeden Composable. Namiesto toho, aby ste museli zostaviť a nainštalovať aplikáciu a potom prejsť na rozloženie, ktoré testujete, môžete rozloženie jednoducho nasadiť. Android Studio vygeneruje a otvorí obálkovú aktivitu, ktorá len zobrazí kompozovateľné, ktoré ste nasadili. To môže výrazne urýchliť testovanie a návrh a dokonca môže pomôcť izolovať problémy súvisiace s interakciou prvkov.

Dokončenie kódu

Ak vaše IDE nemá dokončenie kódu, je to vôbec IDE? Nie, nie je. Android Studio teda samozrejme podporuje úplné dokončenie kódu pre Jetpack Compose.


Aj keď to nie je všetko, čo Jetpack Compose prináša, vyššie uvedené funkcie a správanie ukazujú, aký silný chce Google tento rámec mať. A aj keď je stále vo verzii alfa, je to krok pred jeho predchádzajúcim „vývojovým“ stavom. Ak ste sa zdráhali skutočne používať Jetpack Compose (ako ja), možno je čas to skúsiť znova.