RxSwift ndi ma coroutines ku Kotlin - osankhidwa pakukula kwa mafoni kuchokera ku AGIMA ndi GeekBrains

RxSwift ndi ma coroutines ku Kotlin - osankhidwa pakukula kwa mafoni kuchokera ku AGIMA ndi GeekBrains

Chidziwitso ndi chabwino, chabwino basi. Koma kuyeserera kumafunikanso kuti muthe kugwiritsa ntchito zomwe mwalandira, kuwasamutsa kuchoka pa "malo osungira" kupita ku "ntchito yogwira". Ziribe kanthu kuti maphunziro apamwamba ndi abwino bwanji, kugwira ntchito "m'munda" kumafunikabe. Zomwe zili pamwambazi zikugwira ntchito pafupifupi gawo lililonse la maphunziro, kuphatikizapo, ndithudi, chitukuko cha mapulogalamu.

Chaka chino, GeekBrains, monga gawo la gulu lachitukuko cha mafoni a yunivesite ya GeekUniversity ya pa intaneti, anayamba kugwira ntchito ndi bungwe lothandizira AGIMA, lomwe gulu lawo ndi akatswiri opanga mapulogalamu (amapanga mapulojekiti ovuta kwambiri, zipata zamakampani ndi mafoni, ndizo zonse). AGIMA ndi GeekBrains apanga chisankho chodziwira mozama pazinthu zothandiza za chitukuko cha mafoni.

Tsiku lina tidalankhula ndi Igor Vedeneev, katswiri wa iOS, ndi Alexander Tizik, wodziwika bwino pa Android. Chifukwa cha iwo, osankhidwa pa chitukuko cha mafoni adalemeretsedwa ndi zothandiza maphunziro apadera pa RxSwift chimango ΠΈ ku Kotlin. M'nkhaniyi, okonza amalankhula za kufunika kwa dera lililonse kwa opanga mapulogalamu.

Mapulogalamu okhazikika mu iOS pogwiritsa ntchito RxSwift mwachitsanzo

RxSwift ndi ma coroutines ku Kotlin - osankhidwa pakukula kwa mafoni kuchokera ku AGIMA ndi GeekBrains
Mphunzitsi wosankhidwa Igor Vedeneev: "Ndi RxSwift, ntchito yanu idzawuluka"

Kodi ophunzira amalandira chidziwitso chotani panthawi yachisankho?

Sitimangonena za kuthekera kwa chimango, komanso tikuwonetsa momwe mungagwiritsire ntchito kuphatikiza kwa MVVM + RxSwift. Zitsanzo zingapo zothandiza zikufotokozedwanso. Kuti aphatikize zomwe tapeza, timalemba ntchito yomwe ili pafupi kwambiri ndi momwe magwiridwe antchito akumunda. Izi zidzakhala nyimbo kufufuza ntchito ntchito iTunes Search API. Kumeneko tidzagwiritsa ntchito Njira Zonse Zapamwamba, ndikuganiziranso njira yosavuta yogwiritsira ntchito RxSwift muzithunzi za MVC.

RxSwift - chifukwa chiyani wopanga mapulogalamu a iOS amafunikira chimangochi, chimapangitsa moyo kukhala wosavuta kwa wopanga?

RxSwift streamlines ntchito ndi mitsinje zochitika ndi kugwirizana pakati pa zinthu. Chitsanzo chosavuta komanso chodziwikiratu ndikumangirira: mwachitsanzo, mutha kusintha mawonekedwewo pongoyika zikhalidwe zatsopano pazosintha mu viewModel. Chifukwa chake, mawonekedwewo amakhala oyendetsedwa ndi data. Kuphatikiza apo, RxSwift imakupatsani mwayi wofotokozera dongosololi mwanjira yofotokozera, yomwe imakupatsani mwayi wopanga ma code anu ndikuwonjezera kuwerenga. Zonsezi zimathandiza kupanga mapulogalamu bwino kwambiri.

Kwa wopanga mapulogalamu, chidziwitso cha chimango ndichabwinonso pakuyambiranso, popeza kumvetsetsa kwamapulogalamu okhazikika, komanso kudziwa zambiri ndi RxSwift, kuli mtengo pamsika.

Chifukwa chiyani mumasankha chimango ichi kuposa ena?

RxSwift ili ndi gulu lalikulu kwambiri. Ndiko kuti, pali mwayi waukulu kuti vuto lomwe woyambitsa akukumana nalo lathetsedwa kale ndi winawake. Komanso chiwerengero chachikulu cha zomangira kunja kwa bokosi. Komanso, RxSwift ndi gawo la ReactiveX. Izi zikutanthauza kuti pali analogi ya Android, mwachitsanzo (RxJava, RxKotlin), ndi ogwira nawo ntchito pamsonkhanowu amatha kulankhulana chinenero chimodzi, ngakhale kuti ena amagwira ntchito ndi iOS, ena ndi Android.

Ndondomekoyi imasinthidwa nthawi zonse, nsikidzi zing'onozing'ono zimawongoleredwa, chithandizo chazinthu zochokera kumitundu yatsopano ya Swift chikuwonjezeredwa, ndipo zomangira zatsopano zimawonjezeredwa. Popeza RxSwift ndi gwero lotseguka, mutha kutsatira zosintha zonse. Komanso, ndizotheka kuwonjezera nokha.

