RxSwift ati awọn coroutines ni Kotlin - yiyan ni idagbasoke alagbeka lati AGIMA ati GeekBrains

RxSwift ati awọn coroutines ni Kotlin - yiyan ni idagbasoke alagbeka lati AGIMA ati GeekBrains

Imo dara, o kan nla. Ṣugbọn adaṣe tun nilo ki o le lo data ti o gba, gbigbe wọn lati ipo “ipamọ palolo” si ipo “lilo lọwọ”. Ko si bi ikẹkọ imọ-jinlẹ ti dara to, iṣẹ “ni aaye” tun nilo. Eyi ti o wa loke kan si fere eyikeyi aaye ikẹkọ, pẹlu, dajudaju, idagbasoke sọfitiwia.

Ni ọdun yii, GeekBrains, gẹgẹbi apakan ti ile-ẹkọ idagbasoke alagbeka ti ile-ẹkọ giga lori ayelujara GeekUniversity, bẹrẹ ṣiṣẹ pẹlu AGIMA ibẹwẹ ibaraenisepo, ti ẹgbẹ rẹ jẹ awọn olupilẹṣẹ alamọdaju (wọn ṣẹda awọn iṣẹ akanṣe iwuwo giga, awọn ọna abawọle ile-iṣẹ ati awọn ohun elo alagbeka, iyẹn ni gbogbo). AGIMA ati GeekBrains ti ṣẹda yiyan fun jijinlẹ sinu awọn ọran ilowo ti idagbasoke ohun elo alagbeka.

Ni ọjọ miiran a sọrọ pẹlu Igor Vedeneev, alamọja iOS kan, ati Alexander Tizik, amọja ni Android. Ṣeun si wọn, yiyan lori idagbasoke alagbeka jẹ idarato pẹlu ilowo papa pataki lori ilana RxSwift и coroutines ni Kotlin. Ninu nkan yii, awọn olupilẹṣẹ sọrọ nipa pataki agbegbe kọọkan fun awọn olupilẹṣẹ.

siseto ifaseyin ni iOS nipa lilo RxSwift bi apẹẹrẹ

RxSwift ati awọn coroutines ni Kotlin - yiyan ni idagbasoke alagbeka lati AGIMA ati GeekBrains
Olukọ ti o yan Igor Vedeneev: "Pẹlu RxSwift, ohun elo rẹ yoo fo"

Alaye wo ni awọn ọmọ ile-iwe gba lakoko yiyan?

A sọrọ kii ṣe nipa awọn agbara ti ilana nikan, ṣugbọn tun ṣafihan bi o ṣe le lo ni apapọ MVVM + RxSwift Ayebaye. Ọpọlọpọ awọn apẹẹrẹ ti o wulo ni a tun jiroro. Lati fikun data ti o gba, a kọ ohun elo kan ti o sunmọ bi o ti ṣee ṣe si awọn ipo iṣẹ aaye. Eyi yoo jẹ ohun elo wiwa orin nipa lilo ITunes Search API. Nibẹ ni a yoo lo gbogbo Awọn adaṣe Ti o dara julọ, pẹlu gbero aṣayan ti o rọrun fun lilo RxSwift ni apẹrẹ MVC.

RxSwift - kilode ti olupilẹṣẹ iOS nilo ilana yii, bawo ni o ṣe jẹ ki igbesi aye rọrun fun idagbasoke kan?

RxSwift ṣiṣan ṣiṣẹ pẹlu awọn ṣiṣan iṣẹlẹ ati awọn asopọ laarin awọn nkan. Apeere ti o rọrun julọ ati ti o han gedegbe ni awọn abuda: fun apẹẹrẹ, o le ṣe imudojuiwọn wiwo naa nipa ṣiṣeto awọn iye tuntun ni irọrun ni oniyipada ninu iwoModel. Bayi, ni wiwo di data-ìṣó. Ni afikun, RxSwift gba ọ laaye lati ṣapejuwe eto naa ni ara asọye, eyiti o fun ọ laaye lati ṣeto koodu rẹ ati mu kika kika. Gbogbo eyi ṣe iranlọwọ lati ṣe idagbasoke awọn ohun elo diẹ sii daradara.

