RxSwift a korutíny v Kotline - voliteľný v oblasti mobilného vývoja od AGIMA a GeekBrains

RxSwift a korutíny v Kotline - voliteľný v oblasti mobilného vývoja od AGIMA a GeekBrains

Vedomosti sú dobré, jednoducho skvelé. Ale prax je potrebná aj na to, aby ste mohli použiť prijaté dáta a preniesť ich zo stavu „pasívneho úložiska“ do stavu „aktívne využitie“. Bez ohľadu na to, aká dobrá je teoretická príprava, stále je potrebná práca „v teréne“. Vyššie uvedené sa týka takmer každého študijného odboru, samozrejme aj vývoja softvéru.

Tento rok GeekBrains ako súčasť fakulty mobilného vývoja online univerzity GeekUniversity začal spolupracovať s interaktívnou agentúrou AGIMA, ktorej tímom sú profesionálni vývojári (vytvárajú komplexné high-load projekty, firemné portály a mobilné aplikácie, to je všetko). AGIMA a GeekBrains vytvorili voliteľný predmet pre hlboký ponor do praktických otázok vývoja mobilných aplikácií.

Minule sme hovorili s Igorom Vedeneevom, špecialistom na iOS, a Alexandrom Tizikom, ktorý sa špecializuje na Android. Vďaka nim sa voliteľný predmet o mobilnom vývoji obohatil o praktické špeciálny kurz o frameworku RxSwift и korutíny v Kotline. V tomto článku vývojári hovoria o dôležitosti každej oblasti pre programátorov.

Reaktívne programovanie v systéme iOS pomocou RxSwift ako príkladu

RxSwift a korutíny v Kotline - voliteľný v oblasti mobilného vývoja od AGIMA a GeekBrains
Voliteľný učiteľ Igor Vedeneev: „S RxSwift bude vaša aplikácia lietať“

Aké informácie dostávajú študenti počas výberového konania?

Hovoríme nielen o možnostiach frameworku, ale ukazujeme aj jeho využitie v klasickej kombinácii MVVM + RxSwift. Diskutuje sa aj o niekoľkých praktických príkladoch. Na konsolidáciu získaných údajov napíšeme aplikáciu, ktorá sa čo najviac približuje prevádzkovým podmienkam v teréne. Toto bude aplikácia na vyhľadávanie hudby iTunes Search API. Tam použijeme všetky osvedčené postupy a zvážime jednoduchšiu možnosť použitia RxSwift v paradigme MVC.

RxSwift – prečo potrebuje iOS programátor tento framework, ako to uľahčuje život vývojárom?

RxSwift zefektívňuje prácu s prúdmi udalostí a spojeniami medzi objektmi. Najjednoduchším a najzrejmejším príkladom sú väzby: napríklad môžete aktualizovať rozhranie jednoduchým nastavením nových hodnôt v premennej v viewModel. Rozhranie sa tak stáva dátovo riadeným. RxSwift vám navyše umožňuje opísať systém deklaratívnym štýlom, čo vám umožní organizovať váš kód a zvýšiť čitateľnosť. To všetko pomáha efektívnejšiemu vývoju aplikácií.

Pre vývojára je znalosť frameworku tiež dobrým plusom v životopise, keďže znalosť reaktívneho programovania a najmä skúsenosť s RxSwift sa na trhu cení.

Prečo si vybrať tento konkrétny rámec pred ostatnými?

RxSwift má najväčšiu komunitu. To znamená, že je väčšia šanca, že problém, ktorému developer čelí, už niekto vyriešil. Tiež veľké množstvo väzieb po vybalení. RxSwift je navyše súčasťou ReactiveX. To znamená, že existuje analóg napríklad pre Android (RxJava, RxKotlin) a kolegovia v dielni môžu medzi sebou hovoriť rovnakým jazykom, napriek tomu, že niektorí pracujú s iOS, iní s Androidom.

Framework sa neustále aktualizuje, opravujú sa drobné chyby, pridáva sa podpora funkcií z nových verzií Swiftu a pribúdajú nové väzby. Keďže RxSwift je open source, môžete sledovať všetky zmeny. Navyše je možné ich pridať sami.