Kodi RxSwift iyenera kugwiritsidwa ntchito kuti?

  1. Zomangira. Monga lamulo, tikukamba za UI, kuthekera kosintha UI, ngati kuchitapo kanthu pakusintha kwa data, osati kufotokoza momveka bwino mawonekedwe kuti ndi nthawi yoti musinthe.
  2. Mgwirizano pakati pa zigawo ndi ntchito. Chitsanzo chabe. Tiyenera kupeza mndandanda wa data kuchokera pa netiweki. Ndipotu, iyi si ntchito yosavuta. Kuti muchite izi, muyenera kutumiza pempho, jambulani yankholo muzinthu zingapo, sungani ku database ndikutumiza ku UI. Monga lamulo, magawo osiyanasiyana ali ndi udindo wochita izi (timakonda ndikutsatira mfundozo OLIMBITSA?). Pokhala ndi chida ngati RxSwift pafupi, zimakhala zotheka kufotokoza ZOMWE dongosololi lidzachita, ndi MMENE lidzachitira izo zidzakhala m'malo ena. Ndi chifukwa cha izi kuti kulinganiza bwino kwa code kumatheka ndipo kuwerenga kumawonjezeka. Kunena zoona, kachidindo kakhoza kugawidwa m’ndandanda wa zamkati ndi bukhu lokha.

Malo Odyera ku Kotlin

RxSwift ndi ma coroutines ku Kotlin - osankhidwa pakukula kwa mafoni kuchokera ku AGIMA ndi GeekBrains
Mphunzitsi wosankhidwa Alexander Tizik: "Kukula kwamakono kumafuna njira zamakono zamakono"

Kodi chidzaphunzitsidwa chiyani ku faculty ya GeekBrains ngati gawo la kotala yodziwika bwino?

Malingaliro, kufananiza ndi njira zina, zitsanzo zothandiza mu Kotlin wangwiro ndi mtundu wa pulogalamu ya Android. Ponena za zoyeserera, ophunzira awonetsedwa pulogalamu yomwe chilichonse chimalumikizidwa ndi ma coroutines. Chowonadi ndi chakuti ntchito zambiri ndizosasinthika komanso zogwirizana ndi kompyuta. Koma ma coroutines a Kotlin amalola code yosokoneza, yosiyana kwambiri kapena yovuta kwambiri komanso yofunikira kuti ikhale yocheperapo, yosavuta kumvetsetsa, kupeza phindu pakuchita bwino ndi ntchito.

Tidzaphunzira kulemba kachidindo kakang'ono m'ma coroutines omwe amathetsa mavuto othandiza ndipo amamveka poyang'ana poyamba ngakhale popanda chidziwitso chozama cha momwe ma coroutines amagwirira ntchito (zomwe sitinganene za malaibulale monga RxJava). Tidzamvetsetsanso momwe tingagwiritsire ntchito malingaliro ovuta kwambiri, monga chitsanzo cha zisudzo, kuthetsa mavuto ovuta kwambiri, monga malo osungiramo deta mu lingaliro la MVI.

Mwa njira, zambiri zabwino. Pomwe zosankhidwazo zikujambulidwa, zosintha ku library ya Kotlin Coroutines zidatulutsidwa, momwe kalasiyo idawonekera. Flow - analogue a mitundu Flowable ΠΈ Observable kuchokera ku RxJava. Kusinthaku kumapangitsa kuti mawonekedwe a ma coroutine akhale okwanira kuchokera pamalingaliro a wopanga mapulogalamu. Zoonadi, pali malo oti asinthe: ngakhale kuti chifukwa cha chithandizo cha coroutines ku kotlin / mbadwa, ndizotheka kale kulemba mapulogalamu amitundu yambiri ku Kotlin ndipo osavutika ndi kusowa kwa RxJava kapena ma analogues mu Kotlin yoyera, chithandizo cha coroutines ku kotlin/native sichinathe. Mwachitsanzo, palibe lingaliro la zisudzo. Kawirikawiri, gulu la Kotlin lili ndi ndondomeko zothandizira ochita masewera ovuta kwambiri pamapulatifomu onse.

Kotlin Coroutines - amathandizira bwanji wopanga Kotlin?

Ma Corroutines amapereka mpata wabwino kwambiri wolembera ma code omwe amatha kuwerengeka, osasunthika, komanso otetezeka, osasinthika, komanso ogwirizana. Mutha kupanganso ma adapter azinthu zina zosasinthika ndi njira zomwe zitha kugwiritsidwa ntchito kale mu codebase.

Kodi ma Coroutine amasiyana bwanji ndi ulusi?

Gulu la Kotlin limatcha ma coroutines ulusi wopepuka. Kuphatikiza apo, coroutine imatha kubweza mtundu wina wamtengo wapatali, chifukwa, pachimake, coroutine ndi kuwerengera koyimitsidwa. Sizidalira mwachindunji ulusi wamakina; ulusi umangopanga ma coroutines.

Ndi mavuto otani omwe angathe kuthetsedwa pogwiritsa ntchito Coroutine, zomwe sizingatheke kapena zovuta kuthetsa pogwiritsa ntchito "woyera" Kotlin?

Ntchito zilizonse zofananira, zofananira, "zopikisana" zimathetsedwa bwino pogwiritsa ntchito ma coroutines - kukhala kukonza kudina kwa ogwiritsa ntchito, kupita pa intaneti, kapena kulembetsa zosintha kuchokera ku database.

Ku Kotlin koyera, mavutowa amathetsedwa mofanana ndi Java - mothandizidwa ndi masauzande masauzande, omwe ali ndi ubwino ndi zovuta zake, koma palibe amene ali ndi chithandizo cha chinenero.

Pomaliza, ndikofunikira kunena kuti ma electives onse (ndi maphunziro akuluakulu nawonso) amasinthidwa malinga ndi kusintha kwakunja. Ngati zosintha zofunika zikuwonekera m'zilankhulo kapena zilankhulo, aphunzitsi amaganizira izi ndikusintha pulogalamuyo. Zonsezi zimakulolani kuti musunge chala chanu pamayendedwe a chitukuko, kunena kwake.

Source: www.habr.com

Kuwonjezera ndemanga