Fun olupilẹṣẹ, imọ ti ilana tun jẹ afikun ti o dara lori ibẹrẹ kan, nitori oye ti siseto ifaseyin, ati paapaa iriri pẹlu RxSwift, ni idiyele ni ọja naa.

Kini idi ti o yan ilana pataki yii lori awọn miiran?

RxSwift ni agbegbe ti o tobi julọ. Iyẹn ni, aye nla wa pe iṣoro ti olupilẹṣẹ n dojukọ ti ti yanju tẹlẹ nipasẹ ẹnikan. Tun kan ti o tobi nọmba ti bindings jade kuro ninu apoti. Pẹlupẹlu, RxSwift jẹ apakan ti ReactiveX. Eyi tumọ si pe afọwọṣe kan wa fun Android, fun apẹẹrẹ (RxJava, RxKotlin), ati awọn ẹlẹgbẹ ninu idanileko le sọ ede kanna pẹlu ara wọn, botilẹjẹpe diẹ ninu ṣiṣẹ pẹlu iOS, awọn miiran pẹlu Android.

Ilana naa ti ni imudojuiwọn nigbagbogbo, atunṣe awọn idun kekere, atilẹyin fun awọn ẹya lati awọn ẹya tuntun ti Swift ti wa ni afikun, ati awọn ifunmọ tuntun ti wa ni afikun. Niwọn igba ti RxSwift jẹ orisun ṣiṣi, o le tẹle gbogbo awọn ayipada. Pẹlupẹlu, o ṣee ṣe lati fi wọn kun funrararẹ.

Nibo ni o yẹ ki o lo RxSwift?

  1. Awọn isopọ. Gẹgẹbi ofin, a n sọrọ nipa UI, agbara lati yi UI pada, bi ẹnipe o n dahun si awọn iyipada data, ati pe ko sọ ni gbangba pe o to akoko lati ṣe imudojuiwọn.
  2. Ibasepo laarin irinše ati awọn mosi. O kan apẹẹrẹ. A nilo lati gba akojọ kan ti data lati nẹtiwọki. Ni otitọ, eyi kii ṣe iṣẹ ti o rọrun bẹ. Lati ṣe eyi, o nilo lati firanṣẹ ibeere kan, ṣe maapu idahun si ọpọlọpọ awọn nkan, fi pamọ si ibi ipamọ data ki o firanṣẹ si UI. Gẹgẹbi ofin, awọn paati oriṣiriṣi jẹ iduro fun ṣiṣe awọn iṣẹ wọnyi (a nifẹ ati tẹle awọn ipilẹ SOLID?). Nini ọpa bi RxSwift ni ọwọ, o di ṣee ṣe lati ṣe apejuwe KINNI eto naa yoo ṣe, ati BAWO yoo ṣe yoo wa ni awọn aaye miiran. O jẹ nitori eyi pe eto ti o dara julọ ti koodu ti waye ati kika kika. Ni ibatan si sisọ, koodu le pin si tabili akoonu ati iwe funrararẹ.

Coroutines ni Kotlin

RxSwift ati awọn coroutines ni Kotlin - yiyan ni idagbasoke alagbeka lati AGIMA ati GeekBrains
Olukọni ti o yan Alexander Tizik: “Idagbasoke ode oni nilo awọn ọna imọ-ẹrọ ode oni”

Kini yoo kọ ni ile-ẹkọ GeekBrains gẹgẹbi apakan ti mẹẹdogun iyasọtọ?

Imọran, awọn afiwe pẹlu awọn isunmọ miiran, awọn apẹẹrẹ ilowo ni Kotlin mimọ ati ninu awoṣe ohun elo Android. Bi fun adaṣe, awọn ọmọ ile-iwe yoo han ohun elo kan ninu eyiti ohun gbogbo ti so si awọn coroutines. Otitọ ni pe ọpọlọpọ awọn ohun elo jẹ asynchronous patapata ati iširo afiwera. Ṣugbọn Kotlin coroutines gba airoju, orisirisi tabi eka pupọ ati koodu ibeere iṣẹ lati dinku si ẹyọkan, ara-rọrun lati loye, nini awọn anfani ni ipaniyan ti o pe ati iṣẹ.

