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
Mphunzitsi wosankhidwa Igor Vedeneev: "Ndi RxSwift, ntchito yanu idzawuluka"
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.
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.
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
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.
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.
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.