RxSwift eta coroutines Kotlin-en - AGIMA eta GeekBrains-en garapen mugikorreko hautazkoa

RxSwift eta coroutines Kotlin-en - AGIMA eta GeekBrains-en garapen mugikorreko hautazkoa

Ezagutza ona da, bikaina. Baina praktika ere beharrezkoa da jasotako datuak erabili ahal izateko, "biltegiratze pasibo" egoeratik "erabilera aktibo" egoerara transferituz. Prestakuntza teorikoa zein ona den ere, “arloan” lana beharrezkoa da oraindik. Aurrekoa ia edozein ikasketa-arlotan aplikatzen da, baita, noski, software garapena ere.

Aurten, GeekBrains, GeekUniversity lineako unibertsitateko garapen mugikorreko fakultatearen baitan, AGIMA agentzia interaktiboarekin hasi zen lanean, bere taldea garatzaile profesionalak direlarik (karga handiko proiektu konplexuak, atari korporatiboak eta mugikorretarako aplikazioak sortzen dituzte, hori da dena). AGIMAk eta GeekBrains-ek hautazko bat sortu dute mugikorretarako aplikazioen garapenaren gai praktikoetan sakontzeko.

Herenegun Igor Vedeneev iOS espezialistarekin eta Alexander Tizik Android-en adituarekin hitz egin genuen. Horiei esker, mugikorraren garapenari buruzko hautazkoa praktikoarekin aberastu zen RxSwift esparruari buruzko ikastaro berezia и Koroutinak Kotlin-en. Artikulu honetan, garatzaileek programatzaileentzako arlo bakoitzak duen garrantziaz hitz egiten dute.

Programazio erreaktiboa iOS-n RxSwift erabiliz adibide gisa

RxSwift eta coroutines Kotlin-en - AGIMA eta GeekBrains-en garapen mugikorreko hautazkoa
Igor Vedeneev hautazko irakaslea: "RxSwift-ekin, zure aplikazioak hegan egingo du"

Zer informazio jasotzen dute ikasleek hautazkoetan?

Esparruaren gaitasunez ez ezik, MVVM + RxSwift konbinazio klasikoan nola erabili ere erakusten dugu. Hainbat adibide praktiko ere eztabaidatzen dira. Lortutako datuak finkatzeko, eremuko funtzionamendu-baldintzetatik ahalik eta hurbilen dagoen aplikazio bat idazten dugu. Erabiltzen duen musika bilatzeko aplikazioa izango da iTunes Search APIa. Bertan Praktika Egokien guztiak aplikatuko ditugu, eta RxSwift MVC paradigman erabiltzeko aukera errazagoa kontuan hartuko dugu.

RxSwift - zergatik behar du iOS programatzaile batek marko hau, nola errazten dio bizitza garatzaile bati?

RxSwift-ek gertaeren korronteekin eta objektuen arteko konexioekin funtzionatzen du. Adibiderik errazena eta agerikoena loturak dira: adibidez, interfazea eguneratu dezakezu ikuspegi ereduko aldagai batean balio berriak ezarriz. Horrela, interfazea datuen araberakoa bihurtzen da. Horrez gain, RxSwift-ek sistema deklarazio-estiloan deskribatzeko aukera ematen dizu, eta horrek zure kodea antolatzeko eta irakurgarritasuna areagotzeko aukera ematen dizu. Horrek guztiak aplikazioak eraginkorrago garatzen laguntzen du.

Garatzaile batentzat, markoaren ezagutza ere abantaila ona da curriculumean, programazio erreaktiboaren ulermena eta, batez ere, RxSwift-en esperientzia, merkatuan baloratzen baita.

Zergatik aukeratu marko zehatz hau beste batzuen aldean?

RxSwift-ek komunitaterik handiena du. Hau da, aukera handiagoa dago garatzaileak jasaten duen arazoa dagoeneko norbaitek konpondu izana. Kutxatik kanpo enkuadernazio kopuru handia ere. Gainera, RxSwift ReactiveX-en parte da. Horrek esan nahi du badela analogo bat Androiderako, adibidez (RxJava, RxKotlin), eta tailerreko lankideek euren artean hizkuntza bera hitz egin dezaketela, batzuek iOS-ekin funtzionatzen duten arren, beste batzuk Android-ekin.

Markoa etengabe eguneratzen da, akats txikiak zuzentzen dira, Swift-en bertsio berrietako funtzioetarako laguntza gehitzen da eta lotura berriak gehitzen dira. RxSwift kode irekia denez, aldaketa guztiak jarraitu ditzakezu. Gainera, zuk zeuk gehi ditzakezu.

