RxSwift i korutine u Kotlinu - izborni predmet u mobilnom razvoju od AGIMA i GeekBrains

RxSwift i korutine u Kotlinu - izborni predmet u mobilnom razvoju od AGIMA i GeekBrains

Znanje je dobro, jednostavno odlično. Ali je potrebna i praksa kako biste mogli koristiti primljene podatke, prenoseći ih iz statusa „pasivno skladištenje“ u status „aktivne upotrebe“. Koliko god da je teorijska obuka dobra, rad „na terenu” je i dalje neophodan. Gore navedeno se odnosi na gotovo svaku oblast studija, uključujući, naravno, razvoj softvera.

Ove godine, GeekBrains, kao dio fakulteta za mobilni razvoj online univerziteta GeekUniversity, počeo je raditi s interaktivnom agencijom AGIMA, čiji tim čine profesionalni programeri (kreiraju složene projekte visokog opterećenja, korporativne portale i mobilne aplikacije, to je sve). AGIMA i GeekBrains kreirali su izborni predmet za dubinsko uronjenje u praktična pitanja razvoja mobilnih aplikacija.

Pre neki dan smo razgovarali sa Igorom Vedenejevim, specijalistom za iOS, i Aleksandrom Tizikom, specijalistom za Android. Zahvaljujući njima izborni predmet mobilnog razvoja obogaćen je praktičnim specijalni kurs o RxSwift okviru и korutine u Kotlinu. U ovom članku programeri govore o važnosti svake oblasti za programere.

Reaktivno programiranje u iOS-u koristeći RxSwift kao primjer

RxSwift i korutine u Kotlinu - izborni predmet u mobilnom razvoju od AGIMA i GeekBrains
Izborni nastavnik Igor Vedenejev: “Sa RxSwiftom vaša aplikacija će proletjeti”

Koje informacije studenti dobijaju tokom izbornog predmeta?

Ne govorimo samo o mogućnostima okvira, već i pokazujemo kako ga koristiti u klasičnoj kombinaciji MVVM + RxSwift. Raspravlja se i o nekoliko praktičnih primjera. Za konsolidaciju dobijenih podataka, pišemo aplikaciju koja je što je moguće bliža uslovima rada na terenu. Ovo će biti aplikacija za pretraživanje muzike koja koristi iTunes Search API. Tamo ćemo primijeniti sve najbolje prakse, plus razmotriti jednostavniju opciju za korištenje RxSwifta u MVC paradigmi.

RxSwift - zašto je iOS programeru potreban ovaj okvir, kako on olakšava život programeru?

RxSwift streamlines rade sa tokovima događaja i vezama između objekata. Najjednostavniji i najočitiji primjer su vezivanja: na primjer, možete ažurirati sučelje jednostavnim postavljanjem novih vrijednosti u varijablu u viewModelu. Dakle, interfejs postaje vođen podacima. Pored toga, RxSwift vam omogućava da opišete sistem u deklarativnom stilu, što vam omogućava da organizujete svoj kod i povećate čitljivost. Sve ovo pomaže u efikasnijem razvoju aplikacija.

Za programera, poznavanje okvira je također dobar plus u životopisu, jer se razumijevanje reaktivnog programiranja, a posebno iskustvo sa RxSwiftom, cijeni na tržištu.

Zašto odabrati ovaj poseban okvir u odnosu na druge?

RxSwift ima najveću zajednicu. Odnosno, veća je šansa da je problem s kojim se programer suočava već neko riješio. Također veliki broj poveza izvan kutije. Štaviše, RxSwift je dio ReactiveX-a. To znači da postoji analogni za Android, na primjer (RxJava, RxKotlin), a kolege u radionici mogu međusobno govoriti istim jezikom, uprkos činjenici da jedni rade sa iOS-om, drugi sa Androidom.

Framework se stalno ažurira, manje greške su ispravljene, dodata je podrška za funkcije iz novih verzija Swifta i dodana su nova povezivanja. Pošto je RxSwift open source, možete pratiti sve promjene. Štaviše, moguće ih je i sami dodati.