A yoo kọ ẹkọ lati kọ koodu idiomatic ni awọn coroutines ti o yanju awọn iṣoro ilowo ati pe o jẹ oye ni wiwo akọkọ paapaa laisi imọ jinlẹ ti bii awọn coroutines ṣe n ṣiṣẹ (eyiti a ko le sọ nipa awọn ile-ikawe bii RxJava). A yoo tun loye bi a ṣe le lo awọn imọran idiju diẹ sii, gẹgẹbi awoṣe oṣere, lati yanju awọn iṣoro idiju diẹ sii, gẹgẹbi ile-ipamọ data ni imọran MVI.

Nipa ọna, awọn iroyin ti o dara diẹ sii. Lakoko ti a ti gbasilẹ yiyan, imudojuiwọn si ile-ikawe Kotlin Coroutines ti tu silẹ, ninu eyiti kilasi naa han Flow - afọwọṣe ti awọn iru Flowable и Observable lati RxJava. Imudojuiwọn ni pataki jẹ ki awọn ẹya ara ẹrọ coroutines pari lati oju wiwo olupilẹṣẹ ohun elo. Lootọ, aye tun wa fun ilọsiwaju: botilẹjẹpe o ṣeun si atilẹyin ti awọn coroutines ni kotlin / abinibi, o ṣee ṣe tẹlẹ lati kọ awọn ohun elo Syeed pupọ ni Kotlin ati pe ko jiya lati aini RxJava tabi awọn analogues ni Kotlin mimọ, support fun coroutines ni kotlin/abinibi ko sibẹsibẹ ti pari. Fun apẹẹrẹ, ko si imọran ti awọn oṣere. Ni gbogbogbo, ẹgbẹ Kotlin ni awọn ero lati ṣe atilẹyin awọn oṣere eka diẹ sii lori gbogbo awọn iru ẹrọ.

Kotlin Coroutines - bawo ni wọn ṣe ṣe iranlọwọ fun idagbasoke Kotlin kan?

Coroutines pese aye nla lati kọ koodu ti o jẹ kika, ṣetọju, ati aabo, asynchronous, ati concurrency. O tun le ṣẹda awọn alamuuṣẹ fun awọn ilana asynchronous miiran ati awọn isunmọ ti o le ti lo tẹlẹ ninu koodu koodu.

Bawo ni Coroutines ṣe yatọ si awọn okun?

Ẹgbẹ Kotlin n pe coroutines awọn okun iwuwo fẹẹrẹ. Pẹlupẹlu, coroutine le pada diẹ ninu iye, nitori, ni ipilẹ rẹ, coroutine jẹ iṣiro ti daduro. Ko dale taara lori awọn okun eto; awọn okun ṣiṣẹ awọn coroutines nikan.

Awọn iṣoro ilowo wo ni a le yanju nipa lilo Corutine, eyiti ko le tabi nira lati yanju nipa lilo “mimọ” Kotlin?

Eyikeyi asynchronous, ni afiwe, awọn iṣẹ ṣiṣe “ifigagbaga” ni a yanju daradara ni lilo awọn coroutines - boya ṣiṣiṣẹ awọn titẹ olumulo, lọ lori ayelujara, tabi ṣiṣe alabapin si awọn imudojuiwọn lati ibi ipamọ data.

Ni Kotlin mimọ, awọn iṣoro wọnyi ni a yanju ni ọna kanna bi ni Java - pẹlu iranlọwọ ti awọn ẹgbẹẹgbẹrun awọn ilana, ọkọọkan wọn ni awọn anfani ati awọn konsi tirẹ, ṣugbọn ko si ọkan ninu wọn ti o ni atilẹyin ipele ede.

Gẹgẹbi ipari, o tọ lati sọ pe awọn yiyan mejeeji (ati awọn iṣẹ ikẹkọ paapaa) ti ni imudojuiwọn ni ibamu pẹlu awọn ayipada ninu awọn ipo ita. Ti awọn imudojuiwọn pataki ba han ni awọn ede tabi awọn ilana, awọn olukọ ṣe akiyesi eyi ki o ṣe atunṣe eto naa. Gbogbo eyi n gba ọ laaye lati tọju ika rẹ lori pulse ti ilana idagbasoke, bẹ sọ.

orisun: www.habr.com

Fi ọrọìwòye kun