Non erabili behar da RxSwift?

  1. Loturak. Oro har, interfazeari buruz hitz egiten ari gara, interfazea aldatzeko gaitasunaz, datuen aldaketei erreakzionatuko balitz bezala, eta interfazeari espresuki esango ez eguneratzeko garaia dela.
  2. Osagaien eta eragiketen arteko erlazioa. Adibide bat besterik ez. Sareko datuen zerrenda lortu behar dugu. Izan ere, hau ez da eragiketa hain erraza. Horretarako, eskaera bat bidali, erantzuna objektu-matrize batean mapatu, datu-basean gorde eta UI-ra bidali behar duzu. Oro har, osagai desberdinak arduratzen dira eragiketa hauek egiteaz (printzipioak maite eta jarraitzen ditugu SOLID?). RxSwift bezalako tresna bat eskura edukita, sistemak ZER egingo duen eta NOLA egingo duen beste leku batzuetan deskribatu ahal izango da. Horregatik, kodearen antolaketa hobea lortzen da eta irakurgarritasuna handitzen da. Erlatiboki hitz eginez, kodea aurkibide batean eta liburuan bertan bana daiteke.

Koroutinak Kotlinen

RxSwift eta coroutines Kotlin-en - AGIMA eta GeekBrains-en garapen mugikorreko hautazkoa
Alexander Tizik hautazko ikastaroko irakaslea: "Garapen modernoak baliabide tekniko modernoak behar ditu"

Zer irakatsiko da GeekBrains fakultatean marka hiruhilekoan?

Teoria, beste ikuspegi batzuekin konparaketak, adibide praktikoak Kotlin hutsean eta Android aplikazio ereduan. Praktikari dagokionez, ikasleei aplikazio bat erakutsiko zaie eta bertan dena korutinei lotuta dagoen. Kontua da aplikazio gehienak konputazio guztiz asinkronoak eta paraleloak direla. Baina Kotlin korrutinek aukera ematen dute kode nahasgarria, heterogeneoa edo konplexuegia eta errendimendua eskatzen duena estilo bakarrera eta ulerterraza izatera murriztea, exekuzio eta errendimendu egokian onurak lortuz.

Kode idiomatikoa idazten ikasiko dugu arazo praktikoak konpontzen dituen korrutinetan eta lehen begiratuan ulergarria den korutinek nola funtzionatzen duten jakin gabe ere (hori ezin da esan RxJava bezalako liburutegiei buruz). Kontzeptu konplexuagoak nola erabili ulertuko dugu, hala nola, aktore-eredua, arazo konplexuagoak konpontzeko, hala nola datu biltegia MVI kontzeptuan.

Bide batez, berri on gehiago. Hautazkoa grabatzen ari ziren bitartean, Kotlin Coroutines liburutegiaren eguneraketa bat kaleratu zen, eta bertan klasea agertu zen. Flow - Moten analogia Flowable и Observable RxJava-tik. Eguneraketak, funtsean, koroutines funtzioa osatu egiten du aplikazioaren garatzailearen ikuspuntutik. Egia da, oraindik badago zer hobetu: Kotlin/natiboan koroutinen laguntzari esker dagoeneko posible da plataforma anitzeko aplikazioak Kotlin-en idaztea eta ez RxJava edo analogoen faltarik jasan Kotlin hutsean, Kotlin/nativeko koroutinetarako laguntza ez dago oraindik osatuta. Esaterako, ez dago aktoreen kontzepturik. Oro har, Kotlin taldeak plataforma guztietan eragile konplexuagoei laguntzeko asmoa du.

Kotlin Coroutines - nola laguntzen diote Kotlin garatzaile bati?

Coroutines-ek aukera bikaina eskaintzen dute irakurgarria, mantentzea eta segurua, asinkronoa eta aldiberekoa den kodea idazteko. Kode-oinarrian dagoeneko erabil daitezkeen beste esparru eta ikuspegi asinkrono batzuetarako egokitzaileak ere sor ditzakezu.

Nola desberdintzen dira Coroutines harietatik?

Kotlin taldeak hari arinak deitzen dizkio coroutines. Gainera, korrutina batek nolabaiteko balio bat itzul dezake, zeren, bere oinarrian, korrutina bat kalkulu eseki bat da. Ez da zuzenean sistemaren harien araberakoa; hariek koroutinak soilik exekutatzen dituzte.

Zein arazo praktiko ebatzi daitezke Coroutine erabiliz, Kotlin “purua” erabiliz ebatzi ezin direnak edo zailak direnak?

Edozein ataza asinkrono, paralelo, "lehiakorra" ondo konpontzen da korutinen bidez - dela erabiltzaileen klikak prozesatu, sarean sartu edo datu-base bateko eguneratzeetara harpidetu.

Kotlin hutsean, arazo hauek Javan bezala konpontzen dira - milaka esparruren laguntzaz, bakoitzak bere alde onak eta txarrak ditu, baina inork ez du hizkuntza-mailako euskarririk.

Ondorio gisa, esan beharra dago bi hautazko ikasgaiak (eta ikasgai nagusiak ere) kanpoko baldintzen aldaketen arabera eguneratzen direla. Hizkuntza edo esparruetan eguneratze garrantzitsuak agertzen badira, irakasleek hori kontuan hartzen dute eta programa aldatzen dute. Horrek guztiak garapen-prozesuaren pultsuari eustea ahalbidetzen du, nolabait esatearren.

Iturria: www.habr.com

Gehitu iruzkin berria