Gdje treba koristiti RxSwift?

  1. Vezi. U pravilu govorimo o korisničkom sučelju, mogućnosti promjene korisničkog sučelja, kao da se reaguje na promjene podataka, a ne da se sučelju eksplicitno kaže da je vrijeme za ažuriranje.
  2. Odnos između komponenti i operacija. Samo primjer. Moramo da dobijemo listu podataka sa mreže. Zapravo, ovo nije tako jednostavna operacija. Da biste to učinili, morate poslati zahtjev, mapirati odgovor u niz objekata, spremiti ga u bazu podataka i poslati korisničkom sučelju. U pravilu, različite komponente su odgovorne za izvođenje ovih operacija (mi volimo i slijedimo principe Čvrsti?). Imajući pri ruci alat kao što je RxSwift, postaje moguće opisati ŠTA će sistem raditi i KAKO će to raditi na drugim mjestima. Zbog toga se postiže bolja organizacija koda i povećava čitljivost. Relativno govoreći, kod se može podijeliti na sadržaj i samu knjigu.

Korutine u Kotlinu

RxSwift i korutine u Kotlinu - izborni predmet u mobilnom razvoju od AGIMA i GeekBrains
Izborni nastavnik Aleksandar Tizik: „Savremeni razvoj zahteva savremena tehnička sredstva“

Šta će se učiti na GeekBrains fakultetu u okviru brendirane četvrti?

Teorija, poređenja s drugim pristupima, praktični primjeri u čistom Kotlinu i u modelu Android aplikacije. Što se tiče prakse, studentima će biti prikazana aplikacija u kojoj je sve vezano za korutine. Činjenica je da je većina aplikacija potpuno asinkrono i paralelno računanje. Ali Kotlin korutine dozvoljavaju da se zbunjujući, heterogen ili previše složen i kod koji zahtijeva performanse, svede na jedan, lako razumljiv stil, stječući prednosti u ispravnom izvršavanju i performansama.

Naučićemo da pišemo idiomatski kod u korutinama koji rešava praktične probleme i razumljiv je na prvi pogled čak i bez dubokog znanja o tome kako funkcionišu korutine (što se ne može reći za biblioteke poput RxJava). Takođe ćemo razumeti kako da koristimo složenije koncepte, kao što je model aktera, za rešavanje složenijih problema, kao što je skladište podataka u konceptu MVI.

Usput, još dobrih vijesti. Dok se izborni predmet snimao, objavljeno je ažuriranje biblioteke Kotlin Coroutines u kojoj se pojavio predmet Flow - analogni tipovi Flowable и Observable iz RxJava. Ažuriranje u suštini čini funkciju korutina kompletnom sa stanovišta programera aplikacije. Istina, još uvijek ima prostora za poboljšanje: unatoč činjenici da je zahvaljujući podršci za korutine u kotlinu/native, već moguće pisati višeplatformske aplikacije u Kotlinu i ne patiti od nedostatka RxJave ili analoga u čistom Kotlinu, podrška za korutine u kotlinu/native još nije završena. Na primjer, ne postoji koncept glumaca. Generalno, Kotlin tim ima planove da podrži složenije aktere na svim platformama.

Kotlin Coroutines - kako pomažu Kotlin programeru?

Korutine pružaju sjajnu priliku za pisanje koda koji je čitljiv, održavan i siguran, asinhroni i konkurentni. Također možete kreirati adaptere za druge asinkrone okvire i pristupe koji se već mogu koristiti u bazi koda.

Po čemu se korutine razlikuju od niti?

Kotlin tim naziva korutine lakim nitima. Plus, korutina može vratiti neku vrstu vrijednosti, jer je, u svojoj srži, korutina suspendovana kalkulacija. Ne zavisi direktno od sistemskih niti; niti izvršavaju samo korutine.

Koji praktični problemi se mogu riješiti korištenjem Coroutine-a, a koji se ne mogu ili su teško riješiti korištenjem “čistog” Kotlina?

Bilo koji asinhroni, paralelni, „konkurentski“ zadaci dobro se rješavaju pomoću korutina – bilo da se radi o obradi klikova korisnika, odlasku na internet ili pretplati na ažuriranja iz baze podataka.

U čistom Kotlinu ovi problemi se rješavaju na isti način kao u Javi - uz pomoć hiljada okvira, od kojih svaki ima svoje prednosti i nedostatke, ali nijedan od njih nema podršku na nivou jezika.

Kao zaključak, valja reći da se oba izborna predmeta (a i glavni predmeti) ažuriraju u skladu sa promjenama vanjskih uslova. Ako se važna ažuriranja pojave u jezicima ili okvirima, nastavnici to uzimaju u obzir i modificiraju program. Sve ovo vam omogućava da, da tako kažemo, držite prst na pulsu procesa razvoja.

izvor: www.habr.com

Dodajte komentar