ʻO RxSwift a me nā coroutines ma Kotlin - kahi koho i ka hoʻomohala kelepona mai AGIMA a me GeekBrains

ʻO RxSwift a me nā coroutines ma Kotlin - kahi koho i ka hoʻomohala kelepona mai AGIMA a me GeekBrains

Maikaʻi ka ʻike, maikaʻi wale nō. Akā, pono ka hoʻomaʻamaʻa i hiki iā ʻoe ke hoʻohana i ka ʻikepili i loaʻa, e hoʻololi iā lākou mai ke kūlana "passive storage" i ke kūlana "hoʻohana ikaika". No ka maikaʻi o ka hoʻomaʻamaʻa theoretical, pono mau ka hana "ma ke kula". Hoʻopili ka mea i luna ma kahi kokoke i kēlā me kēia ʻano o ke aʻo ʻana, me ka hoʻomohala polokalamu.

I kēia makahiki, ua hoʻomaka ʻo GeekBrains, ma ke ʻano o ke kumu hoʻomohala kelepona o ke kulanui pūnaewele ʻo GeekUniversity, e hana pū me ka hui hui AGIMA, nona ka hui he mea hoʻomohala ʻoihana (hana lākou i nā papahana kiʻekiʻe kiʻekiʻe, nā puka ʻoihana a me nā noi kelepona, ʻo ia wale nō). Ua hoʻokumu ʻo AGIMA a me GeekBrains i kahi koho no ka luʻu hohonu i nā pilikia kūpono o ka hoʻomohala ʻana i nā noi kelepona.

I kekahi lā aʻe ua kamaʻilio mākou me Igor Vedeneev, he loea iOS, a me Alexander Tizik, loea i ka Android. Mahalo iā lākou, ua hoʻonui ʻia ka mea koho i ka hoʻomohala kelepona me ka hana papa kūikawā ma ka RxSwift framework и coroutines ma Kotlin. Ma kēiaʻatikala, kamaʻilio nā mea hoʻomohala e pili ana i ke koʻikoʻi o kēlā me kēia wahi no nā mea polokalamu.

ʻO ka hoʻolālā reactive ma iOS me ka hoʻohana ʻana iā RxSwift ma ke ʻano he laʻana

ʻO RxSwift a me nā coroutines ma Kotlin - kahi koho i ka hoʻomohala kelepona mai AGIMA a me GeekBrains
ʻO ke kumu koho ʻo Igor Vedeneev: "Me RxSwift, e lele kāu noi"

He aha ka ʻike i loaʻa i nā haumāna i ka wā koho?

ʻAʻole wale mākou e kamaʻilio e pili ana i nā hiki o ka framework, akā hōʻike pū i ke ʻano e hoʻohana ai i ka hui MVVM + RxSwift maʻamau. Kūkākūkā ʻia kekahi mau hiʻohiʻona kūpono. No ka hoʻohui ʻana i ka ʻikepili i loaʻa, kākau mākou i kahi noi e pili kokoke ana i nā kūlana hana. He polokalamu huli mele kēia e hoʻohana ana API Huli iTunes. Ma laila mākou e hoʻohana ai i nā Hoʻomaʻamaʻa maikaʻi loa, a e noʻonoʻo i kahi koho maʻalahi no ka hoʻohana ʻana iā RxSwift i ka paradigm MVC.

RxSwift - no ke aha e pono ai i kahi polokalamu iOS i kēia hoʻolālā, pehea e maʻalahi ai ke ola no ka mea hoʻomohala?

RxSwift streamlines hana me nā kahawai hanana a me nā pilina ma waena o nā mea. ʻO ka hiʻohiʻona maʻalahi a maopopo loa ʻo ka hoʻopaʻa ʻana: no ka laʻana, hiki iā ʻoe ke hoʻonui i ka interface ma ka hoʻonohonoho ʻana i nā waiwai hou i kahi loli i ka viewModel. No laila, lilo ka interface i ka ʻikepili. Eia kekahi, ʻae ʻo RxSwift iā ʻoe e wehewehe i ka ʻōnaehana ma kahi ʻano declarative, e hiki ai iā ʻoe ke hoʻonohonoho i kāu code a hoʻonui i ka heluhelu. Kōkua kēia mau mea a pau i ka hoʻomohala ʻana i nā noi i ʻoi aku ka maikaʻi.

