RxSwift a coroutines v Kotlinu – volitelný předmět v oblasti mobilního vývoje od AGIMA a GeekBrains

RxSwift a coroutines v Kotlinu – volitelný předmět v oblasti mobilního vývoje od AGIMA a GeekBrains

Znalosti jsou dobré, prostě skvělé. Ale je také potřeba praxe, abyste mohli přijatá data používat a přenášet je ze stavu „pasivní úložiště“ do stavu „aktivní využití“. Bez ohledu na to, jak kvalitní je teoretická příprava, je stále nutná práce „v terénu“. Výše uvedené platí téměř pro jakýkoli studijní obor, samozřejmě včetně vývoje softwaru.

GeekBrains v rámci fakulty mobilního vývoje online univerzity GeekUniversity letos zahájila spolupráci s interaktivní agenturou AGIMA, jejímž týmem jsou profesionální vývojáři (vytvářejí komplexní high-load projekty, firemní portály a mobilní aplikace, toť vše). AGIMA a GeekBrains vytvořili volitelný předmět pro hluboký ponor do praktických problémů vývoje mobilních aplikací.

Onehdy jsme mluvili s Igorem Vedeneevem, specialistou na iOS, a Alexandrem Tizikem, který se specializuje na Android. Díky nim byl volitelný předmět o mobilním vývoji obohacen o praktické speciální kurz o frameworku RxSwift и korutiny v Kotlinu. V tomto článku vývojáři hovoří o důležitosti každé oblasti pro programátory.

Reaktivní programování v iOS pomocí RxSwift jako příkladu

RxSwift a coroutines v Kotlinu – volitelný předmět v oblasti mobilního vývoje od AGIMA a GeekBrains
Volitelný učitel Igor Vedeneev: „S RxSwift bude vaše aplikace létat“

Jaké informace studenti během volitelných předmětů dostávají?

Bavíme se nejen o schopnostech frameworku, ale také ukazujeme, jak jej používat v klasické kombinaci MVVM + RxSwift. Diskutováno je také několik praktických příkladů. Pro konsolidaci získaných dat napíšeme aplikaci, která se co nejvíce blíží provozním podmínkám v terénu. Toto bude aplikace pro vyhledávání hudby iTunes Search API. Tam použijeme všechny doporučené postupy a navíc zvážíme jednodušší možnost použití RxSwift v paradigmatu MVC.

RxSwift – proč potřebuje programátor iOS tento framework, jak to usnadňuje život vývojářům?

RxSwift zjednodušuje práci s proudy událostí a spojeními mezi objekty. Nejjednodušším a nejviditelnějším příkladem jsou vazby: například můžete aktualizovat rozhraní jednoduchým nastavením nových hodnot v proměnné v viewModel. Rozhraní se tak stává datovým. RxSwift vám navíc umožňuje popsat systém deklarativním stylem, což vám umožní uspořádat váš kód a zvýšit čitelnost. To vše přispívá k efektivnějšímu vývoji aplikací.

Pro vývojáře je znalost frameworku také dobrým plusem v životopise, protože znalost reaktivního programování a zejména zkušenost s RxSwift se na trhu cení.

Proč zvolit tento konkrétní rámec před ostatními?

RxSwift má největší komunitu. To znamená, že je větší šance, že problém, kterému vývojář čelí, už někdo vyřešil. Také velké množství vázání z krabice. RxSwift je navíc součástí ReactiveX. To znamená, že existuje analog například pro Android (RxJava, RxKotlin) a kolegové v dílně spolu mohou mluvit stejným jazykem, přestože někteří pracují s iOS, jiní s Androidem.

Framework se neustále aktualizuje, opravují se drobné chyby, přidává se podpora funkcí z nových verzí Swiftu a přibývají nové vazby. Vzhledem k tomu, že RxSwift je open source, můžete sledovat všechny změny. Navíc je možné je přidat sami.