Kde by sa mal RxSwift použiť?

  1. Viazanie. Spravidla hovoríme o používateľskom rozhraní, možnosti zmeniť používateľské rozhranie, ako keby ste reagovali na zmeny údajov, a nie explicitne povedať rozhraniu, že je čas na aktualizáciu.
  2. Vzťah medzi komponentmi a operáciami. Len príklad. Potrebujeme získať zoznam údajov zo siete. V skutočnosti to nie je taká jednoduchá operácia. Ak to chcete urobiť, musíte odoslať požiadavku, namapovať odpoveď na pole objektov, uložiť ju do databázy a odoslať do používateľského rozhrania. Za vykonávanie týchto operácií sú spravidla zodpovedné rôzne komponenty (milujeme a dodržiavame zásady SOLID?). Keď máme po ruke nástroj ako RxSwift, je možné opísať ČO bude systém robiť a AKO to bude robiť na iných miestach. Vďaka tomu sa dosahuje lepšia organizácia kódu a zvyšuje sa čitateľnosť. Relatívne povedané, kód možno rozdeliť na obsah a samotnú knihu.

Korutíny v Kotline

RxSwift a korutíny v Kotline - voliteľný v oblasti mobilného vývoja od AGIMA a GeekBrains
Učiteľ voliteľného kurzu Alexander Tizik: „Moderný vývoj si vyžaduje moderné technické prostriedky“

Čo sa bude na fakulte GeekBrains vyučovať v rámci značkovej štvrte?

Teória, porovnanie s inými prístupmi, praktické príklady v čistom Kotline a v modeli aplikácie pre Android. Čo sa týka praxe, študentom sa ukáže aplikácia, v ktorej je všetko naviazané na korutíny. Faktom je, že väčšina aplikácií je úplne asynchrónnych a paralelných výpočtov. Korutíny Kotlin však umožňujú zredukovať mätúci, heterogénny alebo príliš zložitý a výkon náročný kód na jediný, ľahko pochopiteľný štýl, čím sa získajú výhody v správnom vykonávaní a výkone.

V korutínach sa naučíme písať idiomatický kód, ktorý rieši praktické problémy a je na prvý pohľad zrozumiteľný aj bez hlbokých znalostí fungovania korutín (čo sa o knižniciach ako RxJava povedať nedá). Tiež pochopíme, ako používať zložitejšie koncepty, ako je model aktéra, na riešenie zložitejších problémov, ako je napríklad dátový sklad v koncepte MVI.

Mimochodom, ďalšie dobré správy. Počas nahrávania voliteľného predmetu bola vydaná aktualizácia knižnice Kotlin Coroutines, v ktorej sa trieda objavila Flow - analógové typy Flowable и Observable z RxJava. Aktualizácia v podstate robí funkciu coroutines kompletnou z pohľadu vývojára aplikácie. Pravda, stále je čo zlepšovať: napriek tomu, že vďaka podpore korutínov v kotline/native je už možné písať multiplatformové aplikácie v Kotline a netrpieť nedostatkom RxJava alebo analógov v čistom Kotline, podpora pre korutíny v kotline/native ešte nie je dokončená. Napríklad neexistuje koncept hercov. Vo všeobecnosti má tím Kotlin plány na podporu komplexnejších aktérov na všetkých platformách.

Kotlin Coroutines – ako pomáhajú vývojárovi Kotlin?

Coroutines poskytujú skvelú príležitosť na písanie kódu, ktorý je čitateľný, udržiavateľný a bezpečný, asynchrónny a súbežný. Môžete tiež vytvoriť adaptéry pre iné asynchrónne rámce a prístupy, ktoré už možno použiť v kódovej základni.

Ako sa Coroutines líšia od vlákien?

Tím Kotlin nazýva korutíny ľahkými vláknami. Navyše, korutín môže vrátiť určitú hodnotu, pretože vo svojom jadre je korutín pozastavený výpočet. Nezávisí priamo od systémových vlákien, vlákna vykonávajú iba korutíny.

Aké praktické problémy je možné vyriešiť pomocou Coroutine, ktoré nie je možné alebo je ťažké vyriešiť pomocou „čistého“ Kotlinu?

Akékoľvek asynchrónne, paralelné, „konkurenčné“ úlohy sú dobre vyriešené pomocou korutínov – či už ide o spracovanie kliknutí používateľov, prechod online alebo prihlásenie na odber aktualizácií z databázy.

V čistom Kotline sa tieto problémy riešia rovnako ako v Jave – pomocou tisícok frameworkov, z ktorých každý má svoje plusy a mínusy, no žiadny z nich nemá podporu na jazykovej úrovni.

Na záver treba povedať, že oba voliteľné predmety (aj hlavné predmety) sa aktualizujú v súlade so zmenami vonkajších podmienok. Ak sa v jazykoch alebo rámcoch objavia dôležité aktualizácie, učitelia to zohľadnia a upravia program. To všetko vám umožňuje takpovediac držať prst na pulze vývojového procesu.

Zdroj: hab.com

Pridať komentár