No ka mea hoʻomohala, ʻoi aku ka maikaʻi o ka ʻike o ka framework ma kahi hoʻomaka, ʻoiai ʻo ka hoʻomaopopo ʻana i ka hoʻolālā reactive, a ʻoi aku ka ʻike me RxSwift, waiwai ʻia i ka mākeke.

No ke aha e koho ai i kēia ʻano hana ma mua o nā mea ʻē aʻe?

ʻO RxSwift ka hui nui loa. ʻO ia hoʻi, ʻoi aku ka nui o ka manawa i hoʻoponopono ʻia ai ka pilikia o ka mea hoʻomohala e kekahi. He helu nui hoʻi o nā mea paʻa i waho o ka pahu. Eia kekahi, ʻo RxSwift kahi ʻāpana o ReactiveX. ʻO ia ke ʻano he analogue no Android, no ka laʻana (RxJava, RxKotlin), a hiki i nā hoa hana ma ka hale hana ke ʻōlelo i ka ʻōlelo like me kekahi i kekahi, ʻoiai ke hana nei kekahi me iOS, ʻo kekahi me Android.

Hoʻonui mau ʻia ka framework, hoʻoponopono ʻia nā pōpoki liʻiliʻi, hoʻohui ʻia ke kākoʻo no nā hiʻohiʻona mai nā mana hou o Swift, a hoʻohui ʻia nā paʻa hou. No ka mea he kumu wehe ʻo RxSwift, hiki iā ʻoe ke hahai i nā loli āpau. Eia kekahi, hiki ke hoʻohui iā lākou iā ʻoe iho.

Ma hea e hoʻohana ʻia ai ʻo RxSwift?

  1. Hoʻopaʻa. Ma keʻano he kūlana, ke kamaʻilio nei mākou e pili ana i ka UI, ka hiki ke hoʻololi i ka UI, me he mea lā e pane ana i nā loliʻikepili, aʻaʻole e haʻi pololei i ka'ōnaewele ua hiki i ka manawa e hoʻololi.
  2. Ka pilina ma waena o nā ʻāpana a me nā hana. He laʻana wale nō. Pono mākou e kiʻi i kahi papa inoa o ka ʻikepili mai ka pūnaewele. ʻOiaʻiʻo, ʻaʻole kēia he hana maʻalahi. No ka hana ʻana i kēia, pono ʻoe e hoʻouna i kahi noi, palapala i ka pane i kahi ʻano o nā mea, mālama iā ia i ka waihona a hoʻouna i ka UI. E like me ke kānāwai, ʻo nā ʻāpana like ʻole ke kuleana no ka hana ʻana i kēia mau hana (aloha mākou a hahai i nā loina HOLOMINA?). Loaʻa i kahi mea hana e like me RxSwift ma ka lima, hiki ke wehewehe i ka mea e hana ai ka ʻōnaehana, a pehea e hana ai ia ma nā wahi ʻē aʻe. ʻO ia ke kumu i loaʻa ai ka hoʻonohonoho ʻoi aku ka maikaʻi o ke code a piʻi ka heluhelu heluhelu. Ma ka pili ʻana, hiki ke hoʻokaʻawale ʻia ke code i kahi papa o nā mea a me ka puke ponoʻī.

Coroutines ma Kotlin

ʻO RxSwift a me nā coroutines ma Kotlin - kahi koho i ka hoʻomohala kelepona mai AGIMA a me GeekBrains
ʻO ke kumu papa koho ʻo Alexander Tizik: "Pono ka hoʻomohala hou i nā ʻano loea hou"

He aha ka mea e aʻo ʻia ma ke kula ʻo GeekBrains ma ke ʻano o ka hapaha branded?

ʻO ke kumumanaʻo, ka hoʻohālikelike ʻana me nā ala ʻē aʻe, nā hiʻohiʻona kūpono ma Kotlin maʻemaʻe a ma ka hoʻohālike noi Android. No ka hoʻomaʻamaʻa ʻana, e hōʻike ʻia nā haumāna i kahi noi e pili ai nā mea āpau i nā coroutines. ʻO ka ʻoiaʻiʻo, ʻo ka hapa nui o nā noi he asynchronous a me ka hoʻohālikelike like. Akā ʻo Kotlin coroutines e ʻae i ka huikau, heterogene a i ʻole ka paʻakikī a me ka hana-koi code e hoʻemi ʻia i hoʻokahi ʻano maʻalahi e hoʻomaopopo, e loaʻa ana nā pōmaikaʻi ma ka hoʻokō pololei a me ka hana.