Kde by se měl RxSwift použít?

  1. Vazby. Zpravidla mluvíme o uživatelském rozhraní, možnosti změnit uživatelské rozhraní, jako by reagovalo na změny dat, a ne výslovně říkat rozhraní, že je čas na aktualizaci.
  2. Vztah mezi komponentami a operacemi. Jen příklad. Potřebujeme získat seznam dat ze sítě. Ve skutečnosti to není tak jednoduchá operace. Chcete-li to provést, musíte odeslat požadavek, namapovat odpověď na pole objektů, uložit ji do databáze a odeslat do uživatelského rozhraní. Za provádění těchto operací jsou zpravidla odpovědné různé složky (milujeme a dodržujeme zásady SOLID?). Když máme po ruce nástroj jako RxSwift, je možné popsat CO bude systém dělat a JAK to bude dělat na jiných místech. Díky tomu je dosaženo lepší organizace kódu a zvyšuje se čitelnost. Relativně lze kód rozdělit na obsah a samotnou knihu.

Korutiny v Kotlinu

RxSwift a coroutines v Kotlinu – volitelný předmět v oblasti mobilního vývoje od AGIMA a GeekBrains
Učitel volitelných předmětů Alexander Tizik: „Moderní vývoj vyžaduje moderní technické prostředky“

Co se bude na fakultě GeekBrains v rámci značkové čtvrti vyučovat?

Teorie, srovnání s jinými přístupy, praktické příklady v čistém Kotlinu a v aplikačním modelu pro Android. Pokud jde o praxi, studentům bude ukázána aplikace, ve které je vše vázáno na korutiny. Faktem je, že většina aplikací je zcela asynchronních a paralelních. Korutiny Kotlin však umožňují, aby byl matoucí, heterogenní nebo příliš složitý a výkon náročný kód zredukován na jediný, snadno srozumitelný styl, což přináší výhody ve správném provádění a výkonu.

Naučíme se psát idiomatický kód v coroutinech, který řeší praktické problémy a je srozumitelný na první pohled i bez hlubokých znalostí toho, jak coroutiny fungují (což se o knihovnách jako RxJava říci nedá). Také pochopíme, jak používat složitější koncepty, jako je model aktéra, k řešení složitějších problémů, jako je datový sklad v konceptu MVI.

Mimochodem, další dobré zprávy. Během nahrávání volitelných předmětů byla vydána aktualizace knihovny Kotlin Coroutines, ve které se třída objevila Flow - analogové typy Flowable и Observable z RxJava. Aktualizace v podstatě dělá funkci coroutines kompletní z pohledu vývojáře aplikace. Pravda, stále je co zlepšovat: navzdory tomu, že díky podpoře coroutin v kotlin/native je již možné psát multiplatformní aplikace v Kotlinu a netrpět nedostatkem RxJava nebo analogů v čistém Kotlinu, podpora pro korutiny v kotlin/native ještě není dokončena. Neexistuje například koncept herců. Obecně má tým Kotlin plány na podporu složitějších herců na všech platformách.

Kotlin Coroutines – jak pomáhají vývojáři Kotlin?

Coroutines poskytují skvělou příležitost psát kód, který je čitelný, udržovatelný a bezpečný, asynchronní a souběžný. Můžete také vytvořit adaptéry pro jiné asynchronní rámce a přístupy, které již mohou být použity v kódové základně.

Jak se Coroutines liší od vláken?

Tým Kotlin nazývá coroutines lehkými vlákny. Navíc může koroutina vrátit určitou hodnotu, protože ve svém jádru je koroutina pozastaveným výpočtem. Nezávisí přímo na systémových vláknech, vlákna provádějí pouze korutiny.

Jaké praktické problémy lze vyřešit pomocí Coroutinu, které nelze nebo je obtížné vyřešit pomocí „čistého“ Kotlinu?

Jakékoli asynchronní, paralelní, „konkurenční“ úkoly jsou dobře vyřešeny pomocí korutin – ať už jde o zpracování uživatelských kliknutí, přechod online nebo přihlášení k odběru aktualizací z databáze.

V čistém Kotlinu se tyto problémy řeší stejně jako v Javě – pomocí tisíců frameworků, z nichž každý má své pro a proti, ale žádný z nich nemá podporu na jazykové úrovni.

Závěrem se sluší říci, že oba volitelné (i hlavní předměty) jsou aktualizovány v souladu se změnami vnějších podmínek. Pokud se v jazycích nebo rámcích objeví důležité aktualizace, učitelé to berou v úvahu a upraví program. To vše vám umožňuje držet krok s vývojovým procesem, abych tak řekl.

Zdroj: www.habr.com

Přidat komentář