E aʻo mākou e kākau i ka code idiomatic i loko o nā coroutine e hoʻoponopono i nā pilikia kūpono a hiki ke hoʻomaopopo ʻia i ka nānā mua ʻana me ka ʻike ʻole hohonu o ka hana ʻana o nā coroutines (ʻaʻole hiki ke ʻōlelo ʻia e pili ana i nā hale waihona puke e like me RxJava). E hoʻomaopopo pū mākou pehea e hoʻohana ai i nā manaʻo paʻakikī, e like me ke kumu hoʻohālike, e hoʻoponopono i nā pilikia paʻakikī, e like me ka waihona ʻikepili i ka manaʻo MVI.

Ma ke ala, ʻoi aku ka nūhou maikaʻi. ʻOiai e hoʻopaʻa ʻia ana ka mea koho, ua hoʻokuʻu ʻia kahi mea hou i ka waihona Kotlin Coroutines, kahi i ʻike ʻia ai ka papa. Flow - analogue o nā ʻano Flowable и Observable mai RxJava. Hoʻopiha maoli ka mea hou i nā hiʻohiʻona coroutine mai ka manaʻo o ka mea hoʻomohala noi. ʻOiaʻiʻo, aia nō kahi wahi no ka hoʻomaikaʻi ʻana: ʻoiai ʻo ka mahalo i ke kākoʻo o nā coroutines i kotlin / native, ua hiki ke kākau i nā noi multi-platform ma Kotlin a ʻaʻole pilikia i ka nele o RxJava a i ʻole nā ​​​​analogues ma Kotlin maʻemaʻe, ʻAʻole i pau ke kākoʻo no nā coroutine ma kotlin/ ʻōiwi. Eia kekahi laʻana,ʻaʻohe manaʻo o nā mea hana. Ma keʻano laulā, loaʻa i ka hui Kotlin nā manaʻo e kākoʻo i nā mea hana paʻakikī ma nā kahua āpau.

Kotlin Coroutines - pehea lākou e kōkua ai i kahi mea hoʻomohala Kotlin?

Hāʻawi nā Coroutines i kahi manawa kūpono e kākau ai i nā code i hiki ke heluhelu ʻia, mālama ʻia, a paʻa, asynchronous, a concurrency. Hiki iā ʻoe ke hana i nā mea hoʻololi no nā ʻōnaehana asynchronous ʻē aʻe a me nā ala i hoʻohana ʻia i ka codebase.

Pehea ka ʻokoʻa o nā Coroutine mai nā loina?

Kāhea ka hui Kotlin i nā kaula māmā. Eia hou, hiki i ka coroutine ke hoʻihoʻi i kekahi waiwai, no ka mea, ma kona kumu, ʻo ka coroutine kahi helu hoʻomaha. ʻAʻole ia e hilinaʻi pololei i nā pae ʻōnaehana; hoʻokō wale nā ​​kaula i nā coroutines.

He aha nā pilikia kūpono e hiki ke hoʻoponopono ʻia me Coroutine, ʻaʻole hiki a paʻakikī paha ke hoʻoponopono me ka hoʻohana ʻana iā Kotlin "maʻemaʻe"?

Hoʻoponopono maikaʻi ʻia nā hana asynchronous, like, "hoʻokūkū" me ka hoʻohana ʻana i nā coroutine - ʻo ia ka hoʻoponopono ʻana i nā kaomi mea hoʻohana, hele pūnaewele, a i ʻole ke kau inoa ʻana i nā mea hou mai kahi waihona.

I loko o Kotlin maʻemaʻe, ua hoʻoponopono ʻia kēia mau pilikia ma ke ʻano like me Java - me ke kōkua ʻana o nā tausani o nā frameworks, aia kēlā me kēia me kāna pono ponoʻī a me nā pōʻino, akā ʻaʻohe o lākou i kākoʻo i ka pae ʻōlelo.

I ka hopena, pono e ʻōlelo ʻia nā koho ʻelua (a me nā papa nui pū kekahi) e hoʻonui ʻia e like me nā loli i nā kūlana o waho. Inā ʻike ʻia nā mea hou i nā ʻōlelo a i ʻole nā ​​​​frameworks, e noʻonoʻo nā kumu a hoʻololi i ka papahana. ʻO kēia mau mea a pau e hiki ai iāʻoe ke mālama i kou manamana lima ma ka pulse o ke kaʻina hana hoʻomohala, pēlā e'ōlelo ai.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka